LINUX.ORG.RU
ФорумTalks

Временный бан


0

0

Хочу реализовать фишку - банить айпи на определенный период времени. Маны читал - какие есть еще варианты, кроме каждый промежуток обновлять iptables?

fail2ban?

потырено из ru_linux:
iptables -A INPUT -i eth0 -p tcp -m tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 4 --name port_22_eth0 --rsource -j DROP
iptables -A INPUT -i eth0 -p tcp -m tcp --dport 22 -m state --state NEW -m recent --set --name port_22_eth0 --rsource
Банить 22-й порт на минуту, если за минуту было установлено соединений больше 4х.

zodiac ★★
()
Ответ на: комментарий от zodiac

Насколько я понял, match модуль recent использует для сравнения время последней встречи пакета, а потом использует тоже правило, что и в прошлом случае. Т.е. отсчет производится от последнего пакета + нужно доп. правило, которое показало действие на этот пакет.

У меня цель иная - я хочу забанить по айпи на определенное время (например, на сутки). После завершения этого периода, этот айпишник может иметь свободный доступ к моему серверу.

generatorglukoff ★★
() автор топика
Ответ на: комментарий от generatorglukoff

крон выполняется раз, допустим, в 5 минут и чекает кого нужно зобанить а кого разбанить. соотв, обновляет фаервольные рулисы.

isden ★★★★★
()
Ответ на: комментарий от isden

PS: но, обновлять нужно не всех, а только тех, для которых нужно совершить действие, т.е. забанить или разбанить. иначе будут коннекты слетать у тех кто работает.

isden ★★★★★
()
Ответ на: комментарий от isden

>крон выполняется раз, допустим, в 5 минут и чекает кого нужно зобанить а кого разбанить. соотв, обновляет фаервольные рулисы.

Сообственно я это и реализовал =)
Но:
1. скан имеет свойство быть противным - 10 коннектов за минуту на 80 порт (запрос на px_judge.php), потому нужно банить по первому запросу => нужно мгновенное обновление.
2. разбанивание будет не точнее n секунд = периоду крона

ЗЫ т.е. в настоящий момент модуля для iptables не существует и имеет смысл его написать?

generatorglukoff ★★
() автор топика

ещё можно использовать at(1)

Adjkru ★★★★★
()
Ответ на: комментарий от generatorglukoff

Для iptables был patch из patch-o-matic, который позволял задать интервалы времени, когда это правило срабатывает.

По поводу "нужно мгновенное обновление", надеюсь вы знаете, что при одновременном запуске двух команд iptables, одна из них может не сработать (особенности реализации netlink-socket'а).

>2. разбанивание будет не точнее n секунд = периоду крона

Для меня это смешно. Забанить точно на одни сутки... Если баним на сутки, то какая разница, 24 часа ровно, или 24 часа и 1 минута? А так, отдельная цепочка, в которую уходят только SYN-пакеты на 80 порт...

mky ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.