Продолжаем защищаться или fail2ban на страже сервера

Linux
Предистория: Недавно настраивал в одной небольшой конторе внешний мультисервер — squid/postfix/apache и так далее. Доступ естественно по ssh, в конторе сразу попросили настроить защиту с мира на все что возможно. «Громкая просьба», но заказчик в данном случае прав — защита нужна, хотя бы от тупых халявщиков и прочей бредни. Естественно пожелание было учтено.
Вообще эпопея началась сразу: как только поднял ssh и proftpd (делал большую часть удаленно), в логи посыпался перебор паролей, на первом этапе быстренько подцепил sshguard — на первое время так сказать хватит. Так как в мир смотрело много сервисов — включая POP3/IMAP4 (ну возжаждал так клиент, web-морды для почты им мало) и прочее, решил поискать что-нибудь поинтересней. Google как говориться в помощь. Плутая в дебрях инета нашол простенькую, но интересную прогу из боекомплекта linux — fail2ban, быстренько пробежался по описанию — дружит почти со всем что можно и нельзя, умеет баннить и jail-ить. Ну что ж — вперед, на танки как говориться. Тушим sshguard, приступаем к установке:

Если вы еще не сделали обновление до последних версий, то:
sudo apt-get update
sudo atp-get upgrade
Если надо — ребутаем сервак и начинаем по полной:
sudo apt-get install fail2ban
Соглашаемся, с тем предлагает доставить (у меня уже почти все стояло, добавилась пара пакетов). Идем в каталог настроек:
cd /etc/fail2ban
Копируем на всякий случай оригинальные файлы настроек — вдруг напортачим, а береженого бог бережет:
cp jail.conf jail.conf.orig
cp fail2ban.conf fail2ban.conf.orig
В принципе второй файл почти никогда не меняется, но так на всякий случай.
Правим содержимое jail.conf — по-умолчанию защищается только ssh, нам этого мало, у нас много чего смотрит в мир, да и не мешает быть в курсе что происходит: 1) кого уведомлять:
destemail = admin@yourdomain.tld
2) ssh позволяет пропускать sftp соединения — непорядок, надо бы защититься, правим строку
port = ssh
в секции [ssh] на
port = ssh, sftp
Дальше больше — от DDOS на ssh тоже б не мешало — правим
enable = false
секции [ssh-ddos] на
enable = true

3) Аналогично активируем защиты для сервисов smtp, apache и что нам нужно, сохраняем конфиг и набираем в командной строке:
sudo service fail2ban restart
Обычно после инсталляции он «взлетает» сам, защищая ssh, и смотрим что у нас в логах:
tail -n 50 -f /var/log/fail2ban.log
Если все сделали правильно, то будет как-то так:
fail2ban.jail   : INFO   Jail 'ssh' stopped
fail2ban.server : INFO   Changed logging target to /var/log/fail2ban.log for Fail2ban vX-X-X-X
fail2ban.jail   : INFO   Creating new jail 'ssh'
fail2ban.jail   : INFO   Jail 'ssh' uses poller
fail2ban.filter : INFO   Added logfile = /var/log/auth.log
fail2ban.filter : INFO   Set maxRetry = 6
fail2ban.filter : INFO   Set findtime = 600
fail2ban.actions: INFO   Set banTime = 600
fail2ban.jail   : INFO   Creating new jail 'ssh-ddos'
fail2ban.jail   : INFO   Jail 'ssh-ddos' uses poller
fail2ban.filter : INFO   Added logfile = /var/log/auth.log
fail2ban.filter : INFO   Set maxRetry = 6
fail2ban.filter : INFO   Set findtime = 600
fail2ban.actions: INFO   Set banTime = 600
fail2ban.jail   : INFO   Creating new jail 'proftpd'
fail2ban.jail   : INFO   Jail 'proftpd' uses poller
fail2ban.filter : INFO   Added logfile = /var/log/proftpd/proftpd.log
fail2ban.filter : INFO   Set maxRetry = 6
fail2ban.filter : INFO   Set findtime = 600
fail2ban.actions: INFO   Set banTime = 600
fail2ban.jail   : INFO   Creating new jail 'postfix'
fail2ban.jail   : INFO   Jail 'postfix' uses poller
fail2ban.filter : INFO   Added logfile = /var/log/mail.log
fail2ban.filter : INFO   Set maxRetry = 3
fail2ban.filter : INFO   Set findtime = 600
fail2ban.actions: INFO   Set banTime = 600
fail2ban.jail   : INFO   Jail 'ssh' started
fail2ban.jail   : INFO   Jail 'ssh-ddos' started
fail2ban.jail   : INFO   Jail 'proftpd' started
fail2ban.jail   : INFO   Jail 'postfix' started
fail2ban.actions: WARNING [postfix] Ban 115.252.161.198 <--- Дынц, уже кто-то попался
............................
Если в логе ошибка — смотрим что напортачили в конфиге, вообще ошибиться трудно. Если нужны более крутые настройки — читаем мануал и курим Google…

4 комментария

avatar
читаем мануал и курим Google
читаем Google и курим маны :).
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.