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