[iptables] -> IP's blokkeren bij x connecties per minuut

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • sus
  • Registratie: September 2000
  • Laatst online: 04-10 21:27

sus

is druk :+

Topicstarter
Ik loop tegen een probleem aan waar ik niet helemaal uitkom, en ik hoop dat jullie me hier een eindje de goede richting in kunnen duwen.

Mijn probleem zit er in dat ik al een paar weken een brute force aanval heb lopen via mijn webmail. Ik draai Kerio Connect op een debian 6.0.3 omgeving. Vanaf bepaalde IP-adressen wordt steeds 2 uur lang elke 5 seconden geprobeerd in te loggen op mijn webmail. Gelukkig nog altijd niet gelukt, enerzijds omdat de gebruikersnamen (nog) niet gevonden zijn, anderzijds vanwege de sterke wachtwoorden die gebruikt worden.

In Kerio heb ik dit voor een deel al weten af te vangen door het maximaal aantal open connecties naar 20 te zetten, daarmee kunnen alle gebruikers tegelijk actief de webmail gebruiken.

Verder ben ik met iptables aan de slag gegaan en heb ik een 2-tal regels lopen:
code:
1
2
iptables -I INPUT -p tcp --dport 443 -i eth0 -m state --state NEW -m recent --set
iptables -I INPUT -p tcp --dport 443 -i eth0 -m state --state NEW -m recent --update --seconds 60 --hitcount 5 -j DROP


Deze code heb ik aangepast naar een voorbeeld van brute force beveiliging op poort 22. Dit werkt, hiermee heb ik geen last meer van een dichte verbinding en is mijn webmail altijd bereikbaar. Alleen, op de een of andere manier, als ik aan het mailen ben, kan ik maximaal 5 mailtjes lezen, daarna moet ik een minuut wachten. Niet handig dus.

Een mooie oplossing zou natuurlijk zijn om de betreffende IP's te gaan blokkeren. Mijn kerio maakt keurig logfiles aan, waar de volgende regel in te vinden is:

code:
1
2
3
logfile: warning.log

[28/Sep/2011 21:35:02] Connection attempt to service HTTPS from IP address xxx.xxx.xxx.xxx rejected: too many connections. Connection limit is 20.


Maar nu...

Hoe kan ik nu verder? Ik zou dus graag dat IP-adres uit die regel willen hebben, en dat naar iptables willen doorsluizen, zodat ik daar met drop-commando's aan de slag kan. Alleen daar kom ik niet uit. Zit er nu al een weekje of wat op te puzzelen, heb er helaas niet elke dag de tijd voor. De verbinding is nu dicht, maar ik zou toch graag weer gewoon willen mailen.

Iemand die mij kan helpen?

Andere vraag is dan meteen, stel ik sluit mezelf uit op deze manier, hoe kan ik mijn eigen IP (intern ip dus) weer vrij geven?

Acties:
  • 0 Henk 'm!

  • deadinspace
  • Registratie: Juni 2001
  • Laatst online: 03-10 18:29

deadinspace

The what goes where now?

sus schreef op maandag 14 november 2011 @ 21:59:
Deze code heb ik aangepast naar een voorbeeld van brute force beveiliging op poort 22. Dit werkt, hiermee heb ik geen last meer van een dichte verbinding en is mijn webmail altijd bereikbaar. Alleen, op de een of andere manier, als ik aan het mailen ben, kan ik maximaal 5 mailtjes lezen, daarna moet ik een minuut wachten. Niet handig dus.
De kans is heel erg groot dat voor elk mailtje (of eigenlijk, elke pagina-request) een nieuwe verbinding wordt gemaakt, welke allemaal door je firewall rule geteld worden. Dat klinkt in ieder geval aardig HTTPerig :P

Je kunt kijken of je met HTTP keepalive nog wat kunt bereiken, maar dat is wel afhankelijk van webserver, mailapplicatie en webclient. Een beetje in de categorie "mooi meegenomen als het werkt, maar weinig structureel".
Een mooie oplossing zou natuurlijk zijn om de betreffende IP's te gaan blokkeren. Mijn kerio maakt keurig logfiles aan, waar de volgende regel in te vinden is:

[...]

Hoe kan ik nu verder? Ik zou dus graag dat IP-adres uit die regel willen hebben, en dat naar iptables willen doorsluizen, zodat ik daar met drop-commando's aan de slag kan.
Ik zou zoeken naar bestaande software die dat kan. Kijk eens naar fail2ban. Ik heb het zelf nooit gebruikt, maar volgensmij is dat precies wat je zoekt, en ik gok dat het wel te configureren is voor Kerios. Het zit ook nog eens in Debian, dus installeren kan ook niet moeilijk zijn :P
Andere vraag is dan meteen, stel ik sluit mezelf uit op deze manier, hoe kan ik mijn eigen IP (intern ip dus) weer vrij geven?
Je kunt een firewall rule toevoegen voor de drop-rules welke jouw IP altijd toelaat. Ik vermoed trouwens dat je met fail2ban ook wel IPs kunt uitsluiten van de banlist.

Acties:
  • 0 Henk 'm!

  • sus
  • Registratie: September 2000
  • Laatst online: 04-10 21:27

sus

is druk :+

Topicstarter
deadinspace schreef op maandag 14 november 2011 @ 22:22:
De kans is heel erg groot dat voor elk mailtje (of eigenlijk, elke pagina-request) een nieuwe verbinding wordt gemaakt, welke allemaal door je firewall rule geteld worden. Dat klinkt in ieder geval aardig HTTPerig :P

Je kunt kijken of je met HTTP keepalive nog wat kunt bereiken, maar dat is wel afhankelijk van webserver, mailapplicatie en webclient. Een beetje in de categorie "mooi meegenomen als het werkt, maar weinig structureel".
Het is helaas een ingebouwde omgeving, kan er helemaal niets in configureren verder.
Ik zou zoeken naar bestaande software die dat kan. Kijk eens naar fail2ban. Ik heb het zelf nooit gebruikt, maar volgensmij is dat precies wat je zoekt, en ik gok dat het wel te configureren is voor Kerios. Het zit ook nog eens in Debian, dus installeren kan ook niet moeilijk zijn :P

[...]

Je kunt een firewall rule toevoegen voor de drop-rules welke jouw IP altijd toelaat. Ik vermoed trouwens dat je met fail2ban ook wel IPs kunt uitsluiten van de banlist.
Ik ga eens kijken, tnx!

[edit]
http://aplawrence.com/Kerio/fail2ban.html gevonden, daarmee heb ik in ieder geval alle andere services alvast dicht zitten. Eens kijken of ik dat ook nog eens aangepast krijg naar de https-versie, maar daar kijk ik morgen wel weer naar :)

[ Voor 9% gewijzigd door sus op 14-11-2011 23:24 ]


Acties:
  • 0 Henk 'm!

  • sus
  • Registratie: September 2000
  • Laatst online: 04-10 21:27

sus

is druk :+

Topicstarter
Zo, die regex-en maken is peanuts, de logs worden nu in ieder geval uitgespit en de IP's worden er uitgehaald. Nu nog afwachten of ze dan ook geblokkeerd gaan worden :)

[edit 2]
fixed... restart vergeten van fail2ban.... |:(

[ Voor 151% gewijzigd door sus op 15-11-2011 23:27 ]