Portál AbcLinuxu, 22. července 2025 23:13
acl siet 192.168.1.0/24
acl max maxconn 3
http_access deny siet max
Takto sa to neda?
iptables nic takové standardně neumí, protože vy potřebujete omezení přes zdrojovou i cílovou adresu. Kdybyste měl omezený počet zdrojů, tak by se dalo udělat vypsat connlimit pravidla pro každou zdrojovou adresu zvlášť.
connlimit sice má parametr --connlimit-mask, ale nějak nechápu, které stroje seskupuje.
iptables -s host -p tcp --syn --dport 80 -m connlimit --connlimit-above 10 -j REJECT
To podle mě řekne, že host může mít současně celkově 10 HTTP spojení, ale už ne per destination. Nebo se pletu?
-s host -d host
, a pro každého jednoho -s hosta tato (stejná) pravidla, lišící se jen tím -s hostem.
-d host
bych musel vypsat skoro všechny IP adresy na světě.
Řeknu to takhle: S connlimit nemám zkušenosti, proto ta poznámka, že nevím, jak funguje parametr masky.
Předpokládám, že modul connlimit počítá spojení podle filtrů vypsaných před ním. Takže -s source -m connlimit by měl omezit jen spojení ze source, ostatní by neměl ovlivnit.
Přiznám, že mě nepadlo, že by tazatel chtěl omezit počet spojení per dvojice zdroj-cíl. Předpokládal jsem, že stačí omezit počet spojení z každého zdroje.
Vyzkoušejte si, nad čím pracuje parametr masky. Jestli nad zdrojovou nebo cílovou adresou.
Obecné omezování je dost výpočetně složité, protože není paměťově únosné držet mezisoučty pro kvadratický prostor nad množinou všech adres. Zeptejte se na uživatelském mailing listu netfilteru.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.