Sunday, January 21st, 2018

Конфигурирование ipfilter в FreeBSD

Published on Апрель 7, 2009 by   ·   Комментариев нет

Начальная настройка Для использования ipf в FreeBSD серьезной модификации требуют только два файла — rc.conf и rc.network: Изменения, вносимые в rc.conf:

 ipfilter=YES; # NO для выключения ipfilter_rules=/etc/ipf.rc # файл с правилами ipmon_flags=-Ds # NO для отключения логирования ipnat=YES ipnat_rules=/etc/ipnat.rc

Изменения, вносимые в rc.network: В файле rc.network я добавил следующий код в подпрограмме network_pass_1 () перед конфигурацией интерфейсов:

 # Configure the IP filter before configuring network interfaces if [ X"${ipfilter}" = X"YES" -a -f "${ipfilter_rules}" ]; then echo ``configuring IP filter'' echo ``ipf -Fa -f ${ipfilter_rules} -E'' ipf -Fa -f ${ipfilter_rules} -E else ipfilter=NO fi ...

В подпрограмме network_pass_2 () я добавил этот код:

 ... # insert after named if [ X"${ipfilter}" = X"YES" -a X"${ipmon_flags}" != X"NO" ]; then echo 'starting ipmon'; ipmon ${ipmon_flags} fi

Я также добавил код для ipnat в network_pass_3 () после оригинального natd-кода:

 # CHG-BEGIN: ipnat out of the ipfilter package # Configure NAT after configuring network interfaces if [ "X${ipnat}" = X"YES" -a "X${ipfilter}" = X"YES" ]; then if [ -f "${ipnat_rules}" ]; then echo 'configuring NAT' ipnat -CF -f ${ipnat_rules} else echo 'ipnat: file ${ipnat_rules} not found.' fi else echo 'no network adress translation.' ipnat=NO fi # CHG-END: ipnat out of the ipfilter package

Чтобы получить основные правила фильтрации, я выполнил:

 # mkfilters > /etc/ipf.rc В результате мы получаем следующие правила: [cc lang="bash" tab_size="2" lines="-1"] # block in log quick from any with ipopts block in log quick proto tcp from any to any with short pass out on ed1 all head 150 block out from 127.0.0.0/8 to any group 150 block out from any to 127.0.0.0/8 group 150 block out from any to 192.168.1.110/32 group 150 pass in on ed1 all head 100 block in from 127.0.0.0/8 to any group 100 block in from 192.168.1.110/32 to any group 100 block in from 192.168.0.1/0xffffff00 to any group 100 pass out on fxp0 all head 250 block out from 127.0.0.0/8 to any group 250 block out from any to 127.0.0.0/8 group 250 block out from any to 192.168.0.1/32 group 250 pass in on fxp0 all head 200 block in from 127.0.0.0/8 to any group 200 block in from 192.168.0.1 to any group 200 block in from 192.168.1.110/0xffffff00 to any group 200

Создаем правила фильтрации Исходные данные: На моей машине я использую интерфейс fxp0 для внутренней сети. Внутренняя сеть — сеть класса C в диапазоне 192.168.0.x с сетевой маской 255.255.255.0. Внешняя сеть — Интернет — подключен через ISDN — роутер с вызовом по требованию. Так же на него возложены функции nat. Мой сервер FreeBSD подключен к этому ISDN — роутеру через интерфейс ed1 с ip-адресом 192.168.1.110. ISDN — роутер имеет внутренний ip-адрес 192.168.1.111, который будет оттранслирован в адрес, динамически назначаемый провайдером в течение сеанса связи. Я использую ipnat, входящий в состав ipfilter, для переадресации пакетов, предназначенный для Интернета к внешнему интерфейсу. В этой конфигурации трансляция сетевого адреса происходит дважды; сначала на сервере и затем в ISDN — роутере. baskets adidas zx 750 Как конфигурировать ipnat? Сперва надо определиться, какую политику безопасности мы выберем:

 * Разрешено все, что не запрещено * Запрещено все, что не разрешено

Разрешающая позиция легко осуществима. Если Вы не даете никаких правил ipfilter, все у вас так и будет. Правила, сгенерированные сценарием mkfilters основаны на немного расширенной разрешающей позиции. Разрешающая позиция крайне небезопасна. Политика запрещения более безопасна, но также более трудно осуществима. Если Вы что-то забыли, то скорее всего ничего не будет работать и в достаточно большой сети вопли возмущенных пользователей не заставят себя долго ждать. Вот несколько полезных советов по генерации правил:

 * Группируйте правила * Не добавляйте правила для нескольких сервисов одновременно. * Ведите журнал добавляемых правил.  <a href="http://www.vyatiosys.fr/adidas-zx-750.html">adidas zx 750</a> * После добавления правила, действительно проверьте! * Проверьте что трафик приходит и уходит.  <a href="http://www.vyatiosys.fr/adidas-chaussures.html">adidas chaussures</a> * Проверите, что пакет действительно обрабатывается тем правилом, которое Вы добавили а не другим. * Сделайте список обслуживания, которое Вы разрешаете, включающий порт,протокол и тип сервиса; например уходящий трафик http, порт 80/tcp.

Правила фильтрации для разрешающей политики: Основные правила были добавлены при вызове mkfilters. Также можно добавить несколько правил, предотвращающих спуфинг. Итак, окончательный набор правил выглядит так:

 # сгенерировано mkfilters block in log quick from any with ipopts block in log quick proto tcp from any to any with short block in log quick all with opt lsrr block in log quick all with opt ssrr #------------------------------------------------------- # разрешаем loopback pass in quick on lo0 all pass out quick on lo0 all #------------------------------------------------------- pass out on ed1 all head 150 block out from 127.0.0.0/8 to any group 150 block out from any to 127.0.0.0/8 group 150 block out from any to 192.168.1.110/32 group 150 #------------------------------------------------------- pass in on ed1 all head 100 block in from 127.0.0.0/8 to any group 100 block in from 192.168.1.110/32 to any group 100 block in from 192.168.0.1/24 to any group 100 #------------------------------------------------------- pass out on fxp0 all head 250 block out from 127.0.0.0/8 to any group 250 block out from any to 127.0.0.0/8 group 250 block out from any to 192.168.0.1/32 group 250 #------------------------------------------------------- pass in on fxp0 all head 200 block in from 127.0.0.0/8 to any group 200 block in from 192.168.0.1/32 to any group 200 block in from 192.168.1.110/24 to any group 200

Правила фильтрации для запрещающей политики: Разрешаемые сервисы: Сначала мы полностью доверяем внутренним пользователям, ограничивать их будем «на лету». adidas powerlift 3 Составим список сервисов, которые сразу разрешаем:

 * DNS: Исходящий DNS на порту 53/udp первичного DNS-сервера от провайдера Исходящий DNS на порту 53/tcp вторичного DNS-сервера от провайдера * http: Принимаем исходящие http-запросы на порт 80/tcp * smtp: Исходящий smtp на порту 25/tcp для возможности отсылки писем sendmail или postfix2 * pop3: Исходящий pop3 на порту 110/tcp для возможности получения писем через fetchmail * ftp: Исходящий ftp на портах 20/tcp/udp Входящий ftp-данных на портах 21/tcp/udp

Пишем правила:

 #-------------------------------------------------------------------------- # ed1 - external interface # fxp0 - internal interface #-------------------------------------------------------------------------- # First, nasty pakets which we don&#039;t want near us at all # pakets which are too short to be real except echo replies on lo0 pass in log quick on lo0 proto icmp from 127.0.0.1/8 to 127.0.0.1/8 with short block in log quick all with short block in log quick all with opt lsrr block in log quick all with opt ssrr #-------------------------------------------------------------------------- # loopback packets left unmolested pass in log quick on lo0 all pass out log quick on lo0 all #-------------------------------------------------------------------------- # Group setup: # 100 incoming ed1 # 150 outgoing ed1 # 200 incoming fxp0 # 250 outgoing fxp0 #-------------------------------------------------------------------------- block in log body on ed1 all head 100 block out log body on ed1 all head 150 #-------------------------------------------------------------------------- block in log on fxp0 all head 200 block out log on fxp0 all head 250 #-------------------------------------------------------------------------- # incoming ed1 traffic - group 100 # 1) prevent localhost spoofing block in log quick from 127.0.0.1/32 to 192.168.0.0/24 group 100 block in log quick from 127.0.0.1/32 to 192.168.1.0/24 group 100 block in log quick from any to 127.0.0.1/8 group 100 #-------------------------------------------------------------------------- # 2) deny pakets which should not be seen on th internet (paranoid) block in log quick from 10.0.0.0/8 to any group 100 block in log quick from any to 10.0.0.0/8 group 100 block in log quick from 172.16.0.0/16 to any group 100 block in log quick from any to 172.16.0.0/16 group 100 block in log quick from 192.168.0.0/16 to any group 100 block in log from any to 192.168.0.0/16 group 100 # 3) implement policy # allow incoming ftp-data pass in log quick proto tcp/udp from any to 192.168.1.1/24 keep state group 100 # if nothing applies, block and return icmp-replies (unreachable and rst) block return-icmp(net-unr) in proto udp from any to any group 100 block return-rst in log proto tcp from any to any group 100 #-------------------------------------------------------------------------- # outgoing ed1 traffic - group 150 # Setup outgoing DNS pass out log quick proto tcp/udp from any to 212.40.0.10 port = 53 keep state group 150 pass out log quick proto tcp/udp from any to 212.40.5.50 port = 53 keep state group 150 # allow outgoing http-service pass out log quick proto tcp from any to any port = 80 flags S/SA keep state keep frags group 150 # allow outgoing smtp traffic pass out log quick proto tcp from 192.168.1.1/24 to any port = 25 flags S/SA keep state group 150 # allow outgoing pop3 traffic pass out log quick proto tcp from 192.168.1.1/24 to any port = 110 flags S/SA keep state group 150 # allow outgoing ftp traffic pass out log quick proto tcp/udp from 192.168.1.1/24 to any port = ftp keep state group 150 pass out log quick proto icmp from any to any keep state keep frags group 150 #-------------------------------------------------------------------------- # incoming traffic on fxp0 - group 200 #-------------------------------------------------------------------------- # 1) prevent localhost spoofing block in log quick from 127.0.0.0/8 to any group 200 block in log quick from 192.168.0.1/32 to any group 200 block in log quick from 192.168.1.110/24 to any group 200 pass in log quick from any to any group 200 #-------------------------------------------------------------------------- # outgoing traffic on fxp0 - group 250 #-------------------------------------------------------------------------- block out log quick from 127.0.0.0/8 to any group 250 block out quick from any to 127.0.0.0/8 group 250 block out log quick from any to 192.168.0.1/32 group 250 pass out log quick from any to nay group 250 #--------------------------------------------------------------------------

Эти правила могут служить отправной точкой для дополнительных и более разработанных правил.


Смотрите также:

Readers Comments (Комментариев нет)

Comments are closed.

Exchange 2007

Проведение мониторинга Exchange 2007 с помощью диспетчера System Center Operations Manager 2007 (часть 3)

Если вы хотите прочитать предыдущие части этой серии статей, перейдите по ссылкам: Проведение мониторинга Exchange 2007 с помощью диспетчера System ... [+]

Практическое рассмотрение перехода с Exchange 2003 на Exchange 2007 (часть 1)

Введение В этой статье из нескольких частей я хочу показать вам процесс, который недавно использовал для перехода с существующей среды Exchange 2003 ... [+]

Использование инструмента Exchange Server Remote Connectivity Analyzer Tool (часть 2)

Если вы пропустили первую часть этой серии, пожалуйста, прочтите ее по ссылке Использование инструмента Exchange Server Remote Connectivity Analyzer Tool (Часть ... [+]

Мониторинг Exchange 2007 с помощью диспетчера System Center Operations Manager 2007 (часть 2)

Если вы пропустили предыдущую часть этой серии статей, перейдите по ссылке Мониторинг Exchange 2007 с помощью диспетчера System Center Operations ... [+]

Подробное рассмотрение подготовки Active Directory для Exchange 2007 (часть 5)

Если вы пропустили предыдущие части этой серии статей, перейдите по ссылкам: Подробное рассмотрение подготовки Active Directory для Exchange 2007 (часть 1) ... [+]

Установка и настройка Exchange 2007 из командной строки (Часть 3)

If you missed the previous parts in this article series please read: Exchange 2007 Install and Configuration from the command line (Part ... [+]

Использование инструмента Exchange Server Remote Connectivity Analyzer Tool (часть 1)

Инструмент ExRCA Текущий выпуск инструмента предоставляется только в целях тестирования и оснащен 5 опциями: Тест подключения Outlook 2007 Autodiscover Тест подключения Outlook 2003 RPC ... [+]

Развертывание сервера Exchange 2007 Edge Transport (часть 5)

Если вы хотите прочитать предыдущие части этой серии статей, перейдите по ссылкам: Развертывание сервера Exchange 2007 Edge Transport (часть 1) Развертывание ... [+]

Установка и настройка Exchange 2007 из командной строки (часть 2)

Если вы пропустили первую статью данного цикла, пожалуйста, перейдите по ссылке: Exchange 2007 Install and Configuration from the command line (Part ... [+]

Использование интегрированных сценариев Using Exchange Server 2007 – часть 2: генерирование отчетов агента Transport AntiSpam Agent

Если вы пропустили предыдущую часть этой серии статей, перейдите по ссылке Использование интегрированных сценариев Using Exchange Server 2007 – часть ... [+]