Межсетевой экран:Руководство по боевому применению

Материал из Энциклопедия для сетевых администраторов
Перейти к: навигация, поиск
Уровень сложности
Профессионал

Обзор

Common firewall.png

ipfw

ipfw • man/ipfw • man/orig/ipfw • Пример использования ipfw

NAT

Дано
Внутренняя подсеть 192.168.0.0/24
Интерфейс во внутреннюю подсеть em1
Внешний адрес 192.168.1.2
Интерфейс во внешнюю сеть em0
Внутренний WWW сервер 192.168.0.2
Необходимо
Выпустить внутреннюю сеть во внешний мир, при этом не допустить проникновения внутрь извне

Решение:

Пересобрать ядро с опциями включения файерволла

Использовать следующими командами

root # ipfw nat 1 config ip 192.168.1.2 redirect_port tcp 192.168.0.2:80 80
root #ipfw add nat 1 ip from 192.168.0.0/24 to any out via em0
root #ipfw add nat 1 ip from any to 192.168.1.2 in via em0

Шейпер

Переключение в режим дальнейшего пропуска пакетов через правила.

root # sysctl net.inet.ip.fw.one_pass=0

Пайп шириной в 10Mbit/s

root # ipfw pipe 1 config bw 10Mbit/s

Весь UDP трафик из подсети 192.168.0.0/24 входящий на интерфейс em0 завести в пайп

root # ipfw add pipe 1 udp from 192.168.0.0/24 to any in via em0

Защита от брутфорса

bruteblock

Pencil.gif
Примечание

bruteblock не эффективен. Ниже даны таблицы блокировки:

  • Таблица 1 - блокировка bruteblock
  • Таблица 2 - блокировка самописным скриптом
00600        0           0 deny ip from table(1) to any
00700   310210    26126472 deny ip from table(2) to any
root # make -C /usr/ports/security/bruteblock/ install clean

Конфигурирование bruteblock файлами находящимися в директории /usr/local/etc/bruteblock/

Необходимо добавить следующую строку в файл /etc/syslog.conf:

и перезапустить syslogd.

Also you should add ipfw2 table and the corresponding deny rule. For example,

root # ipfw add deny ip from table(1) to any

Next, you'll want to setup periodical cleanup of ipfw2 table. Add following lines to /etc/rc.conf:

Запустить bruteblockd:

root # /usr/local/etc/rc.d/bruteblockd.sh start

See bruteblock(8) for more details.

Pencil.gif
Примечание
Для тестирования регулярных выражений используется pcretest

sshguard

Официальный сайт.

root # make -C /usr/ports/security/sshguard-ipfw install clean
##########################################################################
  Sshguard installed successfully.

  Verify that IPFW is active with "ipfw show".

  Your /etc/syslog.conf has been added a line for sshguard; uncomment it
  and use "/etc/rc.d/syslogd reload" for activating it.

  Alternatively, you can also start sshguard as a daemon by using the
  rc.d script installed at /usr/local/etc/rc.d/sshguard .
  
  See sshguard(8) and http://sshguard.sourceforge.net for additional info.
##########################################################################

Просмотр авторизации и попыток авторизации

root # less /var/log/auth.log
root # grep -E -o '[0-9]{1,3}(\.[0-9]{1,3}){3}'

Загрузочный скрипт

rc.conf

firewall.sh

badguys

Exclamation mark 3d.png
Внимание
root # time /etc/badguys.py -a XXX.XXX.XXX.XXX
Очистка таблицы межсетевого экрана
Загрузка списка IP в таблицу межсетевого экрана
5.108u 15.048s 0:21.35 94.3%    33+169k 0+1io 0pf+0w


root #time /etc/badguys.sh add XXX.XXX.XXX.XXX

Сортировка списка IP адресов
Загрузка списка IP в таблицу файервола
1.492u 4.500s 0:06.23 96.1%     113+173k 0+2io 1pf+0w

bruteauth.sh

Exclamation mark 3d.png
Внимание
Использована утилита GeoIP

iptables

iptables • man/iptables • man/orig/iptables • Пример использования iptables

pf

pf • man/pf • man/orig/pf • Пример использования pf

MikroTik

MikroTik:IP/Firewall/Filter
MikroTik:Типовые примеры правил межсетевого экрана

Ссылки