lu.se

Datavetenskap

Lunds Tekniska Högskola

Denna sida på svenska This page in English

breakins.sh

Image of breakins running

Detta är ett enkelt script som fungerar som komplement till open_ports.sh. Syftet är att visa hur många intrångsförsök som sker dagligen.

Det visar dessutom alla riktiga ssh-inloggningar samt su som sker tillsammans med tidpunkt och detaljer om vem, varifrån och hur, resp. till vem!

Scriptet underhåller dessutom en fil, History.txt, som innehåller de värsta förbrytarna, dag för dag. Tillsammans med datum sparas antalet inbrottsförsök samt det land och den stad som IP-adressen lokaliseras till.

Exempel:

2010-07-17:   4:91.122.48.43:Russian Federation:Saint Petersburg
2010-07-18:   1:58.223.238.7:China:Beijing
2010-07-19:2251:203.156.246.233:China:Shanghai
2010-07-20:   4:58.247.222.163:China:Shanghai

 

Installation

  1. Hämta scriptet från http://fileadmin.cs.lth.se/cs/Personal/Peter_Moller/scripts/breakins_install.sh
  2. Starta Terminal.app
  3. Bli root: om du är en vanlig användare skriver du sudo adminanvändarnamn och sedan sudo -i; om du är admin-användare skriver du bara sudo -i
  4. Sätt accessrättigheter på scriptet:
    chmod 755 breakins_install.sh (du måste leta upp var det finns)
  5. Kör scriptet:
    ./breakins_install.sh
  6. Installationen går normalt snabbt. Om du inte har GeekTool installerat så hämtas det och dess skivavbild öppnas. För att installera GeekTool, dubbelklicka på dess .PrefPane
  7. I GeekTool: klicka på ikonen som det står ”Shell” under och drag ut på en del tomt skrivbord (måste vara tomt annars vill den inte). Drag den så stor som du vill ha den och där du vill ha den.
  8. Det dyker upp ett ”Properties”-fönster. Det du behöver fylla i här är:
    • Command: breakins.sh
    • Refresh every: 300 s
    • Byt typsnitt till ett du tycker om (jag använder Optima)
  9. Nu kan du stänga GeekTool

Notera att GeekTool inte flyttar runt sitt innehåll om du ändrar antalet skärmar etc. (t.ex. med en bärbar dator som har en extern skärm). Däremot blir dess fönster åter synligt när skärmgeometrien återställs!

Notera även att scriptet automatiskt kommer att starta efter en omstart!

 

Manuell installation

Lägg breakins.sh i /bin och se.lth.cs.breakins.plist i /Library/LaunchDaemons.

Starta sedan (som root) den senare med launchctl:
launchctl load /Library/LaunchDaemons/se.lth.cs.breakins.plist
launchctl start se.lth.cs.breakins
(se till att filen ägs av root:wheel och har accessrättighet 644)

 

Uppdatering

Man uppdaterar scriptet (manuellt) genom att som root i ett terminalfönster skriva:
breakins.sh -u

Den kommer då att hämta ner den senaste versionen av scriptet och installera det (om den är annorlunda än den du har). Har du redan den senaste versionen kommer den berätta det!

Alternativt kan du själv göra detta som root:
curl fileadmin.cs.lth.se/cs/Personal/Peter_Moller/scripts/breakins.sh > /bin/breakins.sh
chmod 755 /bin/breakins.sh

 

Beskrivning av komponenterna

De ingående komponenterna är dessa:

/bin:
breakins.sh Scriptet som körs av både bakgrunds-datasamlaren och av GeekTool (och användaren)
/Library/LaunchDaemons:
se.lth.cs.breakins.plist Styrscript till launchd; gör så att breakins.sh-scriptet körs var 300:e sekund och samlar data
/Library/cs.lth.se:
ip_cache.txt Växande lista över IP-nummer och dessas geografiska lokation (för att snabba upp körningen av scriptet)
Samanvänds av många script!!
/Library/cs.lth.se/Breakins:
History.txt ”Dagbok” med de värsta försyndarna
NumberOfAttempts.txt Temporär fil med antalet inbrottsförsök under dagen (fram tills nu)
NumberOfSites.txt Temporär fil med antalet IP-adresser som har försökt ta sig in under dagen (fram tills nu)
SandboxWarnings Temporär fil med antalet sandbox-varningar under dagen (fram tills nu)
Su.txt Temporär fil med antalet su:s under dagen (fram tills nu)
Successful_ssh.txt Temporär fil med de lyckade ssh-inloggningarna under dagen (fram tills nu)
WorstOffenders_2010-07-14.txt En fil per dag med de fem värsta IP-adresserna (adress sparas tillsammans med antalet försök)