4 Краткий отчет о практике (приложение 1). Строки с таким выделением
Скачать 0.62 Mb.
|
Установка fail2banЕще одно добавление к серверу. Дело в том, что все сервера так или иначе «торчащие» в интернет, становятся целью для атак, и наш почтовый сервер - не исключение. Одна из атак - попытка «взлома» паролей пользователей. Такая атака обычно проводится с перебором паролей, и рано или поздно может быть удачной. В нашем случае - это атака на аутентификацию пользователей по IMAP, POP3, SMTP. Бороться достаточно просто - есть прекрасная программа fail2ban, которая после N неудачных попыток просто прописывает в файрволле правила, запрещающие доступ с атакующего IP-адреса на определенный срок (чаще всего - на час через 3 неудачных попытки). Такие «паузы» делают подобные атаки практически бессмысленными. Для защиты устанавливаем пакет fail2ban sudo apt-get install fail2ban Создаем файл /etc/fail2ban/filter.d/dovecot.conf sudo nano /etc/fail2ban/filter.d/dovecot.conf [Definition] failregex = (?: pop3-login|imap-login): (?:Authentication failure|Aborted login \(auth failed|Aborted login \(tried to use disabled|Disconnected \(auth failed).*rip=(?P ignoreregex = Скопируем на всякий случай файл /etc/fail2ban/jail.conf sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.conf_orig В нем есть примеры множества сервисов, нас же интересуют только часть из них. Отредактируем нужные строки в файле /etc/fail2ban/jail.conf sudo nano /etc/fail2ban/jail.conf ignoreip = 127.0.0.1 10.0.0.0/16 bantime = 3600 destemail = admin@aaa.ru Здесь мы говорим, чтобы fail2ban игнорировал атаки с адресов 127.0.0.1 и сети 10.0.0.0/255.255.0.0 (предполагаем, что это наша внутренняя сеть, и из нее могут быть разве что ошибочные попытки набора паролей пользователями); после 3 неудачных попыток аутентификации мы ставим бан на 3600 секунд (1 час); информацию о банах будем посылать на admin@company.ru (поменяйте на свой). [ssh] enabled = true port = ssh filter = sshd banaction = iptables-allports sendmail-whois logpath = /var/log/auth.log maxretry = 3 [dovecot] enabled = true port = imap2,imap3,imaps,pop3,pop3s filter = dovecot logpath = /var/log/mail.log banaction = iptables-allports sendmail-whois maxretry = 3 [sasl] enabled = true port = smtp,ssmtp filter = sasl banaction = iptables-allports sendmail-whois logpath = /var/log/mail.warn maxretry = 3 По правилам, описанным в файле /etc/fail2ban/filter.d/sshd.conf мы: анализируем лог-файл /var/log/auth.log баним доступ по всем портам и посылаем письмо о возможной атаке через 3 неверные попытки аутентификации сами правила в файле sshd.conf оставляем «по умолчанию» Пример записи в /etc/log/auth.log которая будет «поймана» Nov 25 10:19:41 oban sshd[30769]: Failed password for root from AA.BB.CC.DD port 60031 ssh2 По правилам, описанным в файле /etc/fail2ban/filter.d/dovecot.conf мы: анализируем лог-файл /var/log/mail.log баним доступ по всем портам и посылаем письмо о возможной атаке через 3 неверные попытки аутентификации сами правила в файле dovecot.conf мы только что составили Примеры записей в /etc/log/mail.log которые будут «пойманы» Nov 27 23:41:57 oban dovecot: imap-login: Aborted login (no auth attempts): rip=AA.BB.CC.DD, lip=10.0.0.6 Nov 27 23:40:18 oban dovecot: pop3-login: Disconnected (no auth attempts): rip=AA.BB.CC.DD, lip=10.0.0.6, TLS handshaking: SSL_accept() failed: error:14094418:SSL routines:SSL3_READ_BYTES:tlsv1 alert unknown ca По правилам, описанным в файле /etc/fail2ban/filter.d/sasl.conf мы: анализируем лог-файл /var/log/mail.warn баним доступ по всем портам и посылаем письмо о возможной атаке через 3 неверные попытки аутентификации правило в файле /etc/fail2ban/filter.d/sasl.conf чуть изменим (с правилом «по умолчанию» срабатываний не будет): sudo nano /etc/fail2ban/filter.d/sasl.conf #failregex = (?i): warning: [-._\w]+\[ failregex = (?i): warning: [-._\w]+\[ Примеры записей в /etc/log/mail.log которые будут «пойманы» Nov 24 19:21:20 oban postfix/smtpd[458]: warning: unknown[AA.BB.CC.DD]: SASL LOGIN authentication failed: generic failure Nov 24 22:32:35 oban postfix/smtpd[2593]: warning: unknown[AA.BB.CC.DD]: SASL LOGIN authentication failed: authentication failure Можно проверить срабатывание написанных нами правил: fail2ban-regex /var/log/auth.log /etc/fail2ban/filter.d/sshd.conf fail2ban-regex /var/log/mail.log /etc/fail2ban/filter.d/dovecot.conf fail2ban-regex /var/log/mail.warn /etc/fail2ban/filter.d/sasl.conf Если в лог-файлах были попытки неверной аутентификации, мы получим по ним «отчет». Когда убедимся, что все работает - перезапустим сервис sudo /etc/init.d/fail2ban restart и наслаждаемся попадающими к нам «хакерами». |