Ubuntu Sverige

Servrar/Secure ssh

Ubuntu Sverige

Hoppa till: navigering, sök

Innehåll

[redigera] Gör SSH mer säkert

Det finns några steg man bör ta, efter att man har installerat SSH på sitt system. En kedja är inte starkare än den svagaste länken och gällande SSH är ett svagt lösenord till t.ex. root, ett allvarligt hot.

Det vi skall göra är att byta från port 22 till valfri. Se mer utförlig förklaring till varför, längre ned i artikeln. Skapa ett certifikat samt, stänga av möjligheten att logga in utan certifikat. Vi skall även kontrollera så att root inte får logga in, då det är mycket bättre att använda sudo när administratörsrättigheter behövs.

[redigera] Förberedelser

[redigera] Skapa nyckel

Vi väljer att använda en RSA-nyckel på t.ex. 4096 bitar. Öppna ett terminalfönster och skriv in följande: ssh-keygen -t rsa -b 4096. 1024 sägs vara tillräckligt säkert, men man kan aldrig vara för säker ;-)

rancor@rancor-laptop:~$ ssh-keygen -t rsa -b 4096
Generating public/private rsa key pair. 

Du får sedan upp en fråga var du vill spara din nyckel. Har du redan nycklar i id_dsa bör du ange ett annat namn, för filen skrivs över annars. Är du nöjd med förslaget tycker du bara retur

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

Sedan skall du ange lösenord. Tänk på att blanda stora och små bokstäver samt lägga in tecken och siffror. Gärna en liten mening som hjälper dig att komma ihåg lösenordet utantill.

Enter passphrase (empty for no passphrase): M1tt H3ml1g@ löSe40rD
Enter same passphrase again: M1tt H3ml1g@ löSe40rD
Your identification has been saved in /home/rancor/.ssh/id_rsa.
Your public key has been saved in /home/rancor/.ssh/id_rsa.pub.
The key fingerprint is:
xx:xx:xx:xx:xx:xx:xx:xx:xx:x:xx:xx:xx:xx:xx:xx rancor@rancor-laptop

[redigera] Installera den publika nyckeln i systemet

Den publika nyckeln skall läggas i ~/.ssh/authorized_keys och det kan finnas fler nycklar än en. Se till att göra radmatning mellan nycklarna.

Om nyckeln skall installeras på samma system kopierar du helt enkelt id_dsa.pub till authorized_keys.

rancor@rancor-laptop:~$ cd ~/.ssh
rancor@rancor-laptop:~/.ssh$ cp id_rsa.pub authorized_keys

Skulle det vara en extern maskin kan du använda scp för att kopiera nyckeln, tänk då på att du inte skriver över authorized_keys om det skulle finnas existerande nycklar i filen. För att kopiera (skriva över befintlig fil) gör du följande

rancor@rancor-laptop:~/.ssh$ scp -p ~/.ssh/authorized_keys 192.168.0.1:.ssh/
rancor@192.168.0.1’s password: <lösenord>
authorized_keys               100% 1839     1.2MB/s   00:00

Se även till att ~/.ssh/autorized_keys och ~/.ssh/id_rsa endast har gällande användares rättigheter. Vid problem använd chmod 600 <filnamn> för att åtgärda.

[redigera] Konfigurera sshd

Nästa steg är att kontrollera inställningarna för sshd. Filen vi skall modifiera heter /etc/ssh/sshd_config

Börja med att skapa en säkerhetskopia av sshd_config

rancor@rancor-laptop:/$ sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config_backup 
Password: <lösenord>

Sedan använder vi lämplig editor för att modifiera sshd_config

rancor@rancor-laptop:/$ sudo vi /etc/ssh/sshd_config

Följande rader skall ändras:

Port 22
LoginGraceTime 120
PermitRootLogin yes

Nya värden skall vara:

Port 10022

Välj annan port än 22, dock högre än 10000 för det finns mängder med standardportar som man lätt kan hamna på av misstag som kan skapa problem längre fram. Det innebär heller ingen direkt ökad säkerhet att ändra port, men man slipper de flesta "script-kiddies"attacker och "maskar", när man flyttar sig från standardportar. Detta gäller samtliga tjänster och inte bara ssh.

LoginGraceTime 30

LoginGraceTime är antalet sekunder innan man blir utkastad om man inte lyckas med inloggningen. Det är en smaksak men 120 sekunder behöver man normalt sett inte på sig. Sänk den med fördel. Dock bör du hinna ange ditt lösenord innan tiden går ut.

PermitRootLogin no

Root behöver inte kunna logga in via ssh. Du kan använda sudo istället vilket är mycket säkrare.

Vi skall även lägga till en så att man förhindrar möjligheten att logga in med hjälp av användarnamn och lösenord vilket betyder att man tvingas använda certifikat. Lägg till:

PasswordAuthentication no

Kontrollera även så att följande rader stämmer:

Protocol 2
UsePrivilegeSeparation yes
StrictModes yes
RSAAuthentication yes
PubkeyAuthentication yes

Spara och avsluta.

Nu skall vi bara starta om sshd så att de nya inställningarna börjar gälla.

rancor@rancor-laptop:~/.ssh$ sudo /etc/init.d/ssh restart 
Password: 
* Restarting OpenBSD Secure Shell server...                             [ OK ] 

Testa att logga in i systemet. Glöm inte av att du har bytt port. Du måste även ange användarnamn om du inte har samma användarnamn på fjärrdatorn som den lokalt inloggande användare. Detta gör du genom att skriva användarnamn@server.ip

rancor@rancor-laptop:/$ ssh rancor@localhost -p 10022 
Enter passphrase for key '/home/rancor/.ssh/id_dsa': 
INNE! :)
Den här artikeln är hämtad från http://ubuntu-se.org/wiki/Servrar/Secure_ssh
Personliga verktyg