Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
UNIX.doc
Скачиваний:
4
Добавлен:
01.04.2025
Размер:
10.6 Mб
Скачать

Сценарий: Настройка сетевого экрана

Начальные условия: Командная строка суперпользователя после входа в систему, настроенные сетевой интерфейс и таблица маршрутизации.

  1. Для просмотра текущей таблицы правил сетевого экрана воспользуемся командой iptables -L:

  2. desktop ~ # iptables -L

  3. Chain INPUT (policy ACCEPT)

  4. target prot opt source destination

  5. Chain FORWARD (policy ACCEPT)

  6. target prot opt source destination

  7. Chain OUTPUT (policy ACCEPT)

target prot opt source destination

Все три цепочки не содержат правил и имеют политику разрешения всех пакетов по умолчанию.

  1. Запретим весь сетевой трафик как на вход, так и на выход командами iptables -P INPUT DROP, iptables -P OUTPUT DROP:

  2. desktop ~ # iptables -P INPUT DROP

  3. desktop ~ # iptables -P OUTPUT DROP

  4. desktop ~ # iptables -L

  5. Chain INPUT (policy ACCEPT)

  6. target prot opt source destination

  7. Chain FORWARD (policy ACCEPT)

  8. target prot opt source destination

  9. Chain OUTPUT (policy ACCEPT)

target prot opt source destination

  1. Любой сетевой обмен (даже команда ping 127.0.0.1) будет запрещён:

  2. desktop ~ # ping 127.0.0.1

  3. PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.

  4. ping: sendmsg: Operation not permitted

ping: sendmsg: Operation not permitted

  1. Разрешим вход и выход всем пакетам, связанным с локальным интерфейсом (lo) с помощью команд: iptables -A INPUT -i lo -j ACCEPT и iptables -A OUTPUT -o lo -j ACCEPT.

  2. desktop ~ # iptables -A INPUT -i lo -j ACCEPT

  3. desktop ~ # iptables -A OUTPUT -o lo -j ACCEPT

  4. desktop ~ # ping 127.0.0.1

  5. PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.

  6. 64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.056 ms

64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.043 ms

  1. Разрешим вход и выход всем пакетам, относящимся к протоколу ICMP: iptables -A INPUT -p icmp -j ACCEPT и iptables -A OUTPUT -p icmp -j ACCEPT.

  2. desktop ~ # iptables -A INPUT -p icmp -j ACCEPT

desktop ~ # iptables -A OUTPUT -p icmp -j ACCEPT

  1. Чтобы пропускать пакеты, относящиеся ко всем установленным соединениям, добавим два правила: iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT и iptables -A OUTPUT -m state --state ESTABLISHED -j ACCEPT

  2. desktop ~ # iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT

desktop ~ # iptables -A OUTPUT -m state --state ESTABLISHED -j ACCEPT

  1. Теперь осталось только разрешить входящие и исходящие соединения на определённые порты. Например, для исходящего доступа по протоколу HTTP выполним iptables -A OUTPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT:

desktop ~ # iptables -A OUTPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT

  1. В завершение можно очистить все заданные правила с помощью iptables -F:

  2. desktop ~ # iptables -F

  3. desktop ~ # iptables -L

  4. Chain INPUT (policy ACCEPT)

  5. target prot opt source destination

  6. Chain FORWARD (policy ACCEPT)

  7. target prot opt source destination

  8. Chain OUTPUT (policy ACCEPT)

target prot opt source destination

Обратите внимание, что это не изменило политики по умолчанию.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]