Servers worden vaak aangevallen door geautomatiseerde bots. Bij Linux-servers proberen zij (in bijna alle gevallen) via SSH-poort 22 als root-gebruiker binnen te dringen door middel van brute force aanvallen.
Wij raden daarom aan om je SSH-poort te veranderen en toegang tot SSH als root-gebruiker uit te zetten op je VPS. Dit laatste is al automatisch toegepast op onze DirectAdmin-, Plesk- en cPanel-VPS'en.
In dit artikel laten wij zien hoe je je SSH-poort verandert. Het veranderen van je SSH-poort is een vorm van 'security through obscurity'; je maakt zo je VPS (gedeeltelijk) onvindbaar voor het overgrote deel van de aanvallende bots. Een bijkomend voordeel is dat je log bestanden overzichtelijker blijven en je een duidelijker beeld krijgt wanneer je VPS daadwerkelijk gericht wordt aangevallen.
Gebruik je DirectAdmin, Plesk, of cPanel? Bekijk dan voor het veranderen van je SSH-poort onze artikelen die over het beveiligen van deze controlepanelen gaan:
- Voer de stappen in dit artikel uit als gebruiker met root-rechten
Stap 1
Verbind met je VPS via de VPS console. Via SSH zal je verbinding anders wegvallen terwijl je de wijzigingen verwerkt.
Stap 2
Controleer je gebruikte poorten met het commando:
netstat -tulpn | less
Een overzicht zoals in het screenshot hier onder verschijnt. In dit overzicht zijn de poort nummers de getallen in de rij 'Local Address' achter de dubbele punt.
Stap 3
Kies een willekeurig poort nummer tussen 0 en 65535 dat niet in het overzicht getoond wordt (bijvoorbeeld 47592) en druk op 'q' om netstat te stoppen.
Stap 4
Open het SSH-configuratiebestand met het onderstaande commando. Je kunt hiervoor ook vim gebruiken.
nano /etc/ssh/sshd_config
Stap 5
Het configuratiebestand opent en je ziet onder andere het onderstaande stuk code.
# If you want to change the port on a SELinux system, you have to tell # SELinux about this change. # semanage port -a -t ssh_port_t -p tcp #PORTNUMBER # #Port 22 #AddressFamily any #ListenAddress 0.0.0.0 #ListenAddress ::
Uncomment / verwijder de # voor '#Port 22' en verander het nummer naar het nummer dat je onder stap 2 hebt gekozen, bijvoorbeeld:
Port 47592
Sla het bestand op en sluit het bestand af door achtereenvolgens op ctrl+ x > y > enter te drukken.
Stap 6
Voeg de gekozen poort toe aan je firewall en sluit poort 22 in je firewall. Hieronder hebben wij voorbeelden van enkele veelgebruikte firewalls. Vervang 47592 door het poortnummer dat je in stap 2 hebt gekozen.
De VPS-firewall in het controlepaneel
Stap 1
Log in op je controlepaneel en navigeer naar de betreffende VPS.
Stap 2
Klik op het tandwiel achter 'Netwerk' (direct onder de VPS-console) en klik op 'VPS-Firewall'.
Stap 3
Verwijder de huidige SSH-regel indien aanwezig, en voeg een custom regel toe voor SSH. Klik tot slot op 'Opslaan' om de wijziging te verwerken.
FirewallD (CentOS, AlmaLinux, Rocky Linux)
sudo firewall-cmd --permanent --zone=public --add-port=47592/tcp
sudo firewall-cmd --permanent --zone=public --remove-port=22/tcp
sudo firewall-cmd --reload
Optioneel kun je SSH ook enkel open zetten voor specifieke IP-adressen of IP-ranges in Firewalld als volgt:
firewall-cmd --permanent --zone=public --add-rich-rule='
rule family="ipv4" source address="123.123.123.123" port protocol="tcp" port="1234" accept'firewall-cmd --permanent --zone=public --add-rich-rule='
rule family="ipv4" source address="123.123.123.0/24" port protocol="tcp" port="1234" accept' firewall-cmd --reload
Ufw (Ubuntu, Debian)
ufw allow 47592/tcp
ufw deny 22/tcp
Optioneel kun je SSH ook enkel open zetten voor specifieke IP-adressen of IP-ranges in Ufw als volgt:
ufw allow from 123.123.123.123 to any port 47592 proto tcp
ufw allow from 123.123.123.0/24 to any port 22 proto tcp
Nftables
Debian is aan het overstappen op nftables in plaats van iptables. Aangezien de meeste Debian-gebruikers ufw of iptables gebruiken en nftables een stuk gecompliceerder is dan deze oplossingen, valt het voor nu buiten de scope van deze handleiding. Wij zullen in de toekomst een apart artikel over het gebruik van nftables in onze knowledge base opnemen.
Stap 7
Herstart tot slot SSH met het onderstaande commando.
systemctl restart sshd
Optioneel: Stap 8 - Selinux
Gebruik je Selinux (te controleren met het commando 'sestatus')? Voeg dan ook de gekozen poort toe aan Selinux:
semanage port -a -t ssh_port_t -p tcp 47592
Je SSH-poort is nu verandert en je SSH-verbinding kan nu niet eenvoudig meer aangevallen worden door automatische bots.
Mocht je aan de hand van dit artikel nog vragen hebben, aarzel dan niet om onze supportafdeling te benaderen. Je kunt hen bereiken via de knop 'Neem contact op' onderaan deze pagina.