Linux iptables

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модераторы: SLEDopit, Модераторы разделов

DrewBlin
Сообщения: 17

Linux iptables

Сообщение DrewBlin »

Добрый день. Подскажите плз, как можно используя iptables (или что-то аналогичное) ограничить кол-во подключений с каждого компа за какое-то время? Т.е. надо чтобы от каждого клиентского компа да секунду можно было установить не более, например, 5 соединений с сервером (на нем же и настраивать надо)
Спасибо сказали:
Аватара пользователя
Liksys
Сообщения: 2910

Re: Linux iptables

Сообщение Liksys »

DrewBlin писал(а):
13.06.2006 17:56
Добрый день. Подскажите плз, как можно используя iptables (или что-то аналогичное) ограничить кол-во подключений с каждого компа за какое-то время? Т.е. надо чтобы от каждого клиентского компа да секунду можно было установить не более, например, 5 соединений с сервером (на нем же и настраивать надо)

Какого типа соединения? Необязательно иптаблезом.
Спасибо сказали:
DrewBlin
Сообщения: 17

Re: Linux iptables

Сообщение DrewBlin »

Liksys писал(а):
13.06.2006 21:31
Какого типа соединения? Необязательно иптаблезом.

TCP cоединение. У меня этот комп выполняет роль фаервола перед локальной сетью. Так вот таким образом я хотел сделать нечто вроде защиты от того чтобы не закидали syn пакетами и не повесили web-сервер (он в локалке), а заодно и сам фаервол.
А чем еще кроме iptables пользоваться даже не знаю. любому совету буду рад
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: Linux iptables

Сообщение serzh-z »

См. например shorewall, firestarter, guarddog - надстройки и морды к iptables
Спасибо сказали:
grub
Сообщения: 128
ОС: Slackware 12.0

Re: Linux iptables

Сообщение grub »

смотри в man`е, конкретнее ищи по ключевому слову limit.

С помощью limit можно задать ограничение количества срабатываний правила за определенный период времени (минута, час)... Полчается что в твоем случае надо сделать цепочку и зафигарить такие команды (сори не охота писать это все командами iptables):

таблица mangle
цепочка INPUT
1. Если пакет c внутренего интерфейса с флагом syn то его в цепочку МОЯ-ЦЕПОЧКА
2. если пакет c внутренего интерфейса с флагом syn то DROP

цепочка МОЯ-ЦЕПОЧКА
1. источник IP1, limit 5/hour - ACCEPT
2. источник IP2, limit 5/hour - ACCEPT
3. источник IP3, limit 5/hour - ACCEPT
...

Алгоритм такой:
1 машина в твоей сети хочет с кем-то в инете соединиться и генерит SYN-пакет.
2 Этот попадает на внутрений интерфейс linuxbox
3 В самой первой таблице mangle - кой хер его тащить дальше? - он заворачивается в пользовательскую цепочку МОЯ-ЦЕПОЧКА
4 В моей цепочке если пакет удовлетворяет условию (т.е. его выдал один из IP1,IP2 Или IP3 и лимит 5 пакетов в час еще не исчерпан), то пакет принимается
5 Если пакет не удовлетворяет ни одному правилу в МОЕЙ ЦЕПОЧКЕ то он возвращается в INPUT
6 в INPUT следующее правило для него DROP!!!

Что не совсем удобно так это то что каждый IP придется вбивать отдельно. Ну и дофига записей может появиться... Хотя если у тебя адресов мало то проблемм нет?

PS вобщем-то если у тебя linux как сервер работает а не как прокси или рутер то можно и таблицу FILTER использовать
Спасибо сказали:
DrewBlin
Сообщения: 17

Re: Linux iptables

Сообщение DrewBlin »

цепочка МОЯ-ЦЕПОЧКА
1. источник IP1, limit 5/hour - ACCEPT
2. источник IP2, limit 5/hour - ACCEPT
3. источник IP3, limit 5/hour - ACCEPT
...

Может я коряво выразился, но защита нужна от подключений не из локалки, а из Internet. Не буду же я писать все мыслимые IP!!!!!! :blink:
Спасибо сказали:
Аватара пользователя
SashaAl
Сообщения: 216

Re: Linux iptables

Сообщение SashaAl »

DrewBlin писал(а):
14.06.2006 14:44

цепочка МОЯ-ЦЕПОЧКА
1. источник IP1, limit 5/hour - ACCEPT
2. источник IP2, limit 5/hour - ACCEPT
3. источник IP3, limit 5/hour - ACCEPT
...

Может я коряво выразился, но защита нужна от подключений не из локалки, а из Internet. Не буду же я писать все мыслимые IP!!!!!! :blink:

А что мешает тебе повесить правило на интерфейс?
ASP Linux 10.0 / 2.6.12-1.1386.1asp / KDE 3.3
Спасибо сказали:
Аватара пользователя
steepz
Сообщения: 162

Re: Linux iptables

Сообщение steepz »

(DrewBlin @ Jun 14 2006, в 20:44) писал(а):Может я коряво выразился, но защита нужна от подключений не из локалки, а из Internet. Не буду же я писать все мыслимые IP!!!!!! blink.gif


Подключений к чему? К твоему компу?


-A INPUT -s 0.0.0.0/0 -d localip -j DROP

Хватит?
Спасибо сказали:
DrewBlin
Сообщения: 17

Re: Linux iptables

Сообщение DrewBlin »

steepz писал(а):
14.06.2006 15:55
Подключений к чему? К твоему компу?

-A INPUT -s 0.0.0.0/0 -d localip -j DROP

Хватит?

Мало! Мне же надо контролировать подключения какбы с каждого компа в инете, чтобы он не пытался подключиться более 5 ряз в секунду!
Спасибо сказали:
Аватара пользователя
elide
Бывший модератор
Сообщения: 2421
Статус: Übermensch
ОС: лялих

Re: Linux iptables

Сообщение elide »

Мне же надо контролировать подключения какбы с каждого компа в инете, чтобы он не пытался подключиться более 5 ряз в секунду
очень странное у тебя понимание защиты от флуда....
т.е. если 5 миллионов _различных_ хостов обратятся к тебе одновременно - это, типа, нормальная ситуация и все тогда пучком будет? а вот если 6 раз _одна_ машина обратится - тогда все ляжет?
есть поток запросов, которые система может нормально обработать. и какая разница, от одной машины они идут, или от нескольких?
слава роботам!
Спасибо сказали:
Аватара пользователя
steepz
Сообщения: 162

Re: Linux iptables

Сообщение steepz »

DrewBlin писал(а):
14.06.2006 17:04
steepz писал(а):
14.06.2006 15:55

Подключений к чему? К твоему компу?

-A INPUT -s 0.0.0.0/0 -d localip -j DROP

Хватит?

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


если не в курсе что такое 0.0.0.0/0 - покури man iptables
Спасибо сказали:
Аватара пользователя
elide
Бывший модератор
Сообщения: 2421
Статус: Übermensch
ОС: лялих

Re: Linux iptables

Сообщение elide »

steepz
и что же такое 0.0.0.0/0, о великий гуру?
слава роботам!
Спасибо сказали:
Аватара пользователя
steepz
Сообщения: 162

Re: Linux iptables

Сообщение steepz »

elide писал(а):
15.06.2006 04:46
steepz
и что же такое 0.0.0.0/0, о великий гуру?


мдя

Сеть 0.0.0.0/0 – это и есть "весь Internet", потому что ей принадлежат любые IP-адреса (ни одного бита на сетевую маску).
Спасибо сказали:
Аватара пользователя
elide
Бывший модератор
Сообщения: 2421
Статус: Übermensch
ОС: лялих

Re: Linux iptables

Сообщение elide »

steepz
и как это соотносится с
надо контролировать подключения какбы с каждого компа в инете
а?
может перед тем, как начинать разбрасывать понты, стоит все-таки читать вопрос? "какбы с каждого" и "весь Internet" - это две очень большие разницы.
слава роботам!
Спасибо сказали:
Аватара пользователя
steepz
Сообщения: 162

Re: Linux iptables

Сообщение steepz »

elide писал(а):
15.06.2006 07:03
steepz
и как это соотносится с
надо контролировать подключения какбы с каждого компа в инете
а?
может перед тем, как начинать разбрасывать понты, стоит все-таки читать вопрос? "какбы с каждого" и "весь Internet" - это две очень большие разницы.


и как контролировать по твоему подключение с КАЖДОГО?

0.0.0.0/0 как раз и включает каждый комп в инете.
Спасибо сказали:
Аватара пользователя
cyberklin
Сообщения: 215
ОС: Fedora Core 5

Re: Linux iptables

Сообщение cyberklin »

steepz, если принять Ваше правило, то ограничение правила будет 5 срабатываний в интервал времени для всех компьютеров Интернета. то есть 2 раза правило сработает на машину 1.2.3.4 и 3 раза на 2.3.4.5 и всё. следующие пакеты пропускать не будет.

человеку же необходимо (оч странное всё-таки требование с точки зрения защиты): 5 срабатываний правила для машины 1.2.3.4 и 5 раз для 2.3.4.5 и по 5 раз на все остальные машины Интернета. надеюсь, Ваша ошибка теперь ясна ;)
Suum cuique
Спасибо сказали:
grub
Сообщения: 128
ОС: Slackware 12.0

Re: Linux iptables

Сообщение grub »

Ну вобще у меня задача как раз обратная стоит - фильтровать пакеты из моей сети, потому я тебя сразу и не понял... ну раз не хочешь забивать все ip из инета :D, то есть и другие варианты, хотя я их не проверял:

1. Вопервых если память мне не измеяет, то portsentry может динамически вносить изменения в таблици iptables - а поскольку он и предназначен для обнаружения сканирования, то это для тебя)

2. Во вторых если память мне всетаки изменяет, то можно попробовать snort+snortsam, правда наверное использовать препроцессор portscan не удастся. Но можно написать своих правил, используя ключевое слово tag с тегом host и параметром src. Тут наверное ситуация будет под большим контролем чем с portsentry.
Спасибо сказали:
grub
Сообщения: 128
ОС: Slackware 12.0

Re: Linux iptables

Сообщение grub »

elide писал(а):
14.06.2006 20:05
Мне же надо контролировать подключения какбы с каждого компа в инете, чтобы он не пытался подключиться более 5 ряз в секунду
очень странное у тебя понимание защиты от флуда....
т.е. если 5 миллионов _различных_ хостов обратятся к тебе одновременно - это, типа, нормальная ситуация и все тогда пучком будет? а вот если 6 раз _одна_ машина обратится - тогда все ляжет?
есть поток запросов, которые система может нормально обработать. и какая разница, от одной машины они идут, или от нескольких?


А вобще разделяю мнение товарища.
Уж если тебя и будут флудить то каким-нибудь ботнетом, отсюда выводы у тебя будет туева хуча источников syn-пакетов и столькоже записей в iptables. Очевидно что чем больше записей тем больше уходит времени на их обработку (для легального пакета придется проверять их все, а для каждого запрещеного в среднем половину - прикидываешь размеры бедствия?).
Следующий вопрос сколько надо syn-пакетов чтоб система легла? У тебя канал-то какой? Вероятно они забьют его весь! :D побочный вывод - одиночка сделать ничего не сможет...

Кстати еще можно собрать ядро с опцией "syncocies" - или как-то так, и поплевывать на 5 соединений в секунду...
Спасибо сказали: