SSH is een veelgebruikt protocol dat wordt gebruikt voor veilige toegang tot Linux-servers. De meeste gebruikers gebruiken SSH-verbindingen met standaardinstellingen om verbinding te maken met een externe server. De onbeveiligde standaardconfiguraties brengen echter ook verschillende beveiligingsrisico's met zich mee.
Het root-account van een server met open SSH-toegang kan gevaar lopen. En vooral als je een openbaar IP-adres gebruikt, is het veel gemakkelijker om het root-wachtwoord te hacken. Kennis over SSH-beveiliging is daarom noodzakelijk.
Hier leest u hoe u uw SSH-serververbindingen op Linux kunt beveiligen.
1. Aanmeldingen rootgebruiker uitschakelen
Schakel hiervoor eerst de SSH-toegang van de rootgebruiker uit en maak een nieuwe gebruiker met root-rechten. Het uitschakelen van de servertoegang voor de rootgebruiker is een verdedigingsstrategie die voorkomt dat aanvallers hun doel bereiken om het systeem binnen te dringen. U kunt bijvoorbeeld een gebruiker maken met de naam voorbeeldroot als volgt:
useradd -m voorbeeldroot
passwd voorbeeldroot
usermod -aG sudo voorbeeldroot
Hier is een korte uitleg van de bovengenoemde commando's:
- useradd maakt een nieuwe gebruiker aan en de -m parameter maakt een map aan onder de huis directory voor de gebruiker die u hebt gemaakt.
- De passwd commando is voor het toewijzen van een wachtwoord aan de nieuwe gebruiker. Onthoud dat wachtwoorden die u aan de gebruikers toewijst, complex en moeilijk te raden moeten zijn.
- usermod -aG sudo voegt de nieuw aangemaakte gebruiker toe aan de beheerdersgroep.
Na het aanmaken van de gebruiker is het nodig om enkele wijzigingen aan te brengen in de sshd_config het dossier. U kunt dit bestand vinden op: /etc/ssh/sshd_config. Open het bestand met een teksteditor en breng de volgende wijzigingen aan:
# Authenticatie:
#LoginGraceTime 2m
PermitRootLogin nr
AllowUsers voorbeeldroot
PermitRootLogin line voorkomt dat de rootgebruiker op afstand toegang krijgt via SSH. Inclusief voorbeeldroot in de Gebruikers toestaan list verleent de gebruiker de nodige machtigingen.
Start ten slotte de SSH-service opnieuw met de volgende opdracht:
sudo systemctl herstart ssh
Als dat niet lukt en je krijgt een foutmelding, probeer dan de onderstaande opdracht. Dit kan verschillen op basis van de Linux-distro die je gebruikt.
sudo systemctl herstart sshd
2. De standaardpoort wijzigen
De standaard SSH-verbindingspoort is 22. Natuurlijk weten alle aanvallers dit en daarom is het noodzakelijk om het standaardpoortnummer te wijzigen om SSH-beveiliging te garanderen. Hoewel een aanvaller de nieuwe gemakkelijk kan vinden poortnummer met een Nmap-scan, is het doel hier om het werk van de aanvaller moeilijker te maken.
Om het poortnummer te wijzigen, open /etc/ssh/sshd_config en breng de volgende wijzigingen aan in het bestand:
Erbij betrekken /etc/ssh/sshd_config.d/*.conf
Poort 5922
Start na deze stap de SSH-service opnieuw met: sudo systemctl herstart ssh. Nu hebt u toegang tot uw server via de poort die u zojuist hebt gedefinieerd. Als u een firewall gebruikt, moet u daar ook de nodige regelwijzigingen doorvoeren. over het runnen van de netstat -tlpn commando, kunt u zien dat uw poortnummer voor SSH is gewijzigd.
3. Toegang blokkeren voor gebruikers met lege wachtwoorden
Er kunnen gebruikers zonder wachtwoord op uw systeem zijn die u per ongeluk hebt aangemaakt. Om te voorkomen dat dergelijke gebruikers toegang krijgen tot de servers, kunt u de Vergunning Lege Wachtwoorden regelwaarde in de sshd_config bestand naar nee.
PermitEmptyPasswords nee
4. Aanmeldings-/toegangspogingen beperken
Standaard hebt u toegang tot de server door zoveel wachtwoordpogingen te doen als u wilt. Aanvallers kunnen dit beveiligingslek echter gebruiken om de server brute-force te geven. U kunt automatisch opzeggen de SSH-verbinding na een bepaald aantal pogingen door het aantal toegestane wachtwoordpogingen op te geven.
Verander hiervoor de MaxAuthTries waarde in de sshd_config het dossier.
MaxAuthTries 3
5. SSH-versie 2 gebruiken
De tweede versie van SSH is uitgebracht vanwege de vele kwetsbaarheden in de eerste versie. Standaard kunt u de server inschakelen om de tweede versie te gebruiken door de Protocol parameter naar uw sshd_config het dossier. Zo gebruiken al je toekomstige verbindingen de tweede versie van SSH.
Erbij betrekken /etc/ssh/sshd_config.d/*.conf
Protocol 2
6. TCP Port Forwarding en X11 Forwarding uitschakelen
Aanvallers kunnen proberen toegang te krijgen tot uw andere systemen door middel van port forwarding via SSH-verbindingen. Om dit te voorkomen, kunt u de ToestaanTcpForwarding en X11Doorsturen functies in de sshd_config het dossier.
X11Doorstuur nr
ToestaanTcpForwarding nee
7. Verbinding maken met een SSH-sleutel
Een van de veiligste manieren om verbinding te maken met uw server is door een SSH-sleutel te gebruiken. Wanneer u een SSH-sleutel gebruikt, heeft u zonder wachtwoord toegang tot de server. Bovendien kunt u de wachtwoordtoegang tot de server volledig uitschakelen door de wachtwoordgerelateerde parameters in de sshd_config het dossier.
Wanneer u een SSH-sleutel maakt, zijn er twee sleutels: Openbaar en Privaat. De openbare sleutel wordt geüpload naar de server waarmee u verbinding wilt maken en de privésleutel wordt opgeslagen op de computer waarmee u de verbinding tot stand brengt.
Maak een SSH-sleutel met de ssh-keygen commando op uw computer. Verlaat de Wachtwoordzin veld leeg en onthoud het wachtwoord dat u hier hebt ingevoerd. Als je het leeg laat, heb je er alleen toegang toe met het SSH-sleutelbestand. Als u echter een wachtwoord instelt, kunt u voorkomen dat een aanvaller met het sleutelbestand toegang krijgt. U kunt bijvoorbeeld een SSH-sleutel maken met het volgende commando:
ssh-keygen
8. IP-beperkingen voor SSH-verbindingen
Meestal blokkeert de firewall de toegang met behulp van frameworks van zijn eigen standaarden en is bedoeld om de server te beschermen. Dit is echter niet altijd voldoende en u moet dit beveiligingspotentieel vergroten.
Open hiervoor de /etc/hosts.allow het dossier. Met de toevoegingen die u aan dit bestand maakt, kunt u de SSH-machtiging beperken, een specifiek IP-blok toestaan, of een enkel IP-adres invoeren en alle resterende IP-adressen blokkeren met het deny-commando.
Hieronder ziet u enkele voorbeeldinstellingen. Nadat u dit hebt gedaan, start u de SSH-service zoals gewoonlijk opnieuw om de wijzigingen op te slaan.
Het belang van Linux-serverbeveiliging
Gegevens en gegevensbeveiligingskwesties zijn vrij gedetailleerd en moeten door alle serverbeheerders worden overwogen. Serverbeveiliging is een zeer gevoelige kwestie, aangezien de belangrijkste focus van aanvallen webservers zijn, en deze bevatten bijna alle informatie over een systeem. Aangezien de meeste servers op de Linux-infrastructuur draaien, is het erg belangrijk om bekend te zijn met het Linux-systeem en het serverbeheer.
SSH-beveiliging is slechts een van de manieren om servers te beschermen. Het is mogelijk om de schade die je oploopt te minimaliseren door een aanval te stoppen, te blokkeren of te vertragen. Afgezien van het bieden van SSH-beveiliging, zijn er veel verschillende methoden die u kunt implementeren om uw Linux-servers te beveiligen.