Помогите с iptables

123 4
mower
На сайте с 01.12.2009
Offline
63
3328

Здравствуйте. Сейчас пытаюсь донастроить iptables для защиты от доса, оказалось что все дыряво. До этого считал что надо только 80 порт защищать, а оказалось ложится все и в другие.

Вот открытые порты

[root@server ~]# nc -v -w 4 -z localhost 1-10000 | grep "succeed"

Connection to localhost 21 port [tcp/ftp] succeeded!

Connection to localhost 22 port [tcp/ssh] succeeded!

Connection to localhost 25 port [tcp/smtp] succeeded!

Connection to localhost 53 port [tcp/domain] succeeded!

Connection to localhost 110 port [tcp/pop3] succeeded!

Connection to localhost 111 port [tcp/sunrpc] succeeded!

Connection to localhost 143 port [tcp/imap] succeeded!

Connection to localhost 443 port [tcp/https] succeeded!

Connection to localhost 631 port [tcp/ipp] succeeded!

Connection to localhost 772 port [tcp/cycleserv2] succeeded!

Connection to localhost 953 port [tcp/rndc] succeeded!

Connection to localhost 993 port [tcp/imaps] succeeded!

Connection to localhost 995 port [tcp/pop3s] succeeded!

Connection to localhost 8080 port [tcp/webcache] succeeded!

80 - nginx, проксирует на 8080 httpd

Первая дыра оказалось, что на :8080 можно было напрямую заходить, добавил правило

iptables -A INPUT -p tcp --dport 8080 ! -s ip_servera -j DROP

Вроде теперь все ок.

Теперь надо с другими портами что-то решить. Посмотрел как часто они используются - не очень часто. Надо именно защита от доса, т.е. допустим чтобы в минут можно было обратиться к ним не более чем с 5 разных ip, или может какие-то другие советы есть, особенно интересует как составить правило

M
На сайте с 01.12.2009
Offline
235
#1

csf , ставите и настраиваете как хотите, но проблему с ddos он не решит.

Администратор Linux,Freebsd. построения крупных проектов.
mower
На сайте с 01.12.2009
Offline
63
#2

Меня устраивает iptables полностью, мне лишь нужно закрыть все порта кроме 80 от доса, т.е. допустим если будут бить 5к ботами - пропускало только допустим 5 ип в минуту, остальные дроп, т.к. мне нужно работоспособность только 80 - остальные пусть приводят в неработоспособность, дос прекратится - тогда и пусть всякие там мыла и т.п. отправляются

mower добавил 27.04.2011 в 14:50

Или допустим так: если с 5 разных ип есть состояние established - новые подключения дропало.

M
На сайте с 16.09.2009
Offline
278
#3

Что Вы хотите-то?

Самое уместное - ткнуть носом в мануал по iptables. Там есть все необходимые в вашем случае примеры. Это азы. Если Вы их не знаете и ждете, что добрый дядя с форума бесплатно все объяснит - Вам единственная дорога использовать какой-то упрощенный интерфейс, типа csf. А руками правила трогать категорически нельзя.

В двух словах. Ставите политику по умолчанию в DROP для INPUT (а лучше еще и OUTPUT), а дальше разрешаете только то, что нужно. Например, на непривелигированные порты пускаете tcp соединения в ESTABLISHED,RELATED. В состоянии NEW - пускаете только на нужные порты сервисов (напр., 80, 22).

mower:
Или допустим так: если с 5 разных ип есть состояние established - новые подключения дропало.

См. модули limit, hashlimit, connlimit.

Абонементное сопровождение серверов (Debian) Отправить личное сообщение (), написать письмо ().
Raistlin
На сайте с 01.02.2010
Offline
247
#4
madoff:
csf , ставите и настраиваете как хотите, но проблему с ddos он не решит.

лучше apf. csf не советую

HostAce - Асы в своем деле (http://hostace.ru)
M
На сайте с 01.12.2009
Offline
235
#5
Raistlin:
лучше apf. csf не советую

Лучше ровных рук, и минимальных настроек, нечего нету, если на то пошло.

Raistlin
На сайте с 01.02.2010
Offline
247
#6

madoff, именно поэтому и отсоветовал. Многие его перекучивают так, что даже самих банит а эффекта ноль.

mower
На сайте с 01.12.2009
Offline
63
#7

В мануалах не нашел такого решения. Все решения так к 1 ип - допустим ограничить число параллельных обращений с 1 ип. А мне нужно не так.

Вот допустим

iptables -A INPUT -p tcp --syn --dport 22 -m recent --name radiator --set

iptables -A INPUT -p tcp --syn --dport 22 -m recent --name radiator --update --seconds 60 --hitcount 3 -j DROP

Это как работает, оно не дает больше 3 подключений в пределах 1 ип адреса, или вообще не более 3 обращений с любого адреса (мне бы это как раз подошло, если оно по второму варианту работает)

iamsens
На сайте с 26.08.2009
Offline
115
#8
mower:
Меня устраивает iptables полностью, мне лишь нужно закрыть все порта кроме 80 от доса

по моему токо на 80-й порт защиту и надо ставить)

или у вас куча портов открытых?

mower
На сайте с 01.12.2009
Offline
63
#9

iamsens, не засоряйте мой топик пожалуйста, тут и так уже флуд развели.

zexis
На сайте с 09.08.2005
Offline
388
#10

пример закрытия порта.

iptables -A INPUT -p tcp --dport 22 -j DROP

123 4

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий