SSH är ett verktyg jag använder varje dag för att logga in på fjärranslutna Linux-servrar och ta hand om mina adminuppgifter. Utan SSH skulle mina dagar vara mer komplicerade och mindre säkra. Det betyder dock inte att SSH är konfigurerat efter din smak direkt ur lådan. Det finns några svagheter i standardkonfigurationen och hur du förmodligen använder verktyget.
Låt oss fixa det.
SE: Linux fyller 30: Firar operativsystemet med öppen källkod (gratis PDF) (TechRepublic)
Här är mina fem enklaste tips för att säkra SSH på dina Linux-maskiner. Dessa tips bör inte ta dig mer än fem minuter att hantera och i slutändan kommer du att vara glad att du tog dig tid att göra det.
Vad du behöver
Det enda du behöver för detta är en körande instans av Linux och en användare med sudo-privilegier.
Tips 1: Ändra standardporten
Det första vi ska göra är att ändra standardporten från 22, som används flitigt i brute force och andra attacker. För att göra detta, öppna SSH-demonens konfigurationsfil med:
sudo nano /etc/ssh/sshd_config
I den filen letar du efter:
#Port 22
Ändra det till något i stil med:
Port 2124
Spara och stäng filen. Starta om demonen med:
sudo systemctl starta om sshd
Innan du lämnar den här terminalen, se till att du kan återansluta till servern med en annan SSH-instans, lägga till alternativet -p 2124 (eller vilken port du än väljer) i slutet så här:
ssh 192.168.1.63 -p 2124
Tips 2: Inaktivera X11/TCP-portvidarebefordran
Därefter kommer vi att inaktivera X11 och TCP port forward eftersom angripare kan använda denna svaghet för att få tillgång till andra system i ditt nätverk. För att göra detta, öppna demonens konfigurationsfil igen och leta efter följande två rader:
#AllowTcpForwarding yesX11Forwarding ja
Ändra dessa rader till:
AllowTcpForwarding noX11Forwarding nr
Spara och stäng filen.
Vi väntar med att starta om SSH-demonen tills vi har tagit hand om de andra konfigurationerna.
Tips 3: Inaktivera användningar med tomma lösenord
Inom SSH-demonfilen vill vi förhindra att användare med tomma lösenord får åtkomst. Du ska inte behöva bry dig om detta om du har satt upp en policy som inte tillåter tomma lösenord, men det är alltid bättre att vara säker än ledsen.
Leta efter raden i demonens konfigurationsfil:
Öppen källkod: Måste läsa täckning
#PermitEmptyPasswords no
Ändra den raden till:
PermitEmptyPasswords no
Spara och stäng filen.
Eftersom vi är klara med demonkonfigurationen, starta om SSH-demonen med:
sudo systemctl starta om sshd
Tips 4: Begränsa SSH-inloggningar till specifika IP-adresser
Vi kommer nu att begränsa alla SSH-inloggningar till specifika IP-adresser. För att göra det öppnar du filen hosts.deny med:
sudo nano /etc/hosts.deny
Lägg till följande längst ned i filen:
sshd: ALLA
Spara och stäng filen.
Öppna sedan filen hosts.allow med:
sudo nano /etc/hosts.allow
Längst ner i filen lägger du till en kommaseparerad rad som innehåller alla IP-adresser som du vill tillåta genom så här:
sshd: 192.168.1.62, 192.168.1.11, 192.168.1.100
Om du vill tillåta alla maskiner på ditt LAN kan du använda något som:
sshd: 192.168.1.0/24
Spara och stäng filen.
Tips 5: Använd SSH-nyckelautentisering
Detta är ett av de viktigaste tipsen. Att använda SSH-nyckelautentisering är mycket säkrare än att använda vanliga lösenord. Så hur ställer vi upp det?
Enkel. Generera en SSH-nyckel på en klient som du vill använda för att ansluta till servern med kommandot:
ssh-keygen -t rsa
Därefter kopierar vi nyckeln till servern med:
ssh-copy-id SERVER
Där SERVER är din servers IP-adress.
Det finns en varning för detta. Om du har ändrat standard SSH-porten kan du inte använda kommandot ssh-copy-id eftersom det inte accepterar argument. Istället måste du konfigurera en värdpost i ~/.ssh/config som ser ut så här:
Värd NAMEHostName SERVERPort PORT
Var:
- NAME är ett mänskligt läsbart namn för servern.
- SERVER är serverns IP-adress.
- PORT är den icke-standardport du har konfigurerat
Spara och stäng filen. Du kan nu kopiera den nyckeln (till den icke-standardportkonfigurerade SSH-servern) med något som:
ssh-copy-id NAMN
Där NAME är det mänskligt läsbara namnet som ges till servern i konfigurationsfilen.
Efter att ha kopierat din SSH-autentiseringsnyckel till servern, öppna en ny terminal och se till att du fortfarande kan ansluta till servern via SSH. Om du kan, se till att kopiera SSH-nycklarna från varje klient som behöver åtkomst till servern och inaktivera sedan lösenordsautentisering genom att öppna demonens konfigurationsfil en gång till med:
sudo nano /etc/ssh/sshd_config
Leta efter raden:
#PasswordAuthentication ja
Ändra den raden till:
Lösenordsautentiseringsnr
Spara och stäng filen och starta om SSH-demonen med:
sudo systemctl starta om sshd
Nu kommer bara de med SSH-nycklar på servern att kunna logga in.
Och där går du. På cirka 5 minuter har du låst SSH på din server. Du bör också installera och konfigurera fail2ban, men det tar lite längre tid än 5 minuter. Njut av det extra lagret av säkerhet.
Prenumerera på TechRepublics How To Make Tech Work på YouTube för alla de senaste tekniska råden för affärsproffs från Jack Wallen.
Håll kontakten med oss på sociala medieplattformar för omedelbar uppdatering klicka här för att gå med i vår Twitter och Facebook