0

fail2ban + pf, защита сервера

Для того чтобы обезопасить свой сервер от перебора паролей, мелких DDOS-атак нам потребуется ПО. В данном посте приведена утилита fail2ban в связке с файрволлом PF. Работы выполняются на сервере с FreeBSD 8.1 amd64

Устанавливаем fail2ban

cd /usr/ports/security/py-fail2ban/
make install clean

теперь создаем файл команд для PF

touch /usr/local/etc/fail2ban/pf.conf
vi /usr/local/etc/fail2ban/pf.conf

в файле пишем

[Definition]
actionstart =
actionstop =
actioncheck =
actionban = pfctl -t

-T add actionunban = pfctl -t-T delete


Теперь редактируем основной конфиг
vi /usr/local/etc/fail2ban/jail.conf

Основные настройки правим по свои нужды
Удаляем ненужные правила и добавляем в конец файла свои
Ниже приведены правила для SSH и NGINX

Правила для NGINX позволяют отразить DOS на веб-сервер атаки с пустыми запросами, так как это позволяет блокировать злоумышленников на уровне файрволла

[ssh-pf]

enabled = true
filter = sshd
action = pf[table=ssh-brut]
sendmail[name=SSH on Gateway,dest=admin@localhost,sender=fail2ban@localhost]
logpath = /var/log/auth.log
ignoreip = 192.168.0.0/24

[nginx]

enabled = true
port = http,https
filter = apache-auth
action = pf[table=webhack]
sendmail[name=WEBServ hacking,dest=admin@localhost,sender=fail2ban@localhost]
logpath = /var/log/nginx-access.log
maxretry = 6
[nginx-noscript]

enabled = true
port = http,https
filter = apache-noscript
action = pf[table=webhack]
sendmail[name=WEBServ noscript,dest=admin@localhost,sender=fail2ban@localhost]
logpath = /var/log/nginx-error.log
maxretry = 6

[nginx-overflows]

enabled = true
port = http,https
filter = apache-overflows
action = pf[table=webhack]
sendmail[name=WEBServ overflow,dest=admin@localhost,sender=fail2ban@localhost]
logpath = /var/log/nginx-error.log
maxretry = 2

action — здесь перечисляется список действий в случае срабатывания, мы выполняем бан по PF и отправку email на указанный адрес
table=ssh-brut — название таблицы для банов в PF
logpath — путь до лога, который должен проверять fail2ban
maxretry — количество попыток

теперь нужно поправить конфиг PF

vi /etc/pf.conf

Добавляем таблицы для банов и правило блокировки

table persist
table persist
block in log quick on $if_ext proto tcp from to $if_ext port 22
block in log quick on $if_ext proto tcp from to $if_ext port 80

$if_ext — переменная с именем внешнего интерфейса

перезапускаем службы

pfctl -f /etc/pf.conf
/usr/local/etc/rc.d/fail2ban restart

Настройка и администрирование Windows/Linux, сетевого оборудования D-link, cisco | hotbits.ru

XpycT

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

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