Konfigurera SSH för ökad säkerhet
Postat av rancor under IT-säkerhet, Ubuntu
Konfigurera SSH för ökad säkerhet
Det finns några steg man bör ta efter att man installerat SSH på ditt 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 port från 22 till valfri, skapa ett certifikat och 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. Vidare skall vi stänga ner några krypteringsmetoder som inte anses som fullt så säkra samt öppna upp för visuell identifiering av serverns "fingeravtryck".
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 4096Du 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örlaget tycker du bara retur
Generating public/private rsa key pair.
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öSe40rDInstallera den publika nyckeln i systemet
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
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:
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
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:
Sedan använder vi lämplig editor för att modifiera sshd_config
rancor@rancor-laptop:/$ sudo nano /etc/ssh/sshd_config
Följande rader skall ändras:
Port 22 LoginGraceTime 120- PermitRootLogin yes
- Ciphers
Port 10022
LoginGraceTime 30
PermitRootLogin no
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 - Ciphers aes128-ctr,aes256-ctr,arcfour256,arcfour,aes128-cbc,aes256-cbc
[1] http://openssh.org/txt/cbc.adv
[2] http://www.cpni.gov.uk/Docs/Vulnerab...visory_SSH.txt
[3] http://www.cs.washington.edu/homes/y...pers/TISSEC04/
Protocol 2 UsePrivilegeSeparation yes- StrictModes yes
- RSAAuthentication yes
- PubkeyAuthentication yes
Nu skall vi bara starta om sshd så att de nya inställningarna tar.
rancor@rancor-laptop:~/.ssh$ sudo /etc/init.d/ssh restart
Password:
* Restarting OpenBSD Secure Shell server... [ OK ]
För att lösa detta har gänget bakom OpenSSH utvecklat en visuell representation av nyckeln så att det blir mycket lätt att känna igen sitt egna system. För att aktivera VisualHostKey skall man ändra i antingen /etc/ssh/ssh_config vilket gäller alla användare eller
Lägg till följande i konfigurationen ("Host * finns redan överst i ssh_config)
Host *
VisualHostKey yes
Testa och verifiera
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 10022Nu är du säkert inloggad i ditt system
Host key fingerprint is 66:12:14:8a:31:23:4f:86:13:f2:1c:4d:33:dd:d4:67
+--[ RSA 4096]----+
| |
| .o |
| . =o .|
| . += E|
| + S . .o|
| . + .. o|
| . o.= |
| +o+ o|
| +=o |
+-----------------+
Enter passphrase for key '/home/rancor/.ssh/id_dsa':
// rancor