LINUX.ORG.RU

recent iptables

 , ,


0

1

Приветствую. У меня пару вопросов у знатоков.

  1. Как ограничить кол-во прилетающих пакетов на порт? С помощью recent iptables? Как это сделать корректно например: 100 пакетов в сек остальные reject.
  2. Как огранчить SYN flood или вообще его прикрыть.

1. Погуглить. Ключевые слова (iptables, recent) вы определили правильно. А правила пишите сами, а то потом выяснится, что вам нужно не просто 100 пакетов в секунду, а 100 «новых» пакетов, чтобы не ограничивать полосу для уже установленных соединений и т.д.

2. Ну можете попробвать включить syn cookies (отдельно в ядре, не в iptables).

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

У меня вот так: iptables -A INPUT -p tcp -m tcp --dport 29550 -m conntrack --ctstate NEW -m recent --set --name SSH iptables -A INPUT -p tcp -m tcp --dport 29550 -m conntrack --ctstate NEW -m recent --update --seconds 30 --hitcount 30 --rttl --name SSH -j DROP iptables -A INPUT -p tcp -m tcp --dport 29550 -m conntrack --ctstate NEW -j ACCEPT И добавляет: src=тут_айпи ttl: 49 last_seen: 4309029279 oldest_pkt: 2 4309019789, 4309029279 2 - это же кол-во подключений а не кол-во пакетов. Это работает вообще?

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

Форматирование уехало, сложно понять, что у вас написано (под формой ввода сообщения есть ссылка на варианты разметки). Но видно, что есть ″-m conntrack --ctstate NEW″. То есть правила применяются только к первому пакету соединения, то есть ограничивают кол-во подключений.

Если вам нужно вобще 100 пакетов в секунду, не важно откуда, то тогда ″iptables -m limit", как-то так:

iptables -A INPUT -p tcp -m tcp --dport 29550 -m limit --limit 100/s -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 29550 -j DROP 

Но перед этими правилами у вас не дожно быть правил, разрешающих порт 29550 или правил типа ″-m conntrack --ctstate ESTABLISHED -j ACCEPT".

mky ★★★★★ ()