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

Linux секция за напреднали => Хардуерни и софтуерни проблеми => Темата е започната от: st_dimitrov в Apr 19, 2006, 14:09



Титла: Connlimit
Публикувано от: st_dimitrov в Apr 19, 2006, 14:09
... компилирах ядрото 2.6.16.9, connlimit ttl  и останалите части от пач-о-матик ги компилирах като модули... ТТЛ-а работи супер, но connlimit....

# iptables -A FORWARD  -p tcp --syn --dport 80 -m connlimit --connlimit-above 50 -j REJECT

iptables: No chain/target/match by that name

# iptables -t nat -A PREROUTING -i eth0 -p tcp --syn --dport http -m connlimit --connlimit-above 5 -j REJECT --reject-with tcp-reset
iptables: No chain/target/match by that name

бъркам ли някъде ?! Можете ли да ме насочите къде може да е проблема, че нещо само с моите сили не се получава...


Титла: Connlimit
Публикувано от: Explisit в Apr 19, 2006, 15:02
И аз имам подобен пробем. Това което мога да ти предложа е да видип дали се зарежда модула ipt_limit (мисля че този беше) и можеш да видиш дали всичко е наред с connlimit с
iptables -m connlimit -h (по точно дали е сложен и коя версия) е  , а и в един друг форум ме посъветваха за iptables -t filter но не съм пробвал все още.

iptables -t filter -A OUTPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 50 -j REJECT

И ако тръгне ще сам благодарен да кажеш как :)


Титла: Connlimit
Публикувано от: VladSun в Apr 19, 2006, 15:32
в

cat /proc/net/ip_tables_matches

има ли го connlimit?


Титла: Connlimit
Публикувано от: st_dimitrov в Apr 19, 2006, 15:42
Не, няма го  :huh: Какво следва от това ?

 iptables -m connlimit
iptables v1.3.3: You must specify `--connlimit-above'
Try `iptables -h' or 'iptables --help' for more information.


в хелпа му има


connlimit v1.3.3 options:
[!] --connlimit-above n         match if the number of existing tcp connections is (not) above n
 --connlimit-mask n             group hosts using mask


......





Титла: Connlimit
Публикувано от: VladSun в Apr 19, 2006, 16:03
нямаш го като зареден модул

пробвай
modprobe ipt_connlimit

и пак провери.

Макар, че честно казано, ако си се опитал да го ползваш, то iptables е трябвало да го зареди ...
Т.е. най-вероятно нещо не си компилирал/пачвал както  трябва.





Титла: Connlimit
Публикувано от: VladSun в Apr 19, 2006, 16:07
Цитат (Explisit @ Април 19 2006,15:02)
И аз имам подобен пробем. Това което мога да ти предложа е да видип дали се зарежда модула ipt_limit (мисля че този беше) и можеш да видиш дали всичко е наред с connlimit с
iptables -m connlimit -h (по точно дали е сложен и коя версия) е  , а и в един друг форум ме посъветваха за iptables -t filter но не съм пробвал все още.

iptables -t filter -A OUTPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 50 -j REJECT

И ако тръгне ще сам благодарен да кажеш как :)

Модулът е ipt_connlimit и няма смисъл от добавянето на -t filter, защото това е таблицата по подразбиране (т.е. със или без е все тая ;))





Титла: Connlimit
Публикувано от: st_dimitrov в Apr 19, 2006, 16:18
:/ не намира модула, а го има в хелпа ?! :/ къде може да съм омотал компилацията?

ядрото е 2.6 така че не съм го пачвал с пач-о-матик. Има ли нужда?

edit: хмм...

patch-o-matic:

./runme TTL

Welcome to Patch-o-matic (1.17)!

Kernel:   2.6.16, /usr/src/linux
Iptables: 1.3.5, /usr/src/iptables
Each patch is a new feature: many have minimal impact, some do not.
Almost every one has bugs, so don't apply what you don't need!
-------------------------------------------------------
Already applied:

Testing TTL... applied

Excellent! Source trees are ready for compilation.


./runme connlimit

Welcome to Patch-o-matic (1.17)!

Kernel:   2.6.16, /usr/src/linux
Iptables: 1.3.5, /usr/src/iptables
Each patch is a new feature: many have minimal impact, some do not.
Almost every one has bugs, so don't apply what you don't need!
-------------------------------------------------------
Already applied:

Testing connlimit... not applied
The connlimit patch:
   Author: Gerd Knorr <kraxel@bytesex.org>
   Status: ItWorksForMe[tm]

This adds an iptables match which allows you to restrict the
number of parallel TCP connections to a server per client IP address
(or address block).

Examples:

# allow 2 telnet connections per client host
iptables -p tcp --syn --dport 23 -m connlimit --connlimit-above 2 -j REJECT

# you can also match the other way around:
iptables -p tcp --syn --dport 23 -m connlimit ! --connlimit-above 2 -j ACCEPT

# limit the nr of parallel http requests to 16 per class C sized
# network (24 bit netmask)
iptables -p tcp --syn --dport 80 -m connlimit --connlimit-above 16 \
        --connlimit-mask 24 -j REJECT
-----------------------------------------------------------------
Do you want to apply this patch [N/y/t/f/a/r/b/w/q/?] Y
unable to find ladd slot in src /usr/src/linux/net/ipv4/netfilter/Makefile
-----------------------------------------------------------------
Do you want to apply this patch [N/y/t/f/a/r/b/w/q/?]    

има нещо гнило в цялата работа.... от тук накъде  VladSun?





Титла: Connlimit
Публикувано от: VladSun в Apr 19, 2006, 17:26
Мдам, има нещо нередно :)
Лошото е, че аз такова съобщение за пръв път виждам :(
Пробвай да пачваш на "прясна" /usr/src/linux директория (след разархивиране) и с най-новите версии на ПОМ и iptables


Титла: Connlimit
Публикувано от: st_dimitrov в Apr 19, 2006, 19:19
гледам нова версия на ядрото излязло даже... сега ще видим.

значи разархивирам ядрото, иптейбълс и пом.

пускам пом да пачне сорса, компилирам иптейбълс-а, след него ядрото... да видим резултата ;)


Титла: Connlimit
Публикувано от: st_dimitrov в Apr 19, 2006, 19:39
... реших да пробвам нещо друго :) свалих последния снапшот на пом, същата работа ;)

'пачнах' на ръка ;)

cp patchlets/connlimit/linux/* ../linux/ -R
cp ./patchlets/connlimit/linux-2.6.11/* -R ../linux/
cat patchlets/connlimit/linux-2.6.11/net/ipv4/netfilter/
Makefile.ladd >> /usr/src/linux/net/ipv4/netfilter/Makefile

root@darkstar:/usr/src/patch-o-matic-ng-20060418# ./runme connlimit
Hey! KERNEL_DIR is not set.
Where is your kernel source directory? [/usr/src/linux]
Hey! IPTABLES_DIR is not set.
Where is your iptables source code directory? [/usr/src/iptables]
Loading patchlet definitions......................................................... done

Welcome to Patch-o-matic ($Revision: 6577 $;)!

Kernel:   2.6.16, /usr/src/linux
Iptables: 1.3.5, /usr/src/iptables
Each patch is a new feature: many have minimal impact, some do not.
Almost every one has bugs, so don't apply what you don't need!
-------------------------------------------------------
Already applied:

Testing connlimit... not applied
The connlimit patch:
   Author: Gerd Knorr <kraxel@bytesex.org>
   Status: ItWorksForMe[tm]

This adds an iptables match which allows you to restrict the
number of parallel TCP connections to a server per client IP address
(or address block).

Examples:

# allow 2 telnet connections per client host
iptables -p tcp --syn --dport 23 -m connlimit --connlimit-above 2 -j REJECT

# you can also match the other way around:
iptables -p tcp --syn --dport 23 -m connlimit ! --connlimit-above 2 -j ACCEPT

# limit the nr of parallel http requests to 16 per class C sized
# network (24 bit netmask)
iptables -p tcp --syn --dport 80 -m connlimit --connlimit-above 16 \
        --connlimit-mask 24 -j REJECT
-----------------------------------------------------------------
Do you want to apply this patch [N/y/t/f/a/r/b/w/q/?] y

Excellent! Source trees are ready for compilation.

root@darkstar:/usr/src/patch-o-matic-ng-20060418#    

така.. пуснах make menuconfig и ми излезе Connections/IP limit match support  най-долу във  Networking -> Networking options -> Network packet filtering (replaces ipchains) -> IP: Netfilter Configuration


:) Компилирах модулите и сега не плюе грешка когато през иптаблес задам лимита :) Да видим действа ли ;) ВладСън благодаря ти, че се включи.