LinuxForum.Fans
Тема

Netfilter IPTABLE

Автор: Shkrest 36 сообщений 7627 просмотров
#280936

Shkrest учись задавать вопросы иначе вразумительных ответов не будет.
И надо хотя бы отвечать на заданные вопросы:

"zenon" написал:
Ответь на простой вопрос - что такое политики по умолчанию в iptables

Подобные посты:

"Shkrest" написал:
Да так и не хера не понял.Попробовал несколько вариантов, так понял не подключенны некоторые модули.Все равно дырявый http не чего не могу понять conlimit не работает на 80 порт.Что посоветуете гуру linux ?!

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

#283545
"zenon" написал:
Ответь на простой вопрос - что такое политики по умолчанию в iptables (Я не знаю что это =))

Учту и буду внимательней.Я не знал что у вас тут как в библиотеке тишина должна быть =)
Я думал кто то войдет в положение чуток поправит правила, я не думаю что это так трудно черкануть пару правил, если знаешь как и что работает. Я сейчас не жалуюсь вроде все работает, но фактически проверить я не чего не могу.Я не знаю работает ли ограничение на http,вернее что то работает, но мне интересно блокирует ли ддос атаки, флуд.Проверить я пока не нашел как.
Наверное все же да, я просто хотел что бы кто то это сделал за меня, а это не верно.

#283561

Shkrest, прежде всего почитай http://www.opennet.ru/docs/RUS/iptables/

Судя по скрипту, политики по умолчанию у тебя в ACCEPT.
Поэтому тебе нужны правила типа
iptables -A INPUT бла-бла-бла -j DROP

В твоем же случае

Показать

iptables -A INPUT -p tcp --syn -m limit --limit 60/s -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 25566 -j ACCEPT
iptables -A INPUT -p udp --dport 25566 -m hashlimit --hashlimit-upto 101/s --hashlimit-mode srcip --hashlimit-name css -j ACCEPT
iptables -I INPUT -m state --state NEW -p tcp ! --syn -j DROP
iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 10 --connlimit-mask 32 -j REJECT
iptables -A INPUT -p tcp -m tcp --dport 22 -m connlimit --connlimit-above 3 --connlimit-mask 32 -j DROP
iptables -A INPUT -p tcp -m tcp --dport 25566 -m connlimit --connlimit-above 10 --connlimit-mask 32 -j DROP
iptables -A INPUT -p udp --dport 25566 -j DROP
iptables -A INPUT -p udp --dport 25566 -m length --length :28 -j DROP
iptables -A INPUT -p tcp --syn -j DROP

Сначала ты пишешь
iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
Все пакетики пришедшие на интерфейс eth0 и 80 порт разрешены.

А потом
iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 10 --connlimit-mask 32 -j REJECT

Но поскольку применилось первое правило, то до второго правила пакетики не доходят.
Важен порядок правил, поэтому нужно поменять их местами

iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 10 --connlimit-mask 32 -j REJECT
iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT

#283562

Я так понял это касается всего, С начала идет conlimit потом accept?ну если по факту, с начала ограничения фильтрация, потом разрешение?но если я поменяю правило, как откроется порт, с начала получится что ограничивается а потом только открывается?
Проверю, если заработает с меня + и огромное спасибо.

#283563

Имей ввиду, что поскольку скрипт у тебя простой как гвоздь, тебе надо вручную очищать цепочки правил или модернизировать скрипт, чтобы старые неправильные правила удалялись.

#283564

Подскажи порядок, с начала чищу все, потом блокирую все, потом даю ограничения, потом открываю получается так?

#283565

Есть политики по умолчанию.
Если политика по умолчанию в АCCEPT - все разрешено, что не запрещено.
Если в DROP- все запрещено, разрешаешь только то, что нужно.

Конкретно у тебя политика по умолчанию ACCEPT. Соответственно тебе надо запретить все ненужное.
Скриптом ты подгрузил цепочки правил. Потом их поправил. Нужно удалить старые и запустить скрипт еще раз.
Смотри примеры, читай и только потом спрашивай.

#283567

Да предвкушаю трудности, я так понял не избежать.Ну я так понял все нужно переделывать.Займусь вечером.
Первое, отчистка цепочек, второе запрет всего и вся, третье ограничительные правила, 4 правила на разрешение, это подойдет к политики drop?

#283580

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

Показать
### BEGIN INIT INFO
# Provides: defaultdaemon
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start daemon at boot time
# Description: Enable service provided by daemon.
### END INIT INFO
#Politic
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
# befor clear all chains
iptables -t filter -F
iptables -t filter -X
iptables -t nat -F
iptables -t nat -X
#Main chains
iptables -A INPUT -p tcp --syn -j DROP
iptables -A INPUT -p tcp --tcp-flags SYN -m tcp --dport 80 -m connlimit --connlimit-above 10 --connlimit-mask 32 -j REJECT
iptables -A INPUT -p tcp -m tcp --dport 22 -m connlimit --connlimit-above 4 --connlimit-mask 32 -j REJECT
iptables -A INPUT -p tcp -m tcp --dport 25566 -m connlimit --connlimit-above 5 --connlimit-mask 32 -j DROP
## ACCEPT connections
iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 25566 -j ACCEPT
iptables -A INPUT -p tcp --syn -m limit --limit 60/s -j ACCEPT
#283586

А это зачем?
iptables -A INPUT -p tcp --syn -j DROP

#283588

я уже точно не помню, но вроде ограничивает --syn пакеты.
Наверное нужно по подробней.
У меня есть игровой сервер cs, и есть скромный мониторинг для себя лично просто для контроля онлайна.
Я хотел бы, что бы нельзя было ддосить меня.Сейчас у меня стоит правило

Показать
### BEGIN INIT INFO
# Provides: defaultdaemon
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start daemon at boot time
# Description: Enable service provided by daemon.
### END INIT INFO

iptables -A INPUT -p tcp --syn -m limit --limit 60/s -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 27015 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 27016 -j ACCEPT
iptables -A INPUT -p udp --dport 27015:27016 -m hashlimit --hashlimit-upto 101/s --hashlimit-mode srcip --hashlimit-name css -j ACCEPT
iptables -I INPUT -m state --state NEW -p tcp ! --syn -j DROP
iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 10 --connlimit-mask 32 -j REJECT
iptables -A INPUT -p tcp -m tcp --dport 22 -m connlimit --connlimit-above 3 --connlimit-mask 32 -j DROP
iptables -A INPUT -p tcp -m tcp --dport 27015:27016 -m connlimit --connlimit-above 10 --connlimit-mask 32 -j DROP
iptables -A INPUT -p udp --dport 27015:27016 -j DROP
iptables -A INPUT -p udp --dport 27015:27016 -m length --length :28 -j DROP
iptables -A INPUT -p tcp --syn -j DROP

Но на сколько мне сейчас открыли глаза, это не скрипт а гвоздь.Вот я теперь окончательно запутался.
Объясните что значат подчеркнутые правила под сполером?И как мне стало известно у меня в старом правиле не чего не работало ?!

#283591

iptables -A INPUT -p tcp --syn -j DROP
Данное правило блокирует все новые попытки соединения для tcp с твоим серваком.
Путаться не надо. Надо читать.

#283593

iptables -A INPUT -p tcp --syn -m limit --limit 60/s -j ACCEPT не позволит соедениться с 1 ип чаще чем раз в 60 сек?Правильно я понимаю?

Показать
#Politic
$IPT -P INPUT DROP
$IPT -P OUTPUT DROP
$IPT -P FORWARD DROP
# befor clear all chains
iptables -t filter -F
iptables -t filter -X
iptables -t nat -F
iptables -t nat -X
Выставил политику
iptables -A INPUT -p tcp --tcp-flags SYN -m tcp --dport 80 -m connlimit --connlimit-above 10 --connlimit-mask 32 -j REJECT
iptables -A INPUT -p tcp -m tcp --dport 22 -m connlimit --connlimit-above 4 --connlimit-mask 32 -j REJECT
iptables -A INPUT -p tcp -m tcp --dport 25566 -m connlimit --connlimit-above 5 --connlimit-mask 32 -j DROP
Дал ограничения
iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 25566 -j ACCEPT
открыл нужное?

1 конлимит вытащит ддос?Или что еще нужно дописать, что бы не какого флуда и лишних пакетов (меня интересуют только пакеты которые могут принадлежать к атаке)

#283594

Сейчас появилась новая атака, действует так, на игровой сервер отправляется запрос, сервер отвечает на этот запрос, только не туда откуда он был изначально, а в другое место (другое место это жертва)Получается из серверов делают, бот сеть, забирают некоторое количество трафика, и получается что мой сервер отвечая на запрос создает атаку.!
Это правило заработает если его поставить?Сейчас найду примеры решений которые именно по этим бот сетям советуют, подскажите если не трудно что и как -()

text
iptables -А INPUT -p udp -m udp -m string --hex-string "|FFFFFFFF56|" --algo kmp -j DROP

Вот собственно и это правило.Что оно делает можите пояснить?

#283652

Удаляй, все сделанно.Спасибо за внимание, и помощь.
*ROFL* утро

Войдите или зарегистрируйтесь, чтобы ответить.