При покупке нового VPS сервера поставил перед собой задачи большей защищённости SSH.
Конечно можно перенести SSH на другой порт, в следствии чего количество попыток взлома очень сильно падает, но это не мой вариант.
Что будем делать: установим базу GeoIP, привяжем её к iptables, разрешим доступ к SSH только из нужной нам страны (UA), даже на Украину повесим fail2ban, для желающих попробовать свои возможности во взломах SSH с Украины.
Зачем эти сложности, ведь можно только моему IP разрешить доступ? Всё дело в том что замечена следующая ситуация, как только уезжаешь из дома к кому--то в гости, сразу же происходит что-то не адекватное с сервером, нужно зайти по SSH и всё исправить. Но если мы разрешим доступ только для домашнего IP, то с гостей уже не зайдём. Было решено разрешить доступ только украинским IP адресам, чтоб не волноваться.
Приступим же...
yum install xtables-addons perl-Text-CSV_XS
Этим мы установили модуль для iptables. Теперь проверим подгрузился ли он...
iptables -m geoip --help
Внизу текста должны увидеть:
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/
перейдём в папку со скриптами, скачаем и подготовим базу GeoIP
cd /usr/share/doc/xtables-addons-1.41/geoip/
./xt_geoip_dl
./xt_geoip_build GeoIPCountryWhois.csv
скопируем подготовленные файлы в нужное место
cp -r {BE,LE} /usr/share/xt_geoip/
Добавим правило в iptables
vim /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -m geoip --src-cc UA -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j DROP
# service iptables restart
Если всё сделано правильно, то в SSH вас должно пускать только с Украины.
Вторая часть сводится к установке fail2ban
yum install fail2ban
chkconfig fail2ban on
service fail2ban restart
Все настройки fail2ban можно найти по пути /etc/fail2ban/jail.conf
Удачи вам
Разрешаем ssh для своей страны (DE) и страны, где будем проводить отпуск(FR)
Цитата: Блокируем доступ к фтп-серверу всех с Папуа-Новой Гвинеи(PG)
Цитата: Устанавливаем отдельно метки для США и остальных, и посылаем каждый тип трафика к его цели
Цитата: