breakins.sh
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 riktigassh
-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
- Hämta scriptet från http://fileadmin.cs.lth.se/cs/Personal/Peter_Moller/scripts/breakins_install.sh
- Starta Terminal.app
- Bli
root
: om du är en vanlig användare skriver dusudo adminanvändarnamn
och sedansudo -i
; om du är admin-användare skriver du barasudo -i
- Sätt accessrättigheter på scriptet:
chmod 755 breakins_install.sh
(du måste leta upp var det finns) - Kör scriptet:
./breakins_install.sh
- 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
- 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.
- 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)
- Command:
- 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
(se till att filen ägs av
launchctl start se.lth.cs.breakinsroot: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) |