Sette opp en ny server med Ubuntu

Før man kan begynne å bruke en ny server, er det enkelte ting man bør konfigurere. Her er en huskeliste med anbefalte steg man bør gjøre med en ny installasjon av Ubuntu Server.

Disse eksemplene bruker en VPS med Ubuntu 14.04.3 x64 fra digitalocean.com (referrallink, spar $10). Fremgangsmåtene kan variere noe på andre distroer.

Innhold

  1. Oppsett for norsk tastatur
  2. Oppdater systemet
  3. Lage ny sudobruker
  4. Legg til SSH-autentisering
  5. Sette opp en enkel brannmur med ufw

1. Oppsett for norsk tastatur

Norske og engelske tastaturer er ulike, og hvis systemet er satt opp for engelske tastaturer, vil du fort få problemer når du prøver og skrive noe og tegnene som kommer opp ikke er de samme som du trykker på på tastaturet. Derfor er det aller første du bør gjøre å endre til norsk tastaturoppsett.

Kjør denne kommandoen:

sudo dpkg-reconfigure keyboard-configuration

Du får da opp en grafisk veileder som hjelper deg gjennom innstillingene. Endre til norsk der du får spørsmål om det, og la resten av valgene være som de er.

Ugyldig locale

Får du i tillegg feilmelding om at miljøet ditt er en “invalid locale”, og/eller at default locale ikke kan endres når du prøver å kjøre ulike kommandoer, så må dette fikses.

Åpne /etc/environment med nano og sjekk om variabelen LC_ALL ligger der. Gjør den ikke det, legger du den til:

LC_ALL=”en_US.utf8″

Hvis ikke det virker, kan du prøve å legge til følgende linjer i /etc/default/locale i stedet for:

LANG=“en_US.UTF-8”
LC_ALL=“en_US.UTF-8”

2. Oppdater systemet

Før du gjør noe annet, kan det være lurt å oppdatere systemet slik at du har de siste oppdaterte pakkene tilgjengelig.

Oppdater pakkebehandleren (apt):

apt-get update

Dette oppdaterer databasen til pakkebehandleren, slik at man har de siste versjonene av pakkene tilgjengelig.

Oppdater installerte pakker:

sudo apt-get upgrade

Dette oppdaterer alle pakkene som er installert på systemet.

3. Lag en ny sudobruker

Root-brukeren har veldig store rettighetsprivilegier og har mulighet til å gjøre destruktive endringer ved uhell eller uforsiktig bruk. Derfor anbefales det gjerne å lage en alternativ bruker med færre rettigheter, som kan brukes til daglige oppgaver. En slik bruker kan også få økte privilegier ved behov, slik at man får utført alt man ønsker med denne brukeren, uten å måtte logge inn som root.

Følgende kommando lager en ny bruker med navnet “brukernavn”:
adduser brukernavn

Du blir så stilt noen spørsmål. Det første er passord for brukeren. Skriv inn et godt passord og fyll eventuelt inn ytterligere informasjon om du vil. Dette er ikke nødvendig, og du kan godt hoppe over de feltene du vil ved å bare trykke [Enter].

Sette opp root-privilegier på den nye brukeren

Den nye brukeren har foreløpig bare standard brukerrettigheter. Dette er ikke nok når man skal gjøre enkelte administrative oppgaver. For å slippe å måtte logge ut av den vanlige brukeren og inn igjen som root for å gjøre slike oppgaver, kan brukeren settes opp med såkalte «super user»- eller root-privilegier. På denne måten kan den vanlige brukeren kjøre kommandoer med sudo for å tilegne seg selv påkrevde rettigheter når det trengs.

For å gi disse privilegiene til den nye brukeren, kan vi bare legge brukeren til gruppen «sudo». På Ubuntu 14.04 vil brukere som tilhører sudo-gruppen tillates å kjøre sudo-kommandoer som standard, så derfor holder det å legge brukeren til denne gruppen.

Mens du fortsatt er logget inn som root, kjør følgende kommando:

gpasswd -a brukernavn sudo

Dette legger brukeren til gruppen sudo, og brukeren kan nå kjøre kommandoer med root-privilegier.

4. Legg til SSH-autentisering

Dette steget legger til offentlig nøkkel-autentisering for den nye brukeren. Dette vil øke sikkerheten på serveren, ved å kreve en privat SSH-nøkkel for å logge inn.

Generer et nøkkelpar

Hvis du ikke allerede har et nøkkelpar, som består av en offentlig og privat nøkkel, må det genereres. Hvis du har et nøkkelpar du vil bruke, kan du hoppe til steget kopier den offentlige nøkkelen.

For å lage et nytt nøkkelpar (Mac OSX/Linux), kjør følgende kommando på din lokale maskin (for å beholde SSH-økten på serveren, kan du åpne et nytt terminalvindu som kjører lokalt):

ssh-keygen

Du får da en forespørsel om hvor du vil lagre nøkkelen (standard plassering er ~/.ssh/id_rsa). Hvis du ikke har noen grunn til å endre plasseringen eller filnavnet, trykker du [Enter] for å godta standardforslaget.

Deretter blir du spurt om et passord for å sikre nøkkelen med. Du kan velge å skrive inn et passord, eller la det stå tomt og ikke sikre nøkkelen med passord.

Merk: Hvis du skriver inn et passord, vil du trenge både den private nøkkelen og passordet for å logge inn. Dette er sikrere enn å ikke beskytte nøkkelen med passord (men bare så sikkert som passordet du velger). Hvis du lar være å sikre nøkkelen med passord, vil du kunne bruke den private nøkkelen for autentisering uten å måtte skrive inn passordet (du logges direkte inn). Avgjør selv hva du vil gjøre. Er du usikker, men vil sikre serveren så godt som mulig, velger du passord.

Det blir nå generert en privat nøkkel: id_rsa og en offentlig nøkkel: id_rsa.pub i .ssh-mappen i brukerens hjem-mappe. Husk at du ikke må dele den private nøkkelen med noen som ikke skal ha tilgang til serveren din.

Kopier den offentlige nøkkelen

Etter at du har opprettet nøkkelparet, må du kopiere den offentlige nøkkelen til serveren.

Hvis den lokale maskinen din har scriptet ssh-copy-id installert, kan du bruke dette til å installere den offentlige nøkkelen til alle brukere du har innlogging til.

Kjør scriptet ved å spesifisere bruker og IP-adresse til serveren du vil installere den offentlige nøkkelen til (på din lokale maskin):

ssh-copy-id brukernavn@ip.adresse.til.serveren

Etter å ha skrevet inn passordet når du blir spurt om det, vil den offentlige nøkkelen bli lagt til serverbrukerens fil .ssh/authorized_keys. Den korresponderende private nøkkelen kan nå brukes til å logge inn på serveren med.

Har du ikke ssh-copy-id installert, kan du legge til nøkkelen manuelt. Kopier innholdet i den offentlige nøkkelen med følgende kommando (på lokal maskin):

pbcopy < ~/.ssh/id_rsa.pub eller vis innholdet med cat ~/.ssh/id_rsa.pub og marker og kopier innholdet manuelt.

Legg til den offentlige nøkkelen til den nye brukeren på serveren

Logg inn med den nye brukeren på serveren (er du allerede logget inn som root, kan du bruke su brukernavn for å logge inn som ny bruker).

Sørg for at du står i hjem-mappen til den nye brukeren (cd ~). Lag så en ny mappe som du beskytter rettighetene til:

mkdir .ssh
chmod 700 .ssh

Åpne en ny fil i mappen .ssh som du kaller authorized_keys:

nano .ssh/authorized_keys

Lim inn den offentlige nøkkelen som du kopierte til utklippstavlen tidligere. Bruk [Ctrl + Shift + V] / [Cmd + Shift + V] for å lime inn innholdet i utklippstavlen.

Avslutt nano med å trykke [Ctrl + x], deretter [y] for å lagre endringene, og til slutt [Enter] for å bekrefte filnavnet.

Beskytt filen authorized keys med denne kommandoen:

chmod 600 .ssh/authorized_keys

Var du logget inn med root, kan du så skrive exit for å logge ut  gjeldende bruker og komme tilbake til root-økten.

Du skal nå kunne SSH-e inn på serveren med den nye brukeren og bruke din private SSH-nøkkel som autentisering. Hvis dette fungerer, kan vi så beskytte serveren ytterligere ved å nekte ekstern SSH-innlogging gjennom root-brukeren.

Konfigurer SSH-tjenesten

Siden du nå har en bruker med root-privilegier, kan vi sette opp serveren til å ikke godta SSH-innlogginger på brukeren root. Dette er generelt anbefalt på alle servere, siden alle systemer har en root-bruker som standard, som potensielt kan åpne for tilgang fra uvedkommende.

Logg inn med root, og åpne konfigurasjonsfilen med nano:

nano /etc/ssh/sshd_config

(Legg merke til den første / – denne må være med, med mindre du står i /, ellers vil nano prøve å åpne filen i undermappen etc/ssh/ i mappen du står i).

Finn deretter linjen som ser slik ut (ligger under #Authentication):

PermitRootLogin yes

endre den deretter til

PermitRootLogin no

Lukk, lagre og bekreft.

For ekstra sikkerhet, kan du også endre portnummeret som brukes for SSH-tilkoblinger. Standard port er 22, og du kan endre denne til hva du vil mellom 1025 og 65536. Se etter linjen som sier “Port 22” og endre 22 til det du vil. Du må i så fall notere deg portnummeret du setter, da du må angi riktig portnummer for å kunne koble til serveren heretter.

Ekstra tips: hvis du endrer portnummeret, endre det til noe annet enn 222 og 2222, da det er mange som bruker disse, og derfor er disse portene nesten like utsatt for angrep som port 22.

Restart SSH

Selv om konfigurasjonen er endret, vil ikke endringene tre i kraft før SSH-tjenesten restartes. Kjør følgende kommando for å restarte SSH:

service ssh restart

Før vi logger ut av serveren, bør vi nå teste at konfigurasjonen fungerer. Vi ønsker ikke å koble fra før vi er helt sikre på at vi kan koble til igjen.

Test konfigurasjonen

Behold det gjeldende terminalvinduet der du er logget inn med root åpent, og åpne så et nytt terminalvindu på den lokale maskinen, og prøv å logge inn med den nye brukeren. Hvis du ikke har endret porten for SSH, kjører du:

ssh brukernavn@ip.adresse.til.serveren

Har du endret porten for SSH må du angi denne også:

ssh -p 2469 brukernavn@ip.adresse.til.serveren

(bytt 2469 med portnummeret du har valgt).

Husk at for å kjøre kommandoer med root-privilegier må du skrive sudo før kommandoen. Prøv å kjøre en sudo kommando før du slår deg til ro med at alt er OK, f.eks. sudo apt-get update.

Hvis det gikk, og alt er som det skal, kan du logge ut med exit. Nå skal det ikke være mulig å SSH-e inn med root.

5. Sett opp en enkel brannmur med ufw

En brannmur gir en grunnleggende sikkerhet på serveren. Brannmuren sørger for å blokkere tilgang til alle porter på serveren unntatt de du tillater. Ubuntu kommer med et verktøy, ufw, som kan brukes til å konfigurere brannmur-regler. En god strategi er å blokkere alt du ikke vet du har en grunn til å holde åpent.

Det første du bør gjøre er å lage reglene som skal bli unntakene som slipper gjennom brannmuren. Er du koblet til serveren via SSH er det veldig viktig at du gjør dette før du skrur på ufw. Hvis du skrur på ufw før du har lagt til unntak, kan du bli kastet ut av serveren og brannmuren vil blokkere deg fra å logge inn igjen. Start derfor med å lage et unntak for SSH-tilkoblinger, slik at du fortsatt har tilgang gjennom SSH.

Tillat SSH

SSH kjører på port 22 som standard, og man kan lage en regel for navnet ssh hvis porten ikke er endret. Så hvis du ikke har endret SSH-porten, kan du legge til en regel med følgende kommando:

sudo ufw allow ssh

Har du derimot endret porten for SSH, kan du ikke bruke navnet ssh, men må i stedet åpne for portnummeret du har valgt over TCP-protokollen:

sudo ufw allow 2469/tcp

Bytt ut 2469 med portnummeret du har konfigurert SSH til.

Tillat HTTP

Skal du bruke serveren som en webserver, altså hoste nettsider på den, må du åpne for tilgang på port 80 over TCP.

sudo ufw allow 80/tcp.

Tillat SSL/TLS

Skal du bruke SSL/TLS, må dette også åpnes for:

sudo ufw allow 443/tcp

Tillat e-post med SMTP

Trenger du e-post med SMTP, må du åpne port 25:

sudo ufw allow 443/tcp

Når du har lagt til alle reglene du vet du trenger, kan du skru på brannmuren. Se gjerne over hvilke regler du har lagt til med kommandoen sudo ufw show added først.

Skru på brannmuren

sudo ufw enable

Kjør kommandoen over og bekreft ved å trykke [y]. All trafikk vil nå blokkeres, unntatt unntaksreglene du har lagt inn. Brannmuren settes også til å starte når du booter systemet, så du slipper å starte den igjen ved en omstart.

Husk at om du legger til andre tjenester senere, må du legge til nye regler for å åpne disse også, dersom de kjører på andre porter.

 Andre ufw-kommandoer

sudo ufw status verbose – viser statusen til ufw og gjeldende regler (når ufw er aktiv). Verbose gir utfyllende info og kan skippes

sudo ufw allow 1000:1500/tcp – tillater alle porter fra 1000 til 1500

sudo ufw delete allow 80/tcp – sletter regelen som tillater tilkoblinger på port 80

sudo ufw status numbered – viser status med reglene nummerert. Skal du slette regler kan du først kjøre denne, og deretter f.eks. sudo ufw delete 1 for å slette regel nr. 1 i listen

sudo ufw reset – resetter ufw til standardinnstillinger. Bruk denne hvis du har fucket opp alt

Videre konfigurasjon

Du har nå satt opp et godt fundament for serveren, og kan installere den programvaren du ønsker.

Skal du bruke den som en webserver, kan du nå legge inn en LAMP-stack.

Leave a Reply

Your email address will not be published. Required fields are marked *