Linux за българи: Форуми

Linux секция за начинаещи => Настройка на програми => Темата е започната от: HRKOU в Mar 23, 2005, 17:25



Титла: iptables connection limit
Публикувано от: HRKOU в Mar 23, 2005, 17:25
Привет на всички ,
Проблема ми е следния - имам пуснат DHCPD сървър и се чудя как да направа така ,че да лимитирам заявките към него ,т.е. да НЕ позволявам повече от 5 заявки към dhcpd сървъра от ЕДИН И СЪЩ соурс МАК адрес в рамките на 1 минута ?
(Целта ми е да намаля възможността за flood с DHCP заявки)


Титла: iptables connection limit
Публикувано от: VladSun в Mar 23, 2005, 19:19
Можеш да го направиш (въпреки, че не знам дали е най-елегантното решение) с iptables,

Примерен код


iptables -N DNS
iptables -A INPUT -p udp --dport 53 -j DNS
iptables -A INPUT -p tcp --dport 53 -j DNS

iptables -A DNS -m --mac-source MAC1 -m limit --limit 5/min -j RETURN
iptables -A DNS -m --mac-source MAC2 -m limit --limit 5/min -j RETURN
........

iptables -A DNS -j DROP


Забележи, че таргет-а е RETURN, т.е. трябва да осигуриш ACCEPT във веригата на INPUT. Ако нямаш някакви други съображения можеш директно да заместиш RETURN с ACCEPT.


Титла: iptables connection limit
Публикувано от: zeridon в Mar 23, 2005, 20:48
Портовете на dhcpd sa 67 и 68 и са на UDP


Титла: iptables connection limit
Публикувано от: voyager в Mar 23, 2005, 20:51
Цитат (VladSun @ Март 23 2005,20:19)
Можеш да го направиш (въпреки, че не знам дали е най-елегантното решение) с iptables,

Примерен код


iptables -N DNS
iptables -A INPUT -p udp --dport 53 -j DNS
iptables -A INPUT -p tcp --dport 53 -j DNS

iptables -A DNS -m --mac-source MAC1 -m limit --limit 5/min -j RETURN
iptables -A DNS -m --mac-source MAC2 -m limit --limit 5/min -j RETURN
........

iptables -A DNS -j DROP


Забележи, че таргет-а е RETURN, т.е. трябва да осигуриш ACCEPT във веригата на INPUT. Ако нямаш някакви други съображения можеш директно да заместиш RETURN с ACCEPT.

Защо да ограничава DNS заявките? нещо не мога да хвана логиката тука... човека пита за DHCP...ако не ме лъже паметта имаше разлика от земята до небето...  :D. Не съм сигурен дали с iptables може да се направи нещо (абе... може и да може.. като вкараш малко по-адвансед) като комбинираш --mac-source xx:xx:xx:xx:xx със -m limit... всъщност... трябва да видиш със ethreal или нещо подобно от тежката артилерия как точно работи DHCP-то, и после след като си му хванал веднъж спатиите и измисляш как ще ограничаваш заявките... въпреки, че не виждам много смисъл, освен ако дадения мак не ти създава ядове...


Титла: iptables connection limit
Публикувано от: VladSun в Mar 23, 2005, 21:02
Така е като чета диагонално ;)
Извинявам се :))))))))
Дано все пак послужи на някой!

ПП: Ако към сървера по принцип идват малко заявки от всеки потребител, можеш да направиш тотално ограничение за заявките, независимо от вида на протокола. Казвам го защото iptables поддържаше само tcp, icmp и udp протокола, а доколкото си спомням dhcp-то беше нещо като arp протокола, т.е. с iptables няма да можеш да го мачнеш.


Титла: iptables connection limit
Публикувано от: в Mar 23, 2005, 21:58
Абе хора четете си маналите ... бачка на UDP


Титла: iptables connection limit
Публикувано от: Uvigii в Mar 23, 2005, 22:21
Адвансед-Мадвансвед-Топ-Артилерия
Цитат

  dscp
       This  module matches the 6 bit DSCP field within the TOS field in the IP header.  DSCP has superseded TOS
       within the IETF.

       --dscp value
              Match against a numeric (decimal or hex) value [0-32].

       --dscp-class DiffServ Class
              Match the DiffServ class. This value may be any of the BE, EF, AFxx or CSx classes.  It will  then
              be converted into it's according numeric value.



Титла: iptables connection limit
Публикувано от: VladSun в Mar 23, 2005, 22:34
Цитат (Guest @ Март 23 2005,21:58)
Абе хора четете си маналите ... бачка на UDP

Правилно ! :)

Цитат
DHCP uses UDP as its transport protocol.  DHCP messages from a client
   to a server are sent to the 'DHCP server' port (67), and DHCP
   messages from a server to a client are sent to the 'DHCP client' port
   (68).

   DHCP messages broadcast by a client prior to that client obtaining
   its IP address must have the source address field in the IP header
   set to 0.


Днес повече постове НЯМА да пиша ;)
Така най- ще помогна :)))))
Тая тема така се омазах, че .......


Титла: iptables connection limit
Публикувано от: в Mar 23, 2005, 23:33
До тук видях само един вариант въпреки , че за DNS не за DHCP , но би трябвало да сработи и за dhcp , но идва проблема с броя на правилата във веригата .. ами ако има 100 клиента взимащи си ip по DHCP - това прави 100 правила , а когато клиентите са още повече ?
Няма ли някакво по-елегантно решение на проблема , пък било то и без iptables ?


Титла: iptables connection limit
Публикувано от: VladSun в Mar 23, 2005, 23:40
Въпреки обещанието ми ;)

Аз имам такива правила за всяко ИП срещу SYN-flood. Не пречат да са толкова много. Виждал съм защ. стени с ipatables с над 2000 правила.
Ако те притеснява проблемът с въвеждането напиши си малко скриптче.


Титла: iptables connection limit
Публикувано от: в Mar 24, 2005, 01:00
Аз също съм мяркал такива издънки на природата .. пускащи се дори директно с малка програмка писана на С използваша библиотеките на iptables - с цел по-бързото лоадване на правилата , както и да е :)