zmej.org.ua - Памятки системного администратора.  zmej.org.ua - Памятки системного администратора.

Главная » FreeBSD

Вход на сайт

  • Запросить новый пароль

Навигация

  • Cisco
    • Cisco access-list
    • Аутентификация на Cisco
    • Обновление Cisco IOS
    • Привязка MAC-адресов к портам на Cisco Catalyst 2960
    • Списки доступа (Access list) ACL Cisco
  • FreeBSD
    • Colorize - подсвечивание ключевых слов
    • Munin — мониторинг сервера на основе FreeBSD
    • Postfix + Postgrey. Небольшой пример того, как можно бороться со спамом.
    • Roudcube. Установка и настройка.
    • VPN между FreeBSD и Windows. Установка mpd4.
    • Блокируем TeamViewer
    • Выполнение mount из-под прав обычного пользователя
    • Добавление базы и пользователя в MySQL
    • Как узнать серийный номер винчестера в FreeBSD
    • Модули Apache22 (Apache22 modules)
    • Мониторинг винтчестеров (HDD/жестких дисков) с помощью SMART (smartmontools)
    • Мониторинг загрузки канала (MRTG)
    • Мониторинг загрузки сетевых интерфейсов в реальном времени
    • Мониторинг нагрузки процессора (SNMP MRTG CPU Monitoring)
    • Настройка DNS сервера named
    • Настройка сервера времени NTP
    • Настройка фаервола (firewall ipfw) на ОС FreeBSD
    • Обновление FreeBSD. Краткий мануал.
    • Обновление портов (CVSup)
    • Обновление портов. Portupgrade.
    • Организация VPN между 3-мя офисами
    • Повышаем безопасность FreeBSD
    • Проблема после обновление SpamAssassin
    • Работа с .htaccess и .htpasswd
    • Скрипты
      • Блокировка перебора SSH (по 22му порту)
      • Создание архива базы - mysqldump
    • Тестирование MySQL
    • Управление дуплексным режимом и скоростью подключения к порту.
    • Установка MySQL сервера
    • Установка связки Apache22+php5+mysql5
    • Шейпер на ipfw
  • Подсказки по редактированию

Настройка фаервола (firewall ipfw) на ОС FreeBSD

Zmej —ср, 28/12/2011 - 16:27

 

Самое вкусное – настройка фаервола на ОС FreeBSD на базе родного ipfw. Приступим. Для начала смотрим наше ядро на наличиее следующих строк :
18:51 user@ns3 [/etc]#cat /usr/src/sys/i386/conf/mailsrv | grep IPFIREWALL
options         IPFIREWALL
options         IPFIREWALL_VERBOSE
options         IPFIREWALL_VERBOSE_LIMIT=100
options         IPFIREWALL_DEFAULT_TO_ACCEPT
options         IPFIREWALL_FORWARD
18:51 user@ns3 [/etc]#
Если Вы такого не наблюдаете, тогда Вам необходимо пересобрать ядро, используя в качестве подсказки файлик LINT. Для его создания, Вам необходимо перейти в директорию /usr/src/sys/i386/conf (у Вас может быть другая – все зависит от того, какую платформу Вы используете, у меня в данном случае i386), и выполнить команду make LINT.
Если же у Вас есть в наличии такие строки, тогда Вы можете проверить запущен ли у Вас фаервол:
18:57 user@ns3 [/etc]#ipfw show
65535 651516 311197005 allow ip from any to any
18:57 user@ns3 [/etc]#
У меня запущен, и, как мы видим, по правилам этого фаервола, у меня все открыто. Чтож, будет устранять эту погрешность. Для начала ползем в /etc/rc.conf и добавляет следующие строки:
firewall_enable=”YES”
firewall_script=”/etc/firewall”
Это говорит системе о том, что по умолчанию фаервол запускать при загрезке системы, и использовать файл /etc/firewall в качестве списка правил. Создаем файл:
DING! user@ns3 [/etc]#touch /etc/firewall
19:00 user@ns3 [/etc]#chmod 744 /etc/firewall
И проверяем:
19:01 user@ns3 [/etc]#ll /etc/ | grep fire
-rwxr--r--  1 root  wheel         0 Nov 20 19:00 firewall
Видим, что файл создан, есть в системе и он исполняемый. Пришло время создать правила, по которым будем работать дальше.
#!/bin/sh
fwcmd=”/sbin/ipfw -q” – указываем, где находится сама программа
${fwcmd} -f flush – делаем очистку правил при старте
${fwcmd} add check-state – проверяет пакет по динамическому набору правил; если найдено соответствие, дальнейший поиск прекращается, иначе – переходим к следующему правилу.
#Setup loopback
${fwcmd} add allow all from any to any via lo0 – разрешаем трафик по внутреннему интерфейсу lo0
${fwcmd} add deny all from any to 127.0.0.0/8 – запрещаем доступ с интерфейса lo0 и на него
${fwcmd} add deny all from 127.0.0.0/8 to any
#Deny Broadcasts – запрещаем широковещательные запросы
${fwcmd} add deny log icmp from any to 255.255.255.25
#Allow ports rules – разрешаем ранее разрешенные соединения
${fwcmd} add allow log tcp from any to any established
#DNS – и перечень тех или иных разрешщенных или запрещенных служб
${fwcmd} add allow log tcp from any to any 53
${fwcmd} add allow log udp from any to any 53
#NTPD
${fwcmd} add allow log ip from any to any 123
#SSH
${fwcmd} add pass log ip from any to any 22 setup
#Apache
${fwcmd} add pass log ip from any to any 80 setup
#FTP
${fwcmd} add pass log ip from any to any 20,21 setup
#Cvsup
${fwcmd} add allow log tcp from any to any 5999 setup
#Allowed ports
${fwcmd} add allow log tcp from any to any 1025-1100,49152-65535
#MySQL
${fwcmd} add deny log ip from any to any 3306 setup
#Deny
${fwcmd} add deny log ip from any to any
В кратце и все. Тут не расматривал вопрос о включении ната (ибо он мне в этом случае просто не нужен был), не расматривал вопрос о пайпах (pipe). Простой обычный фаервол для почтового сервера.
 
Пару идей. В случае, если Вам необходимо заблочить большое количество IP адресов, к примеру, спамеров, можно сделать следующим образом.
${fwcmd} table 2 add 111.222.333.444
${fwcmd} table 2 add 555.666.777.888
${fwcmd} add deny log ip from any to 'table(2)'
Если у Вас работает веб сервер, то тогда следующее правило Вам просто необходимо:
${fwcmd} add allow log ip from any to any 80 setup limit src-addr 60
Данное правило ограничит поличество подключений с одного IP адреса. IPFW умеет работать с mac-адресами.
ipfw add 1 deny all from any to any  MAC any 1f:45:d4:10:2c:01
при этом необходимо включить некий параметр ядра
sysctl net.link.ether.ipfw=1
  • FreeBSD
  • Войдите чтобы оставить комментарии

Новые пользователи

  • Zmej

Последние комментарии

Комментарии отсутствуют.

Сейчас на сайте

Пользователей онлайн: 0.

Создано на Drupal

Downloaded from top drupal themes | Hostgator coupon