Защита от брут-форса
iptables -N ssh_knock # Создаем цепочку для проверки # Если за последние 10 минут было 5 и более попыток соединения — блокируем iptables -A ssh_knock -m recent --name ssh --update --seconds 600 --hitcount 5 -j RETURN # Регистрируем iptables -A ssh_knock -m recent --name ssh --set # Если за последние 5 секунд было менее двух попыток — блокируем iptables -A ssh_knock -m recent --name ssh ! --rcheck --seconds 5 --hitcount 2 -j RETURN # Все остальное — разрешаем iptables -A ssh_knock -j ACCEPT iptables -F INPUT # Очищаем цепочку INPUT iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # Разрешаем пакеты по установленным соединениям # Все попытки открыть новое соединение по SSH направляем на проверку iptables -A INPUT -m state --state NEW -p tcp --dport 22 -j ssh_knock iptables -P INPUT DROP # Что не разрешено — то запрещено |
Идея метода проста: защищаемый порт открывается со второй попытки, т.е. стук идет непосредственно в него. Вторую попытку нужно сделать в течение 5 секунд после первой. При этом 5 и более попыток за десять минут блокируются (во избежание брутфорса).