Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
n const – этот флаг запрещает изменять содержание таблицы после того, как она была создана.
Например:
table <localz> const “{ 192.168.0.0/24, 192.186.13.0/24 }”
table <badhosts> persist
block in quick log on $ext_if from <badhosts> to any
pass in on $int_if from <localz> to $internal_addr keep state
Данный фрагмент конфигурационного файла создаст 2 таблицы. В первой, <localz>, будут содержаться адреса наших внутренних сетей, а <badhosts> будет пустой. Таблица <localz> не может быть изменена или дополнена, т.к при создании использовался флаг const.
Правила фильтрации отбрасывают любые пакеты, приходящие на внешний интерфейс ($ext_if) от хостов из таблицы <badhosts>, и пропускающие любые пакеты на внутреннем интерфейсе ($int_if), приходящие от хостов из таблицы <localz>.
# pfctl –t badhosts –T add 81.146.13.16
Теперь добавим в таблицу <badhosts> хост с адресом 81.146.13.16, и все пакеты от данного хоста будут отвергнуты. Таблицу <badhosts> лучше иметь всегда, т.к. в случае чего – это очень быстрый способ отвергнуть то, что может причинить боль вашей сети.
Таблицы могут заполняться списком адресов из какого-либо файла. Синтаксис команды, выполняющей это действие, таков:
table <spam> persts file “/etc/pf/spam” file “/etc/pf/openrelays”
block from <spam> to any port 25
Файлы /etc/pf/spam и /etc/pf/openrelay содержат список IP-адресов в формате:
/etc/pf/spam
204.168.0.13
213.145.168.2
/etc/openrelay
213.146.16.0/24
166.15.13.5/28
Допускается использование FQDN вместо IP-адреса. Перед занесением в таблицу имя будет переведено в IP-адрес с помощью функции gethostbyname().
Stateful Inspection
Прошу внимательно прочитать данный параграф, в нем я попытаюсь дать базовые понятия о Stateful Inspection – зачем это надо и почему полезно.
State – «состояние, положение» в переводе с английского. PF Stateful – пакетный фильтр, а это означает, что он отслеживает состояние соединения. Вместо того чтобы пропускать весь трафик, например, на порт 25 через все инстанции (читай фильтрацию) легче пропустить первый пакет и затем просто следить за соединением. Фильтр не сортирует трафик – он уже предупрежден об этом соединении и значит, просто следит за его состоянием.
Если пакет попадает под pass … keep state, фильтр создает state для этого соединения и автоматически пропускает весь трафик, принадлежащий данному соединению.
Перед тем как правила будут применены к данному пакету, фильтр проверяет наличие state для данного пакета, и если находит – пакет будет пропущен без проверки правилами. State удаляются сразу же по закрытии соединения или же по истечении тайм-аута.