Защита от сканирования портов. 1. Будем банить на 10 минут всех, кто обратится не на открытые порты, например, 5060 и 22. iptables -A INPUT -m recent --rcheck --seconds 600 --name BANLIST -j DROP iptables -A INPUT -p tcp -m multiport ! --dports 22,5060 -m recent --set --name BANLIST -j DROP iptables -A INPUT -p tcp --syn --dport 22 -j ACCEPT iptables -A INPUT -p tcp --syn --dport 5060 -j ACCEPT Попробуйте с помощью telnet тыкнуться в любой другой порт, отличный от 22 и 5060. Тут же получите бан. 2. Защита от bruteforce средствами iptables на примере ssh порта: iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --name BANLIST --set iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --name BANLIST --update --seconds 60 --rttl --hitcount 3 -j DROP iptables -A INPUT -p tcp --syn --dport 22 -j ACCEPT Разрешаем только 3 запроса в минуту, третий должен быть удачным, чтобы подключиться, иначе ip адрес уходит в бан на 60 секунд. Посмотреть содержимое создаваемого списка BANLIST можно так: cat /proc/net/xt_recent/BANLIST ==== -m state --state NEW: Это модуль -m state, который используется для работы с состояниями соединений. Опция --state NEW означает, что правило будет применяться только к новым соединениям. -m recent --name BANLIST --set: Это модуль -m recent, который позволяет отслеживать и управлять списками адресов. Опция --name BANLIST указывает имя списка, которое называется "BANLIST". Опция --set используется для добавления текущего источника пакета (IP-адреса) в список "BANLIST".