Hallo,
Ik draai een webserver met daarop een niet al te lichte PHP applicatie. Nu had ik onlangs de situatie waar 1 IP adres +- 200 requests per minuut deed op mijn server. Omdat de load nogal de hoogte in ging werd ik hiervoor gewaarschuwd en kon ik het schuldige IP adres vinden. Dit heb ik dan eenvoudig manueel geblocked dmv. iptables.
Nu vroeg ik mij af over een manier was om dit automatisch te gaan doen?
Voor apache heb ik al mod_evasive gevonden, maar dit werkt precies niet echt goed ...
Maar liefst zou ik een oplossing vinden die op netwerklaag / iptables laag werkt.
Eenvoudig:
Merk op dat het er niet zozeer toe doet hoeveel concurrente connecties er zijn op dat IP.
Als het IP 100 niet-concurrente connecties maakt in een korte tijdsspanne dan wil ik dit ook blocken.
(Zijn er legitieme toepassingen waarbij er erg veel connecties in korte tijd gemaakt worden?)
Ik heb een flauw vermoeden dat er daar al diverse oplossingen voor bestaan, maar ik vraag mij af of er een soort standaard oplossing is, of een pakket wat jullie verkiezen?
Als ik google op iets dergelijks dan kom ik terecht bij firewall's zoals AFS en CFS, maar ik weet niet of dit precies kan wat ik wil, en of dit geen overkill is voor wat ik wil doen.
Ik heb ook de volgende iptables regels ontdekt die ongeveer doen wat ik wil:
Dit zou de connectie moeten droppen als een IP meer dan 20 connecties per min naar mijn machine maakt.
Ik snap wel niet 100% hoe dit juist werkt en of dit wel precies doet wat ik wil. Iptables is ook niet zo gebruiksvriendelijk, misschien is er wel een betere tool die dit kan?
Ik zou graag weten of er mensen zijn die al zoiets dergelijks doen, en welke tool jullie daar voor gebruiken.
Ik draai een webserver met daarop een niet al te lichte PHP applicatie. Nu had ik onlangs de situatie waar 1 IP adres +- 200 requests per minuut deed op mijn server. Omdat de load nogal de hoogte in ging werd ik hiervoor gewaarschuwd en kon ik het schuldige IP adres vinden. Dit heb ik dan eenvoudig manueel geblocked dmv. iptables.
Nu vroeg ik mij af over een manier was om dit automatisch te gaan doen?
Voor apache heb ik al mod_evasive gevonden, maar dit werkt precies niet echt goed ...
Maar liefst zou ik een oplossing vinden die op netwerklaag / iptables laag werkt.
Eenvoudig:
code:
1
2
| Indien IP meer dan MAX connecties per INTERVAL -> Block IP voor TIJDSSPANNE |
Merk op dat het er niet zozeer toe doet hoeveel concurrente connecties er zijn op dat IP.
Als het IP 100 niet-concurrente connecties maakt in een korte tijdsspanne dan wil ik dit ook blocken.
(Zijn er legitieme toepassingen waarbij er erg veel connecties in korte tijd gemaakt worden?)
Ik heb een flauw vermoeden dat er daar al diverse oplossingen voor bestaan, maar ik vraag mij af of er een soort standaard oplossing is, of een pakket wat jullie verkiezen?
Als ik google op iets dergelijks dan kom ik terecht bij firewall's zoals AFS en CFS, maar ik weet niet of dit precies kan wat ik wil, en of dit geen overkill is voor wat ik wil doen.
Ik heb ook de volgende iptables regels ontdekt die ongeveer doen wat ik wil:
code:
1
2
| iptables -I INPUT -p tcp -i eth0 -m state --state NEW -m recent --set iptables -I INPUT -p tcp -i eth0 -m state --state NEW -m recent --update --seconds 60 --hitcount 20 -j DROP |
Dit zou de connectie moeten droppen als een IP meer dan 20 connecties per min naar mijn machine maakt.
Ik snap wel niet 100% hoe dit juist werkt en of dit wel precies doet wat ik wil. Iptables is ook niet zo gebruiksvriendelijk, misschien is er wel een betere tool die dit kan?
Ik zou graag weten of er mensen zijn die al zoiets dergelijks doen, en welke tool jullie daar voor gebruiken.