GeoIP + iptables + fail2ban на Fedora 16, или RFRemix 16

При покупке нового VPS сервера поставил перед собой задачи большей защищённости SSH. Конечно можно перенести SSH на другой порт, в следствии чего количество попыток взлома очень сильно падает, но это не мой вариант. Что будем делать: установим базу GeoIP, привяжем её к iptables, разрешим доступ к SSH только из нужной нам страны (UA), даже для Украины повесим fail2ban, для желающих попробовать свои возможности во взломах SSH с Украины. Зачем эти сложности, ведь можно только моему IP разрешить доступ? Всё дело в том что замечена следующая ситуация, как только уезжаешь из дома к кому-то в гости, сразу же происходит что-то не адекватное с сервером, нужно зайти по SSH и всё исправить. Но если мы разрешим доступ только для домашнего IP, то с гостей уже не зайдём. Было решено разрешить доступ только украинским IP адресам, чтоб не волноваться. Приступим же… 1 yum install xtables-addons perl-Text-CSV_XS Этим мы установили модуль для iptables. Теперь проверим подгрузился ли он… 1 iptables -m geoip --help Внизу текста должны увидеть: 1 2 3 4 5 6 7 geoip match options: [!] --src-cc, --source-country country[,country...] Match packet coming from (one of) the specified country(ies) [!] --dst-cc, --destination-country country[,country...] Match packet going to (one of) the specified country(ies) NOTE: The country is inputed by its ISO3166 code. Этого нам и надо было добиться. Создадим папку mkdir -p /usr/share/xt_geoip/ ...

13 квітня 2016 · 2 хвилин · 332 слів · dimetrius

Защита Pure-FTPd с помощью fail2ban

На моих серверах обычно трудится FTP демон Pure-FTPd, в то же время всегда установлен fail2ban для защиты сервера по SSH. Заметил что в фильтрах fail2ban лежит файл pure-ftpd.conf, что как бы намекает: “Реализуй же ты защиту…”. Но в jail.conf о pure-ftpd упоминания небыло, заниматься было лень, а тут на днях пробило. Все действия проводились на Russian Fedora 16 (RFRemix 16). Считаем что у нас уже установлены Pure-FTPd и fail2ban. Для начала смотрим в лог pure-ftpd, есть ли в нём не удачные попытки авторизации. Если таковых нет, то попросите друга, или сами сделайте несколько ошибочных вводов пароля. Задача в том чтоб в логе появились сообщения об ошибках авторизации в нужном кол-ве, т.е. в том кол-ве, после которого клиента должно забанить. 1 cat /var/log/messages Видим попытки безуспешной авторизации? Здорово! Теперь пробуем, увидит ли их fail2ban с нынешними фильтрами 1 fail2ban-regex '/var/log/messages' '/etc/fail2ban/filter.d/pure-ftpd.conf' Скорее всего фильтр ничего не найдёт, скажет что адреса не найдены, или как-то так… Изменим фильтр, чтоб тот корректно обрабатывал современные логи pure-ftpd. # vim /etc/fail2ban/filter.d/pure-ftpd.conf Вот содержимое файла без закоментированных участков: 1 2 3 4 [Definition] __errmsg = (?:Authentication failed for user|Erreur d'authentification pour l'utilisateur) failregex = .*pure-ftpd: \(.*@<HOST>\) \[WARNING\] %(__errmsg)s \[.+\]$ ignoreregex = Сохраним файл /etc/fail2ban/filter.d/pure-ftpd.conf и попробуем снова увидит ли ошибочные авторизации fail2ban # fail2ban-regex '/var/log/messages' '/etc/fail2ban/filter.d/pure-ftpd.conf' ...

13 квітня 2016 · 2 хвилин · 340 слів · dimetrius