Автор Тема: проблем с iptables connlimit  (Прочетена 1726 пъти)

h7d8

  • Напреднали
  • *****
  • Публикации: 197
  • Distribution: Debian;Ubuntu
  • Window Manager: Gnome
    • Профил
проблем с iptables connlimit
« -: Apr 07, 2009, 18:54 »
Рутирам от интерфейс eth0 - (dhcp - Inet )  към eth1 (static - local network) по следния начин.

Код:
iptables -P FORWARD DROP
iptables -A FORWARD -d 192.168.X.X -j ACCEPT
iptables -A FORWARD -d 192.168.X.X -j ACCEPT
iptables -A FORWARD -d 192.168.X.X -j ACCEPT
iptables -A FORWARD -d 192.168.X.X -j ACCEPT
iptables -A FORWARD -d 192.168.X.X -j ACCEPT
iptables -A FORWARD -s 192.168.X.X -i ppp+ -o eth0 -j ACCEPT
iptables -A FORWARD -s 192.168.X.X -i ppp+ -o eth0 -j ACCEPT
iptables -A FORWARD -s 192.168.X.X -m mac --mac-source XX:XX:XX:XX:XX:XX -j ACCEPT
iptables -A FORWARD -s 192.168.X.X -m mac --mac-source XX:XX:XX:XX:XX:XX -j ACCEPT
iptables -A FORWARD -s 192.168.X.X -m mac --mac-source XX:XX:XX:XX:XX:XX -j ACCEPT
iptables -A FORWARD -s 192.168.X.X -m mac --mac-source XX:XX:XX:XX:XX:XX -j ACCEPT
iptables -A FORWARD -s 192.168.X.X -m mac --mac-source XX:XX:XX:XX:XX:XX -j ACCEPT
iptables -A FORWARD -s 192.168.X.X -m mac --mac-source 00:13:ce:61:4b:72 -j ACCEPT
iptables -A FORWARD -s 192.168.X.X -p tcp --dport X:X -j ACCEPT
iptables -t nat -I PREROUTING -p tcp --dport 1024:1026 -i eth0 -j DNAT --to 192.168.2.100
iptables -t nat -I POSTROUTING -s 192.168.X.X/24 -j MASQUERADE
iptables -t nat -I POSTROUTING -d 192.168.X.X/24 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
echo "[`date`]: Done! Firewall loaded" >> /var/log/firewall

До тук всичко е наред,има интернет и всеки ип адрес е заключен по мак адрес.Реших ,че няма да е зле да огранича сесиите за всеки Х юзър индивидуално(входящи и изходящи).Проверих веднага дали имам нужда от пач пом ,но при команда:

Код:
iptables -m connlimit --help
modprobe ipt_connlimit

се оказа ,че не плюе грешки и уж би трябвало да проработи ограничението.Пробвах с
Код:
echo 1 > /proc/sys/net/ipv4/ipt_connlimit
,но казва че няма такова чудо там.Подозирам ,че мястото му не е там ,но пък с find не намерих "ipt_connlimit" ( find: `ipt_connlimit': No such file or directory ).Пробвах следните вариации с команди ,но не намерих разлика.Пускам с флашгет-а 2 исо-та (дебиан.iso , убунту.iso ) ,обаче и 2-те се теглиха с пълна газ.

Код:
iptables -A FORWARD -p tcp -s 192.168.X.X -m connlimit --connlimit-above 1 -j DROP
iptables -A FORWARD -s 192.168.X.X -p tcp --syn -m connlimit --connlimit-above 2 -j REJECT
iptables -A FORWARD -s 192.168.X.X -p tcp -m connlimit --connlimit-above 1 -j DROP
iptables -A FORWARD -s 192.168.X.X -m mac --mac-source XX:XX:XX:XX:XX -p tcp --syn -m connlimit --connlimit-above 1 -j DROP

Приема командите ,но резултат поне не виждам.Доста неща изчетох и вече съм сад.  ;D Debian Linux 2.6.26-1-686 не би трябвало да изисква пач за айпитейбълс ,но все пак имам нужда от помощ и питам (сигурно и греша). :)
« Последна редакция: Apr 07, 2009, 18:58 от h7d8 »
Активен

VladSun

  • Напреднали
  • *****
  • Публикации: 2166
    • Профил
Re: проблем с iptables connlimit
« Отговор #1 -: Apr 08, 2009, 10:39 »
Ако добавяш тези правила след като си пуснал скрипта за защитната ти стена, то не виждам как пакетите ще достигнат до тях при, условие че имаш вече ACCEPT ;)
Не знам каква е стойността по подразбиране на --connlimit-mask параметъра, но за да ограничава за отделно ИП ти трябва:
Код
GeSHi (Bash):
  1. iptables -A FORWARD -s 192.168.1.XXX -p tcp -m tcp --syn -m connlimit --connlimit-above 2 --connlimit-mask 32 -j REJECT

ПП: С тия ACCEPT правила май не си "заключил" по МАК адрес. Ако беше дал и ИП-тата без да ги криеш (все пак са частни ;) ) щях да съм по-точен.
« Последна редакция: Apr 08, 2009, 10:41 от VladSun »
Активен

KISS Principle ( Keep-It-Short-and-Simple )
http://openfmi.net/projects/flattc/
Има 10 вида хора на този свят - разбиращи двоичния код и тези, които не го разбират :P

h7d8

  • Напреднали
  • *****
  • Публикации: 197
  • Distribution: Debian;Ubuntu
  • Window Manager: Gnome
    • Профил
Re: проблем с iptables connlimit
« Отговор #2 -: Apr 09, 2009, 05:20 »
Код
GeSHi (Bash):
  1. iptables -P FORWARD DROP
  2. iptables -A FORWARD -d 192.168.2.99 -j ACCEPT
  3. iptables -A FORWARD -d 192.168.2.100 -j ACCEPT
  4. iptables -A FORWARD -d 192.168.2.101 -j ACCEPT
  5. iptables -A FORWARD -d 192.168.2.102 -j ACCEPT
  6. iptables -A FORWARD -d 192.168.2.103 -j ACCEPT
  7. iptables -A FORWARD -s 192.168.2.102 -i ppp+ -o eth0 -j ACCEPT
  8. iptables -A FORWARD -s 192.168.2.103 -i ppp+ -o eth0 -j ACCEPT
  9. iptables -A FORWARD -s 192.168.2.99 -m mac --mac-source 00:1B:38:76:A5:0B -j ACCEPT
  10. iptables -A FORWARD -s 192.168.2.99 -m mac --mac-source 00:1d:d9:64:77:1d -j ACCEPT
  11. iptables -A FORWARD -s 192.168.2.100 -m mac --mac-source 00:08:C7:2B:D1:01 -j ACCEPT
  12. iptables -A FORWARD -s 192.168.2.100 -m mac --mac-source 00:19:66:39:3E:98 -j ACCEPT
  13. iptables -A FORWARD -s 192.168.2.101 -m mac --mac-source 00:03:0D:38:B8:D0 -j ACCEPT
  14. iptables -A FORWARD -s 192.168.2.101 -m mac --mac-source 00:13:ce:61:4b:72 -j ACCEPT
  15. iptables -A FORWARD -s 192.168.2.100 -p tcp --dport 1024:1026 -j ACCEPT
  16. iptables -t nat -I PREROUTING -p tcp --dport 1024:1026 -i eth0 -j DNAT --to 192.168.2.100
  17. iptables -t nat -I POSTROUTING -s 192.168.2.0/24 -j MASQUERADE
  18. iptables -t nat -I POSTROUTING -d 192.168.2.0/24 -j MASQUERADE
  19. echo 1 > /proc/sys/net/ipv4/ip_forward
  20. echo "[`date`]: Done! Firewall loaded" >> /var/log/firewall
Така...по този начин рутира добре и нямам проблеми.Относно маковете ,ако премахна правилото дори и да съм задал ацепт интернет няма.По-добри варианти приемам и не бих се засегнал ,ако съм сложил за рутиране грешни правила.Пробвах лимит-а ,но при пускане на 3-исо файла във флашгет-а ,той си тегли нормално.
Как проверявам ,какво се случва? Без никакви правила за лимитиране и без да пускам нещо за теглене резултатът за сесиите е следният:
->
C:\>netstat -ano | find /i "established" /c
10
C:\>
->
Това е на произволен ип адрес!
Добавям и пробвам с различни правила с лимит 50 и резултатът при теглене е:
->
C:\>netstat -ano | find /i "established" /c
352
C:\>
Според мен вариантите за този резултат са няколко.Като цяло има разминаване в правилата и това води до фалш ,модулът има бъг и не реализира лимитиране или пак съм "късметлия" . ??? Май естеството на проблема изисква да си платя ,някой да ми помогне.  ;D damn it!
Вече е 5ч. и продължавам да човъркам.Интересно ,че по едно време ми изплю грешка и то я видях ,защото ми затвори конзолата и пуснах монитор-а директно към сървър-а.Даже се оказа ,че има проблем с едната мрежова карта и не се оправи докато не го рестартирах.Проблем ,който до сега не съм имал.Поне през последните 58 дни ъптайм.
->
iptables v1.4.2: couldn't load match `connlimit-above` :/lib/xtables/libipt_connlimit-above.so: cannot open shared object file: No such file or directory
->
[root@cyber:~]# ls -l /lib/xtables/libipt_connlimit-above.so
ls: cannot access /lib/xtables/libipt_connlimit-above.so: No such file or directory
[root@cyber:~]#
->
Няма никой...щом го търси това означава ,че му трябва ,но защо не дава винаги тази грешка...Има и нещо друго ,което виждам.Добавя правило за лимит ,но то не работи...
->
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         
DROP       tcp  --  192.168.2.0/24       192.168.2.100       #conn/0 > 1
DNAT       tcp  --  anywhere             anywhere            tcp dpts:1024:1026 to:192.168.2.100

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         
MASQUERADE  all  --  anywhere             192.168.2.0/24     
MASQUERADE  all  --  192.168.2.0/24       anywhere           

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
->
Не е много на място ,но пък го отразява.Скоро го сложих този дебиан 5 ,но май трябва компилация.Вече нямам конкретен план как да действам и затова ,моля помагайте! За мен това не е проблем от главно значение ,но когато има дори и дребна нужда от нещо то е хубаво да работи.  :) [_]3
ПС: Извинявам се ,ако на места съм писал грешно или небивалици.Яко ми се доспа ,надявам се днес по-късно пак да коментираме.
Активен

h7d8

  • Напреднали
  • *****
  • Публикации: 197
  • Distribution: Debian;Ubuntu
  • Window Manager: Gnome
    • Профил
Re: проблем с iptables connlimit
« Отговор #3 -: Apr 27, 2009, 02:45 »
Оп :) май ще изровя тази тема от архива.Не съм подкаръл още въпросния конлимит ,но пък открих какво ми липсва.Дали е пропуснатo да се вметне в ядрото незнам ,но очевидно липсва.Ето и какво липсва при мен:

Код:
iptables v1.4.2: Couldn't load match `conlimit':/lib/xtables/libipt_conlimit.so: cannot open shared object file:
No such file or directory

Липсата на тази библиотека до определена степен обяснява по-горните симптоми. :) Търсих я ,за да я добавя на липсващото място ,обаче я няма никъде.Въпросите на ,който търся решение са: дали има вариант да си я набавя или трябва компилация на ядрото?Дали изобщо ще го има в по-новите ядра или изисква пач-о-матик?Доста теми прегледах ,но във всяка една се разясняваше такъв проблем само за стари ядра.Моето е 2.6.26-2-686 и явно толкова му е интегрирано и изисква допълнително пипане.  ??? Интересно е също ,че тази грешка я плюе само ,когато въпросното правило за лимит на сесиите е на 1-во място в листа за изпълнение.До тук стигнах ,ако някой може и има желание да помага.Ще разчитам на вашата помощ ,защото се из*****их!  ;D ::)  :D  [_]3

пс: То май не е само една липсваща библиотека.Бях забравил за по-предния пост.Все пак решението би трябвало да е цялостно.
« Последна редакция: Apr 27, 2009, 02:49 от h7d8 »
Активен

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
connlimit проблем
Настройка на програми
the_black_wind 2 1475 Последна публикация Oct 01, 2005, 13:09
от the_black_wind
connlimit
Настройка на програми
sys7em 1 1096 Последна публикация Oct 04, 2005, 23:24
от toxigen
Connlimit
Хардуерни и софтуерни проблеми
st_dimitrov 9 2522 Последна публикация Apr 19, 2006, 19:39
от st_dimitrov
Connlimit - помощ, къде бъркам
Настройка на програми
klambrev 3 1072 Последна публикация Dec 31, 2006, 17:25
от klambrev
Въпрос за connlimit
Хардуерни и софтуерни проблеми
hunt3r 3 1574 Последна публикация Oct 02, 2008, 12:29
от VladSun