Вы здесь

Установка fail2ban

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

Выполните команду:

cat /var/log/secure* | grep 'Failed password' | grep sshd | awk '{print $1,$2}' | sort -k 1,1M -k 2n | uniq -c

_________

Fail2ban очень удобный сервис по защите системы от хакеров, в частности от перебора паролей...

Для установки нужен репозиторий  rpmforge

И потом ставим fail2ban:

# yum install fail2ban

Конфиг по умолчанию настроен. Но проверим некоторые важные опции:

# vi /etc/fail2ban/jail.conf
ignoreip = 127.0.0.1/8 Здесь могут быть IP адреса и CIDR маска или DNS хост. Fail2ban не будет банить перечисленные адреса. Несколько адресов нужно разделить пробелами

bantime = 600 время бана в секундах (600 сек = 10 минут)

findtime = 600 хост будет забанен если исчерпает отведёные ему попытки за последние findtime секунд.

maxretry = 3 максимальное количество неверных попыток до бана.

Включаем автозапуск:

# chkconfig fail2ban on

Запускаем:

# service fail2ban restart

Если до этого он не был запущен при остановке будет ошибка, это не важно. Главное чтобы запустился.

Всё.

Далее настройка fail2ban для asterisk 11

1) Логи 11-го астера отличаются - по у молчанию в них не пишется айпишник "неправильного юзера"... включаем логирование правкой файла logger.conf:

messages => security, notice,warning,error

[general]
dateformat=%F %T

и перезапускаем модуль логирования:

asterisk -rx "logger reload"

 

Далее правим файл с настройками для asterisk /etc/fail2ban/filter.d/asterisk.conf и дописываем в самый конец  failregex =
SECURITY.*,Severity=\"Error\".*RemoteAddress=\"IPV4/UDP/<HOST>/

 

Настройка для защиты ssh:

[ssh-iptables]

enabled  = true
filter   = sshd
action   = iptables[name=SSH, port=ssh, protocol=tcp]
           sendmail-whois[name=SSH, dest=root@daisoon.com, sender=fail2ban@centos-server.neohost.com]
logpath  = /var/log/secure
maxretry = 5

и рестартим сервис:
# fail2ban-client reload

 

 

для удаления забаненного IP используем команду:

fail2ban-client set ssh-iptables unbanip xxx.xx.x.xx

так же проверить статус сервиса можно:

/etc/init.d/fail2ban status

текущее состояние fail2ban по ssh-iptables:

fail2ban-client  -i
Fail2Ban v0.8.10 reads log file that contains password failure report
and bans the corresponding IP addresses using firewall rules.

fail2ban> status ssh-iptables
Status for the jail: ssh-iptables
|- filter
|  |- File list:    /var/log/secure
|  |- Currently failed:    1
|  `- Total failed:    23
`- action
   |- Currently banned:    2
   |  `- IP list:    xx.xx.xxx.xxx xxx.xx.x.xx
   `- Total banned:    4

перезапустить fail2ban можно так:

fail2ban-client  reload

или стандартным методом:

service fail2ban restart

 

Проверить работоспособность того или иного фильтра с регулярными выражениями можно с помощью скрипта fail2ban-regex, идущего в поставке fail2ban. Например проверяем фильтр proftpd.local, натравливая его на лог файл авторизаций:

# fail2ban-regex /var/log/auth.log /usr/local/etc/fail2ban/filter.d/proftpd.local

 

Мне удобней просматривать лог в режиме realtime, в отдельном окне консоли или в отдельном окне, оконного менеджера для терминала — screen, делаем:

# tail -f /var/log/fail2ban/fail2ban.log

 

Разблокировка IP Адреса в Fail2Ban

Используйте следующую команду чтобы вручную разблокировать IP адрес, который был забанен Fail2Ban-ом :

$ sudo fail2ban-client set JAIL unbanip IP

Например, удалим из Fail2Ban IP адрес 192.168.1.101, который был забанен в соответствии с правилами из секции [ssh-iptables] :

$ sudo fail2ban-client set ssh-iptables unbanip 192.168.1.101

 

Ссылки потеме: форум про Asterisk  защита SSH установка на Debian