Velg en side

Installere OpenSSH Server

OpenSSH installeres fordi det er påkrevet for sikker kommunikasjon mellom servere og klienter. Alle datamaskiner som skal kommunisere vil ha SSH installert, fortrinnsvis OpenSSH, også Windows-klienter. Først installeres OpenSSH Server på Ubuntu.

brukernavn@servernavn:~$ sudo apt install openssh-server

Installere OpenSSH Client

Så installeres OpenSSH Client. I noen scenarier er en maskin klient, i andre scenarier er samme maskin server. Vi installerer både openssh-server og openssh-klient. Det er 2 nøkler, private og public. Privat nøkkel er hemmelig og skal beskyttes og befinner seg kun på én host, i dette tilfellet serveren. Offentlig (public) nøkkel er åpen, og deles med betrodde klienter for tilkobling og kommunikasjon.

De to nøklene må passe sammen for at en klient skal få tilgang på en server.

brukernavn@servernavn:~$ sudo apt install openssh-client

Kopiere original conf-fil

Kopieres til samme dir, slik at vi alltid har originalen som backup.

brukernavn@servernavn:~$ sudo cp /etc/ssh/sshd_config  /etc/ssh/sshd_config.original

Beskytte originalfilen

chmod a-w fjerner rettigheter for alle brukere/grupper til originalfilen.

brukernavn@servernavn:~$ sudo chmod a-w /etc/ssh/sshd_config.original

Teste sshd_config

Teste sshd_config før redigering av filen. (-t betyr test, -f angir hvilken fil som skal testes) Ingen meldinger = OK

brukernavn@servernavn:~$ sudo sshd -t -f /etc/ssh/sshd_config

Konfigurere sshd_config for passord autentisering

Åpner sshd_config med nano for endringer. 

brukernavn@servernavn:~$ sudo nano /etc/ssh/sshd_config

 

aktivert:
port 22

aktivert:
PasswordAuthentication yes

deaktivert:
#AddressFamily any

deaktivert:
#PubkeyAuthentication yes

deaktivert:
#ListenAddress xxx.xxx.xxx.xxx

deaktivert:
#ListenAddress ::

deaktivert:
#X11 Forwarding yes

 

Lagre i nano med Ctrl+O. Avslutte nano med Ctrl+X.

Redigert fil vises her uten ansvar for eventuelle feil/konsekvenser for den som bruker helt eller delvis denne konfigurasjonen. 

Merk! Konfigurasjonen vist her er regnet som den minst sikre og anbefales ikke ved pålogging over Internett. Da velges helst passordløs innlogging med private og public keys. Likevel, ingen pålogging er 100% trygg. Passord og host keys kan også komme på avveie.

Dersom den som logger på første gang tar jobben med å verifisere Fingerprint som da vises, og ikke bare svarer «Yes» blindt, er mye gjort for sikkerhet. 

Det forutsetter at man tar jobben med å skaffe seg dokumentasjon av serverens Fingerprint før første pålogging, noe en serveradmin  tilbyr brukere.

Sikkerhet forutsetter også et sterkt passord.

Restarte tjenesten

brukernavn@servernavn:~$ sudo systemctl restart sshd.service

Generere nøkler, private og public på server

brukernavn@servernavn:~$ ssh-keygen

Lagre nøkler

brukernavn@servernavn:~$ ssh-keygen

Generating public/private rsa key pair.

Enter file in which to save the key. (/home/user/ .ssh/id_rsa): 

 

Etter kolon skrives /home/dittbrukernavn/.ssh/id_rsa

I ~/.ssh ligger nå 2 filer: id_rsa og id_rsa.pub

Kopiere id_rsa.pub til ekstern host

username byttes ut med et virkelig brukernavn. remote.host/IP kan være et domene eller en IP-adresse.

brukernavn@servernavn:~$ ssh-copy-id username@remotehost.no

Tilkobling til ekstern host

brukernavn@servernavn:~$ ssh username@remotehost.no

username byttes ut med et virkelig brukernavn. remotehost kan være et domene, en IP-adresse, eller liknende.

Når man kobler til med kommando: ssh username@host, må man angi passord manuelt etter å ha kontrollert og bekreftet fingerprint som kan se slik ut:

MD5:44:06:3b:86:ga:se:5n:09:7g:9a:1f:9a:g8:43:ak:b8

eller kanskje slik

SHA256:6S2ZpXXZP5UUAcGl0rXT+rq82o745jAekKYYwBDPPa1

Man bør ikke svare «Yes» før man har kontrollert at fingerprint stemmer med det man tidligere har notert fra serveradmin. Svarer man «yes» uten å kontrollere, kan man i verste fall havne et helt annet sted enn det man forventer, og hvor en hacker akkurat nå får tak i ditt brukernavn og passord til den serveren du forsøker å logge inn på.

Logge inn med passordfil

brukernavn@servernavn:~$ sshpass -f /home/brukernavn/remotehost.txt ssh username@remotehost.no

I denne kommandoen henter vi automatisk passordet til brukeren username fra filen /home/brukernavn/remotehost.txt og sender passordet til remotehost med kommando sshpass.

Det er jo litt tvilsom sikkerhet å lagre et passord i en tekstfil, men vi gjør filen lesbar kun for brukeren brukernavn ved å endre filrettighet til 600. Slik: 

brukernavn@servernavn:~$ chmod 600 remotehost.txt

Likevel er det ikke god sikkerhet, hvis en angriper skulle klare å bryte seg inn på ditt hjemmeområde ved spoofing og slik skaffe seg både brukernavnet og passordet ditt.

Endre flere tillatelser 

Vi setter også tillatelse 600 for følgende filer, dersom de ikke allerede er i orden.

brukernavn@servernavn:~/.ssh$ chmod 600 authorized_keys id_rsa

known_hosts  known_hosts.old

Installer net-tools

brukernavn@servernavn:~$ sudo apt install net-tools

Sjekk om sshd kjører

brukernavn@servernavn:~/etc$ sudo ps aux | grep sshd

root 48182 0.0 0.0 15432 9496 ? Ss 13:56 0:00 sshd /usr/:sbin/sshd -D [listener]

root 50963 0.0 0.0 17192 11076 ? Ss 22:46 0:00 sshd: brukernavn [priv]
brukern+ 51101 0.0 0.0 17192 8148 ? S 22:46 0:00 sshd:brukernavn@pts/0
brukern+ 51124 0.0 0.0 4028 2100 pts/0 S+ 22:47 0:00 grep –color=auto
sshd

Sjekk om sshd lytter på port 22

brukernavn@servernavn:~/etc$ sudo netstat -plant | grep :22

tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 48182/sshd: /usr/sb
tcp 0 0 192.168.1.2:22 192.168.1.3:61336 ESTABLISHED 50963/sshd: brukern
tcp6 0 0 :::22 :::* LISTEN 48182/sshd: /usr/sb