Всем привет
все мы сталкиваемся со взломом разными способами рано или поздно
Fail2Ban - ПО для защиты от брутфорса
Брутфорс - взлом методом перебора паролей
Как это работает?
Если кто то отчаянно стучится на сервер, перебирая пароли по словарю - неудачные попытки отображаются в логах (мы же их пишем, да?)
Fail2Ban читает эти логи, смотрит сколько попыток и при достижении их определенного количества - отправляет IP-адрес в "бан-лист" в виде iptables
Рассмотрим защиту от брутфорса на примере #Asterisk
1. Устанавливаем Fail2Ban и iptables
sudo apt install fail2ban
sudo apt install iptables
2. Настройка правил iptables для "тюрьмы" Fail2Ban'a
sudo nano /etc/fail2ban/jail.conf
[asterisk]
enabled = true
filter = asterisk
action = iptables-allports[name=ASTERISK, protocol=all]
sendmail-whois[name=ASTERISK, dest=root@localhost, sender=fail2ban@localhost]
logpath = /var/log/asterisk/messages
maxretry = 3
findtime = 86400
bantime = -1
findtime - это время, в течении которого Fail2Ban считает активность подозрительной
bantime=-1 - "вечный бан", если сменить на положительное число - столько секунд ip будет забанен, а потом снова сможет брутфорсить вашу телефонию
3. Настраиваем лог Asterisk'a для Fail2Ban
sudo nano /etc/asterisk/logger.conf
Прописываем в файле настройки messages => notice,warning,error
Перезапускаем логгер
asterisk -rx "logger reload"
Перезапускаем службу Fail2Ban
sudo service fail2ban restart
Пробуем подключиться к нашей телефонии с чего угодно, с софтофонов, сип-телефонов и тд...
смотрим результат работы fail2ban
sudo fail2ban-client status asterisk
Где asterisk - название созданной нами "тюрьмы" для ip-адресов
Если вы случайно попали туда при настройке, то разбанить свой ip можно командой
sudo fail2ban-client set asterisk unbanip ваш_айпи
Также Fail2Ban возможно настроить и для защиты других сервисов от брутфорса - например ssh, nginx и т.д.
Всем спасибо за внимание