Это не заменимый инструмент для защиты Вашего сервера от брутфорса. Он позволяет защищать такие сервисы как: apache, ssh, postfix. и.т.д

ssh 
apache

Защита ssh

 Установим fail2ban

ищем пакет

pkg search fail2ban

py27-fail2ban-0.9.7 

Установим

pkg install py27-fail2ban-0.9.7
Рабочий каталог /usr/local/etc/fail2ban
cd /usr/local/etc/fail2ban

После установки, необходимо сразу скопировать конфиги fail2ban.conf и jail.conf. Их редактировать не нужно.

cp fail2ban.conf fail2ban.local
cp jail.conf jail.local 

Редактируем

очищаем jail.local

echo > jail.local
nano jail.local
[DEFAULT]

ignoreip = 127.0.0.1 192.168.2.0/24

[ssh]
enabled = true
port = ssh
filter = sshd
action = bsd-ipfw[table=22]
logpath = /var/log/auth.log
bantime = 2880
findtime = 800
maxretry = 1

Параметры:

  • [ssh]: имя джэйла в квадратных скобках.
  • enabled: активирован fail2ban.
  • port: номер порта для защиты (может быть номер или хорошо известное имя).
  • filter: Демон нашего сервиса.
  • action: заносит правило для нашего firewall
  • logpath: файл лога .
  • bantime: время бана в секундах, по истечении которого IP–адрес удаляется из списка заблокированных
  • findtime: определяет длительность интервала в секундах, за которое событие должно повториться определённое количество раз, после чего санкции вступят в силу. Если специально не определить этот параметр, то будет установлено значение по умолчанию равное 600 (10 минут).
  • maxretry: максимальное число ошибок перед баном. 

Пропишем в атозагрузку

echo 'fail2ban_enable="YES"' >> /etc/rc.conf

Осталось самое главное включить наш firewall, без которого fail2ban работать не будет.

echo 'firewall_enable="YES"' >> /etc/rc.conf
echo 'firewall_type="open"' >> /etc/rc.conf - этот параметр по желанию. Более подробно, можно ознакомиться в официальной документации freebsd.

Запускаем firewall и fail2ban

service ipfw start

service fail2ban start

Просмотр информации

Просмотр активных джейлов

fail2ban-client status

Status
|- Number of jail: 1
`- Jail list: ssh

fail2ban-client status имя_джейла
fail2ban-client status ssh

Status for the jail: ssh
|- Filter
| |- Currently failed: 0
| |- Total failed: 0
| `- File list: /var/log/auth.log
`- Actions
|- Currently banned: 0
|- Total banned: 1
`- Banned IP list: 59.16.38.129

Так же можно вручную забанить и разбанить IP

Для бана IP

fail2ban-client set [имя_джейла] banip [ip] 

Для разблокировки

fail2ban-client set [имя_джейла] unbanip [ip] 

 

Защита apache

Авторизация

[apache-auth]
enabled = true
port = http,https
filter = apache-auth
action = bsd-ipfw[table=23]
logpath = /var/log/apache/error.log
bantime = 2880
findtime = 200
maxretry = 2

Боты

[apache-badbots]
enabled = true
port = http,https
filter = apache-badbots
action = bsd-ipfw[table=23]
logpath = /var/log/apache/error.log
bantime = 2880
findtime = 200
maxretry = 2

Длинные адреса

[apache-overflows]
enabled = true
port = http,https
filter = apache-overflows
action = bsd-ipfw[table=24]
logpath = /var/log/apache/error.log
bantime = 2880
findtime = 200
maxretry = 2

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

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