Scenarioet er sannsynligvis ikke nytt for deg, om du er kommet så langt som til å lese denne artikkelen. Du har nettopp installert din favoritt-distribusjon av Linux og sitter der med den helt splitter nye kernelen, nye ikoner, nye programmer og lurer veldig; Hva nå?
Det første man bør tenke på etter å ha installert Linux er oppdateringer. På distribusjonens hjemmeside vil du etter all sannsynlighet finne en liste med oppdateringer som er kommet siden den versjonen du nå har installert. Disse bør du lese gjennom og se om er relevante oppdateringer for deg. Oppdateringer som omhandler de delene av Linux som har med sikkerhet og nettverk å gjøre er de viktigste dersom maskinen skal være i kontakt med Internett.
Introduksjon
Det finnes ingen universelle svar på hvordan man best mulig utnytter en Linux-installasjon. Dersom du føler at du bruker Linux på en måte som gir deg god utnyttelse av datamaskinen samtidig som du lærer deg nye ting og utvikler deg som databruker har du oppnått mer enn de fleste. Det finnes likevel noen gode triks for hvordan man kan unngå å gå i feller som andre har gått i før deg. Et enkelt tips man kan begynne med er å unngå å kjøre ting som superbrukeren root. Det første du bør gjøre etter installasjonen er derfor å lage deg en egen bruker på systemet. Det finnes flere måter for å gjøre dette, men den enkleste er å benytte kommandolinjen. Kommandoen useradd er kommet til fra Unix-liknende operativsystemer, og kan benyttes for eksempel på denne måten:
useradd -g users -d /home/bruker -s /bin/bash bruker
Dette vil legge til brukeren bruker med hjemmekatalogen /home/bruker som medlem av gruppen users. Du må selv sørge for å gi brukeren et passord i ettertid, eller sette dette direkte på kommandolinjen ved å legg til parameteren -p for passord, eller sette dette i etterkant med kommandoen passwd bruker. Det enkleste er likevel å benytte skriptet adduser som nå medfølger de fleste Linux-distribusjoner. Dette kan du enklest bruke ved å skrive adduser på kommandolinjen som root. De grafiske grensesnittene KDE og Gnome har egne menyvalg for tillegging av brukere under menyene for systemadministrasjon.
Oppdateringer av applikasjoner som lytter mot Internett
Datamaskiner med kontakt mot Internett er ofte utsatt for små, nesten umerkelige forsøk på oppkobling mot tjenester de har kjørende. Disse oppkoblingene betegnes gjerne som portscan og er en måte ondsinnede mennesker leter gjennom store mengder maskiner på internett på jakt etter maskiner som ikke er oppdatert og kan angripes med den hensikt å benytte dem til videre angrep på andre maskiner. Det er derfor viktig å oppdatere Linux med en gang etter installasjonen. Se spesielt etter oppdateringer til programmer som OpenSSH, Mozilla, OpenSSL, cups, Samba, og lpr. Dette er langt fra noen komplett liste men gir en viss pekepinn på hvilken type programmer som er viktige å holde oppdatert.
Stenging av tjenester som lytter mot Internett og lokalnett
Dersom maskinen står i et lokalnett kan det samtidig være lurt å slå av tjenester man ikke skal benytte. I katalogen /etc finner man en fil som heter inetd.conf i de fleste distribusjoner. Noen distribusjoner kaller sin inetd-config for xinetd.conf og er da en noe mer avansert utgave av inetd.conf med flere muligheter for konfigurasjon for hver tjeneste. Vi vil her se nærmere på filen inetd.conf , da dette er den mest brukte formen for konfigurasjonsfil for denne typen tjenester.
For å kunne utføre de steg vi her diskuterer må du være superbrukeren root. I filen /etc/inetd.conf vil du finne en rekke linjer med og uten hash (#-tegnet) foran. Linjer med #-tegnet foran er kommentert ut og er ikke aktive tjenester. Linjer uten #-tegnet er aktive tjenester som lytter mot Internett og det lokale nettverket. For å stoppe en tjeneste fra å kjøre må man derfor sette inn en # fremst til venstre på linjen og så lagre filen. Deretter kan man benytte to forskjellige kommandoer for å finne fram til PID (Program IDentificator) for inet daemonen inetd. Velg en av disse to, eller eksprimenter med dem for å se hvordan disse fungerer:
cat /var/run/inetd.pid
eller:
ps ax | grep inetd | cut -c 1-6 | grep -v grep
Disse to kommandoene vil la deg sitte igjen med prosess-nummeret eller prosess-identifikatoren på inetd-prosessen. Ved så å skrive kommandoen kill -HUP
For å forsikre deg om at tjenesten er stoppet vil det også være lurt å gå gjennom prosesslisten manuelt for å eventuelt manuelt stoppe de tjenester som har blitt værende igjen etter HUP-kommandoen. Med kommandoen ps auxww vil du se hvilke prosesser som kjører på maskinen og kunne få opp en rekke typer informasjon om disse. Dersom du har mange prosesser kjørende vil det vært lurt å benytte kommandoene ps og more sammen. Ved å videresende utdata fra ps -kommandoen til more-kommandoen vil man kunne lese dette skjerm for skjerm eller linje for linje i stedet for å få all informasjonen i en lang stor tekst. Dette kan gjøres ved å skrive ps auxww | more . Denne typen for videresending av data er veldig vanlig innen Unix og Unix-lignende operativsystemer og bygger på ideen om at mange små programmer utfører sin del av en større oppgave. Man kan derfor ofte se lange linjer sammensatt av | -tegn som til slutt utfører en felles oppgave.
Låsing av uvirksomme bruker-kontoer
Etter en nyinstallasjon er det alltid opprettet en mengde kontoer på maskinen som ikke alle alltid har de innstillinger man bør ha på disse for å unngå at noen enkelt skal kunne utnytte svakheter i installasjonen eller distribusjonen til å gjøre uønskede ting med systemet. En enkel måte å unngå de første forsøkene på uønsket bruk av maskinen på er å låse bruker-kontoer på maskinen som ikke behøver å kunne logge inn på maskinen for å kjøre de programmene som kontoen kontrollerer. I filen /etc/passwd finner man en liste over alle brukere på en hver maskin som benytter et Unix-lignende operativsystem. Denne filen er oppdelt i en rekke felter avdelt med et : -tegn. Her er et eksempel på utdrag fra en /etc/passwd -fil:
anders@hurricane:~$ cat /etc/passwd
root:x:0:0::/root:/bin/bash
bin:x:1:1:bin:/bin:/bin/false
daemon:x:2:2:daemon:/sbin:
adm:x:3:4:adm:/var/log:/bin/false
lp:x:4:7:lp:/var/spool/lpd:/bin/false
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
sshd:x:33:33:sshd:/:/bin/false
gdm:x:42:42:GDM:/var/state/gdm:/bin/bash
pop:x:90:90:POP:/:/bin/false
nobody:x:99:99:nobody:/:/bin/false
anders:x:1000:100:Anders K.Hanssen,,,:/storec/homes/a/anders:/bin/bash
Passwd-filen er delt inn i 7 felter som hver representerer en type data som systemet benytter for å avgjøre hvilke rettigheter brukeren har på systemet. Feltinndelingen er som følger:
brukernavn:passord-type:bruker-id:gruppe-id:hjemmeområde:skalltype
En x i det andre feltet vil i denne sammenhengen bety at brukerens passord leses via shadow-passord-filen /etc/shadow som er kryptert med en hash. Enkelte Unix-systemer benytter andre typer passord-kryptering og har andre måter å skjule dette på, men den generelle inndelingen av passwd-filen i 7 felter er den samme. Vi skal her konsentrere oss mest om det siste feltet i filen som avgjør brukerens skall-type. Dersom en bruker er en system-bruker som kun benyttes av de enkelte daemoner til å utføre systemoppgaver er det intet behov for brukeren å ha et innloggingsshell definert i filen. Ved å forsikre oss om at dette feltet inneholder en verdi som gjør det umulig for brukeren å logge inn reduserer vi faren for inntrengning ved hjelp av tilgang til maskinens skjerm og tastatur. I eksemplet over er det kun brukeren anders og root som behøver skall som tillater brukere å benytte disse. Kontoen daemon som på dette systemet brukes under oppstart til å starte system-daemons trenger ikke å ha et loginshell og vi kan derfor skrive om denne linjen ved hjelp av en editor til å se slik ut:
daemon:x:2:2:daemon:/sbin:/bin/false
Denne kontoen kan nå ikke brukes til å logge inn med, og vi begrenser derfor adgangen til å kjøre kommandoer som denne brukeren til å kunne utføres av systemet. Det er viktig å være forsiktig når man endrer passwd-filen og det er derfor lurt å ikke endre noen kontoer man er usikker på. Enkelte systemkontoer som shutdown skal ha det spesifike skallet /sbin/shutdown (eller tilsvarende) og dette skal _ikke_ endres. (Dersom dette endres vil det gjøre det umulig å slå av eller starte om maskinen på vanlig måte.).
Kilde: Trondheim LUG | TNLDP