[ pisac @ 22.12.2010. 03:14 ] @
Za ograničavanje broja pogađanja lozinke na SIP serverima koristim


iptables -A INPUT -i $EXT -p udp --dport 5060 -m limit --limit 8/second --limit-burst 20 -j ACCEPT
iptables -A INPUT -i $EXT -p udp --dport 5060 -j DROP


Uz restriktivan fail2ban to sve lepo radi, i saseče svakog wannabe hakera u korenu

Međutim, ovo rešenje (nisam testirao ali verujem da je tako) ne pravi razliku između različitih IP adresa sa kojih stižu zahtevi, tako da će neki wannabe haker sa svojih 200 pokušaja u sekundi da mi u potpunosti spreči i rad legalnih klijenata tokom napada. Doduše, napad neće trajati više od nekoliko sekundi jer će ga fail2ban ubrzo saseći i staviti na ignore listu, ali ipak bih želeo da nađem rešenje koje neće DROPovati legalne klijente koji nisu prekoračili --limit sa njihove IP adrese.

Kako (ako ikako) gornju komandu prilagoditi tako da broji limit odvojeno za svaku zasebnu IP adresu koja pristupa u nekom trenutku?
[ Tyler Durden @ 22.12.2010. 08:04 ] @
Ovo već pravi razliku između različitih adresa.
[ pisac @ 22.12.2010. 10:42 ] @
Siguran si? Na osnovu čega zaključuješ? Misliš da "-m limit" sam po sebi tako funkcioniše, i da se uvek odnosi samo na jednu određenu IP adresu?

Ja sam mislio da se to nadovezuje na ono ostalo što piše u liniji, a tamo je samo pomenut udp port 5060, tako da u stvari limit limitira ukupan broj konekcija na taj udp port u sekundi nevezano za to sa koje adrese dolaze te konekcije. To bi bilo sasvim logično čitajući komandu.

Ako je tako kao što ti kažeš, onda je to super, ne moram više ništa da smišljam.
[ Tyler Durden @ 22.12.2010. 10:57 ] @
Hm, izgleda da ipak nisam u pravu...
Ako treba po adresama eksplicitno, onda mora i da se taj IP navede. To je malo bezveze.
Ne znam, nigdje ne piše jasno da li se ovi limiti odnose prema pojedinačnom korisniku/IP adresi ili prema čitavom servisu/portu.

I onda to što ti hoćeš ne može ni da se uradi, osim možda kroz neke zapetljane skripte koje bi izvlačile adrese iz iptables logova pa onda to propuštale i štatiznam, al to je veliko petljanje i mislim da ne bi bilo efikasno svejedno.
[ pisac @ 22.12.2010. 11:15 ] @
Taman si me potencijalno obradovao ali sad sam se razočarao jer sam izgleda bio u pravu
[ Sleepless_mind @ 22.12.2010. 14:20 ] @
Mozhda neshto ovako pomogne:


Code:
iptables -I INPUT -p udp --dport 5060 -i $EXT -m state --state NEW -m recent \
--set

iptables -I INPUT -p udp --dport 5060 -i $EXT -m state --state NEW -m recent \
--update --seconds 60 --hitcount 5 -j DROP


fw dopushta 4 pokushaja u minutu, sve ostalo ce biti dropovano.

Trebalo bi prilagoditi --update --seconds i --hitcount da odgovara potrebama.


[ pisac @ 23.12.2010. 14:11 ] @
Znači umesto -m limit, da koristim -m recent...

Jel -m state u stvari prati /proc/net/ip_conntrack listu? I jel -m recent beleži to u neku svoju listu, ili ... U stvari, zna li neko iz prve ruke neki dobar tutorijal za ove detalje o kojima pričamo (limit, recent, state... da ne guglam u prazno ako neko već zna), pa da sažvaćem to sam?
[ igor.vitorac @ 08.02.2011. 09:24 ] @
Slucajno naleteh na Fail2ban:
http://www.fail2ban.org

Mozda moze da ti odraditi posao.

P.S. Ako potrazis na google-u "fail2ban asterisk", videces prvi link:
http://www.voip-info.org/wiki/...8with+iptables%29+And+Asterisk