Первое правило разрешает передавать в нашей сети трафик, предназначенный для DNS-сервера, а второе разрешает передачу ответов от DNS-сервера за пределы сети. Для чего нужны аргументы -m state и —state? Эти два параметра позволяют воспользоваться процессором инспекции пакетов с проверкой состояния (stateful packet-inspection engine) программы Netfilter. Использование этих параметров сообщает Netfilter, что мы хотим разрешить новое соединение для IP-назначения и указанной пары портов. При действии этих правил принимается запускающий пакет (triggering packet), и информация из него вводится в таблицу состояния. Теперь необходимо указать, что мы хотим разрешить любой исходящий трафик, связанный с этими соединениями, добавив следующее правило: # iptables -A FORWARD -m state —state ESTABLISHED,RELATED -j ACCEPT

Единственное, что еще нужно сделать, — разделить трафик от машин за пределами межсетевого экрана, который позволит общаться с внешним миром. Для этого необходимо определить следующее правило: # iptables -A FORWARD -m state —state NEW -i ethl -j ACCEPT Это правило вводит любое исходящее соединение из внутренней сети в таблицу состояния. Оно работает за счет поиска соответствий пакетов, поступающих на внутренний интерфейс межсетевого экрана и создающих новые соединения. Если в межсетевом экране включить несколько интерфейсов, то для внутреннего интерфейса придется использовать логический оператор NOT (то есть -i ! ethO).

Теперь любой трафик, поступающий на межсетевой экран через внутренний интерфейс, соответствующий исходящему соединению, благодаря предыдущему правилу будет приниматься, поскольку это правило поместит это соединение в таблицу состояния. В этих примерах порядок ввода правил не важен. Посколь- ку мы оперируем с политикой отказа по умолчанию (DENY), то все наши прави- ла имеют указатель ACCEPT. Однако если в качестве аргумента параметра -j использовать указатель DROP или REJECT, то придется быть более внимательным, чтобы гарантировать, что порядок ввода правил приведет к желаемому результату. Не забывайте, что при прохождении цепочки правил всегда запускается первое правило, которому соответствует пакет, поэтому порядок правил иногда может быть критически важным.

Необходимо отметить также, что порядок правил при некоторых условиях может повлиять на производительность. Например, представленное ранее правило, совпадающее с состояниями ESTABLISHED и RELATED, должно указываться перед любыми другими правилами, поскольку оно будет совпадать значительно чаще, чем любое из правил, которое соответствует только новым соединениям. Помещение правила вперед предотвращает дальнейшее прохождение пакетов, уже связанных с соединением, по остальной части цепочки правил в поисках соответствия.

источник: Локхарт Э. Антихакинг в сети. Трюки.


Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *