Artikelkategori: Säkerhet
Skriven av Stx 2003-10-08 17:37
url: http://www.slackwarelinux.se

Säkra ditt GNU/Linux Slackware system, lokalt.

Den här artikeln förklarar hur du säkrar (dock bara en väldigt liten del...) ditt Linux system lokalt, den garanterar dock inte att du är helt säker ifrån onda crackers och skriptmarodörer (scriptkiddies), men det är en bra början. :-). Är det något som är oklart i artikeln eller liknande så skicka iväg ett email till stx@ixor.org så skall jag besvara det snarast möjligt. Happy reading!

Konton

Användarnamn och lösenord på din maskin är förstås väldigt viktiga, så kolla regelbundet så att de är säkra. Osäkra konton är konton utan lösenord, konton med samma lösenord som användarnamnet och andra svaga lösenord, t.ex "qwerty" . Du kan kolla efter konton med tomma lösenord genom att köra:

su användarnamn och bara trycka Enter när systemet frågar efter ett lösenord, notera att detta INTE skall göras som root då root-användaren kan "su:a" till alla konton på maskinen utan att bli tillfrågad efter lösenord!

Deaktivera konton

Om du vill hindra ett konto ifrån att användas så kan du editera /etc/shadow, t.ex:
(uttrag ur /etc/shadow):
stx:$1$YKJ0kZN8$sARypo8fChjriuR95SOJb1BptL.:12264:0:99999:7:::

Ändras till:
stx:*$1$YKJ0kZN8$sARypo8fChjriuR95SOJb1BptL.:12264:0:99999:7:::

Nu kommer inte användaren stx att kunna logga in med sitt konto
För att tillåta att användaren stx ska kunna logga in med sitt konto igen så är det bara att ta bort asteriken ifrån /etc/shadow - Smidigt va?

Säkra terminaler

Eftersom alla UNIX system har ett root konto så är detta kontot självklart speciellt utsatt för intrångsförsök. För att göra det snäppet svårare för en utomstående att försöka få tillgång till root kontot så kan du "säkra terminalerna" , om en terminal betraktas som "säker" så kommer inte root användaren att kunna logga in ifrån login: prompten (Notera: Detta hindrar ingen användare ifrån att använda su kommandot (såvida inte su är tillåtet att användas endast av en speciell grupp, oftast wheel som du oftast ser i FreeBSD, detta är dock en mycket smidig sak att göra!)

För att säkra dina terminaler genomsök filen /etc/securetty, min innehåller följande:

# These are the ttys on the physical console:
console
tty1
tty2
tty3
tty4
tty5
tty6

# These are some remote ttys, and uncommenting them might be less than fully secure:
#ttyS0
#ttyS1
#ttyS2
#ttyS3
#ttyp0
#ttyp1
#ttyp2
...etcetera...

Som du ser (om du kan läsa Engelska. :-)) så är "console,tty1,tty2,tty3"....) etc tillåtna att logga in med root kontot när du har fysisk tillgång till datorn (du sitter vid den och loggar in, alltså, inte genom att ansluta till den genom telnet/ssh). De resterande: "#ttyS0,#ttyS1,#ttyS2"....) etc är *stängda* (Eftersom de har ett #-tecken framför sig, vilket innebär, att om du tar bort det tecknet så öppnas den tty'n, och root är tillåten att logga in genom t.ex. telnet ifrån en annan arbetsstation). Nåväl, detta utklipp ifrån min /etc/securetty är ganska standard i nyare Slackware releaser och betraktas som relativt säkert .

Övrigt

En checklista är en lista med filer och kataloger som du kontinuerligt kikar i efter förändringar i ditt system. T.ex /bin och /usr/bin katalogerna är nästan aldrig modifierade, om du upptäcker att något har ändrats i dessa kataloger (t.ex) så är det möjligt att du har/haft en inkräktare i ditt system! Gör en sådan lista och använd kommandot diff och/eller cmp för att kolla efter förändringar som du själv inte gjort.
För att undvika att filer och kataloger modifieras så är det väldigt viktigt att du kontrollerar så att alla filer och kataloger har enbart de rättigheter de behöver! En fil eller katalog ska bara ha de rättigheter som det behöver, inga andra, t.ex. Read/world-writeable av en speciell grupp i systemet eller någon annan obehörig användare. Nedan följer ett enkelt skript för att skapa en checklista (modifiera för egna behov)

#!/bin/sh
# Gör en checklista

DIRS="/bin /usr/bin /etc"
FILER="/.rhosts /etc/passwd /etc/shadow"

/usr/bin/find $DIRS -type f -exec /bin/ls -ligd {} ;
/bin/ls -ligd $FILER

Vi antar att du döpte filen till cklist och gjorde den exekverbar och tog del av skriptets lysande funktion! :-), här följer ett litet experiment för att visa funktionaliteten hos skriptet:

# ./cklist > checkfile
# echo "This could have been an exploit" > /bin/exploit
# ./cklist > checkfile.2003.10.08
# diff checkfile checkfile.2001.10.08
73a74
> 492268 -rw-r--r-- 1 root root 32 Oct 8 14:50 /bin/exploit

Aha! en ny fil har tillkommit i /bin med namnet exploit, Hmm, misstänksamt!

Skriptet reagerar även på manipulation av filer.

Jahapp, då har vi nått slutet på denna artikeln, den täcker nog inte ens 0.1% av säkerheten i UNIX, men det är ju alltid nåt, vem vet, jag kanske skriver en mer utförlig som även inkluderar nätverkssäkerhet någon gång i framtiden. :-)

*Poof*
×