Hoe bak ik dit simpele scriptje???

Pagina: 1
Acties:

  • Whizzer
  • Registratie: November 2000
  • Laatst online: 16-08 21:58
Omdat het ook hier de spuigaten uitloopt met dat rare Nimda gedoe, wil ik ieder uur alle ip-nummers die mij hebben aangevallen blocken in de iptables vuurmuur...

Als basis ben ik uitgegaan van een regel van Wizard_of_OS, alleen heb ik 'm even snel een beetje omgetoverd voor iptables...

Dit is nu het script:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
#!/bin/sh

# Delete eerst de nummers die staan in de acces_log
for i in `cat /var/log/httpd/access_log | grep scripts | cut -d" " -f1 | sort -u`;
      do iptables -D INPUT -s $i -d xxx.xxx.xxx.xxx -j DROP;
      done

# Voeg nu de nummers in dezelfde log weer toe aan de firewall, zo worden de nieuwe
# nummers ook in de vuurmuur toegevoegd.
for i in `cat /var/log/httpd/access_log | grep scripts | cut -d" " -f1 | sort -u`;
      do iptables -A INPUT -s $i -d xxx.xxx.xxx.xxx -j DROP;
      iptables -D INPUT -s 1.2.3.4 -d xxx.xxx.xxx.xxx -j DROP;
      done

Het staat in de cron.hourly...

Maar absoluut dat dit script verbeterd kan worden... Nu moet ik iedere keer eerst de oude toevoegingen wegpleuren voordat ik de nieuwe erin kan zetten, anders staan ze er dubbel in, wat niet ten goede komt van het overzicht...

En daar wil ik dus vanaf... Wie heeft daar een oplossing voor???

O, dat 1.2.3.4 is normaal een ander nummer, namelijk die van de gateway van mijn werk... Ik loop zelf nogal te rommelen en te klooien vanaf het werk op mijn bak thuis (opdracht van de baas :z) en het zou niet fijn zijn als ik na een uur niet meer bij mijn doosje kan... xxx.xxx.xxx.xxx is mijn ip-je...

Ik ben geweldig.. en bescheiden! En dat siert me...


  • jeroen|IA
  • Registratie: Juni 1999
  • Laatst online: 26-05-2025
Wat maakt het nou uit dat je eerst de oude IPs moet deleten voordat je ze weer toevoegt? Dat is ook de manier die ik zou kiezen. Is makkelijker dan allerlei kunstgrepen om te onthouden welke je al gehad had. Het is tenslotte maar een klein scriptje dat een tijdelijk doel dient.

Ik zou alleen nog:
code:
1
`cat /var/log/httpd/access_log | grep scripts | cut -d" " -f1 | sort -u`

veranderen in:
code:
1
$(grep scripts /var/log/httpd/access_log | cut -d" " -f1 | sort -u)

maar dat is deels een kwestie van smaak. Aan de andere kant: die lus wordt wel heeeel vaak aangeroepen, dus 1 proces ertussenuit halen kan veel snelheid schelen :)

  • serkoon
  • Registratie: April 2000
  • Niet online

serkoon

mekker.

Je kunt imho het beste gewoon de default.ida (tegen CR) en root.exe files gebruiken om scriptje op te starten ipv je logs doorzoeken. Op die manier hou je direct verdere 'aanvallen' tegen, zodat ook je logs niet vollopen. (root.exe lijkt het eerst geprobeerd te worden door nimda)

Oftewel: .exe en .ida als cgi extensies toestaan en een .htaccess in /scripts en / die cgi-executie toestaan. Gelukkig zijn d'r al wat topics over geweest hoe dat moet, scheelt weer uitleg :)

  • Whizzer
  • Registratie: November 2000
  • Laatst online: 16-08 21:58
Wat ik alleen wel minder vind, is dat ik nu ieder uur een leuk mailtje krijg met vele malen de regel:
code:
1
iptables: Bad rule (does a matching rule exist in that chain?)

Dat komt natuurlijk omdat hij eerst de regels verwijderd, maar dus ook de regel met ip-nummers die er nog niet in staan.. Logisch dus, maar niet leuk... Ik had er al even > /dev/null geprobeerd erachter te zetten, maar of dit werkte niet, of ik deed iets verkeerd (zeer waarschijnlijk..)...

Hoe ga ik dit regelen? M'n mail vanaf de crontabjes worden nu wel enorm lang, nu is de ruimte er wel, maar de melding is bekend, dus hij mag achterwege blijven...

Laatste regel ervan is:
code:
1
run-parts: /etc/cron.hourly/worm-rejects-firewall exited with return code 1

Is dit te verhelpen door het script te eindigen met 'exit 0'?

Ik heb trouwens "iptables -A" veranderd in "iptables -I", zodat de regel bovenaan komt te staan i.p.v. onderaan, des te eerder krijgt ie de digitale middelvinger... Leek me wel verstandig??

Serkoon: Ik ben daarmee ook een beetje aan het hobby'en, maar het wil nog steeds niet helemaal lukken, linux kennis is nog steeds vrij beperkt, daarom dat ik voorlopig hier maar even bij blijf steken....

Ik ben geweldig.. en bescheiden! En dat siert me...


  • jeroen|IA
  • Registratie: Juni 1999
  • Laatst online: 26-05-2025
Het makkelijkst is natuurlijk om gewoon even alle rules te wipen, default policies op DENY zetten en je firewall van begin af met regels te vullen waaraan je dan die ip blocks toevoegt. Zelfs bij onze toch redelijk uitgebreide firewall duurt zo'n "reload" niet meer dan 2 seconden.

Verwijderd

Als je het per se wilt doen met een scriptje, zou ik het als volgt doen:
elk uur je http-access log doorzoeken in entries van het afgelopen uur naar de probes
de ip-adressen die je wil blocken schrijven naar een bestand ip.new
het bestand ip.new vergelijken met het bestand ip.blocked en elk ip adres dat niet in ip.blocked voorkomt toevoegen aan je firewall; je hoeft dan niet eerst je firewall op te schonen
de ip-adressen in ip.new toevoegen aan ip.blocked
ip.new leeggooien
ip.blocked evt. sorteren op ip-adres volgorde

Verwijderd

als ik 't volgende doe krijg ik een lijst:
code:
1
grep cmd.exe | /var/log/httpd/access_log | cut -d" " -f1 | sort-u

als je die lijst gebruikt met b.v. host [nslookup voor bind9] of een firewall tool dan werkt 't niet.
Hoe kan je het per regel laten doen?

Verwijderd

ik heb een script gebakken.
1.Het kijkt wie cmd.exe heeft geprobeert te benaderen.
2.Het zoekt de bijbehorende naam op.
3.Het tovert die gegevens dan op je scherm.

for i in `grep cmd.exe /var/log/httpd/access_log | cut -d" " -f1 | sort -u`; do host $i | grep pointer | cut -d" " -f5 | sort -d; done | sort

de ip's die geen naam hebben laat 'ie niet zien.
dit script is om te bouwen naar een script wat b.v. je firewall aanstuurt.

  • odysseus
  • Registratie: Augustus 2000
  • Laatst online: 00:35

odysseus

Debian GNU/Linux Sid

Probeer eens '2> /dev/null' in plaats van '> /dev/null'. FD 2 is de error-output, en het lijkt me dat dit onder errors valt. '2>&1' doet ze direct alle twee.

Leven is het meervoud van lef | In order to make an apple pie from scratch, you must first create the universe.


  • StarLite
  • Registratie: Januari 2000
  • Laatst online: 17-08 23:21

StarLite

'ON ERROR RESUME NEXT

I think I've got the hang of it now... :w :q :wq :wq! ^d X exit X Q :quitbye CtrlAltDel ~~q :~q logout save/quit :!QUIT ^[zz ^[ZZ ZZZZ ^H ^@ ^L ^[c ^# ^E ^X ^I ^T ? help helpquit ^D ^d ^C ^c helpexit ?Quit ?q ^Kx /QY sync halt
ROFLOLPMP!!!
Wat herken ik mezelf hier in... :o
Ach ja, je moet toch als newbie beginnen :Y)

tyrips, tywreps, tiewreps, tiereps, tie raps, ripties, taiwraps, kabelbindbandjes » Tie Wraps
\o/


Verwijderd

Hehe. Is niet van mezelf trouwens. Hier kun je nog meer vinden.
Pagina: 1