Назад | Перейти на главную страницу

Настройка IPTables для отбрасывания / отклонения IP-адресов на основе попыток

Я читал некоторую документацию CentOS в отношении безопасности SSH и заметил, что есть правило, которое вы можете реализовать в IPTables для DROP IP, которое пытается получить доступ к вашему SSH-порту на основе установленного количества в течение определенного периода времени. Выглядело это примерно так:

iptables -A INPUT -p tcp --dport 22 -m recent --set --name ssh --rsource
iptables -A INPUT -p tcp --dport 22 -m recent ! --rcheck --seconds 60 --hitcount 4 --name ssh --rsource -j ACCEPT

С тех пор я переместил свой порт SSH, но я реализовал это правило для порта, на который был переведен SSH.

У меня вопрос: так как это идеально для SSH, нельзя ли это написать для других портов? Должен ли он? Возможны ли атаки методом перебора каким-либо другим способом? Было бы безумием сказать, что вы можете реализовать правило для IPTables, которое делает это для всего окна?

Я предполагаю, что сервер с высоким трафиком может почти "споткнуться" об этом правиле, но я также предполагаю, что атаки методом перебора происходят в таком колоссальном количестве за небольшой промежуток времени, что может быть установлен какой-то предел для предотвращения этот.

Большое спасибо SF

Вы можете сделать это для SSH и других сервисов, но вам нужно знать ожидаемое количество подключений. В противном случае вы можете отказаться от легального трафика.

Одна важная вещь, на которую следует обратить внимание, - это иметь подобное правило до recent правила.

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

В противном случае вы ограничите все пакеты, а не только новые соединения.

Я лично использую DenyHost для этой задачи. http://denyhosts.sourceforge.net/

Посмотрите на sshguard, он именно так и делает. Первоначально он был написан только для ssh, но теперь он распространяется и на другие службы. http://www.sshguard.net/