De SSH-poort wijzigen
Kort antwoord
Bewerk /etc/ssh/sshd_config, verander de Port-regel naar je gekozen poort, open die poort in je firewall en herstart daarna de SSH-service. Twee extra stappen worden vaak vergeten: recente Ubuntu-releases zetten de poort op ssh.socket in plaats daarvan, en distributies uit de RHEL-familie hebben de nieuwe poort eerst nodig als label in SELinux.
SSH van poort 22 afhalen maakt je server niet onkraakbaar, maar het vermindert wel flink het geautomatiseerde scanverkeer dat elke server op de standaardpoort te verduren krijgt. Gebruik het naast key-based authenticatie en de andere stappen uit Zo verbeter je je SSH-beveiliging, niet in plaats daarvan.
De poort wijzigen
Kies een poort
Kies een ongebruikte poort boven 1024, zodat je buiten het gereserveerde systeempoortbereik blijft. Controleer of hij niet al door een andere service op de server wordt gebruikt.
Bewerk sshd_config
Open /etc/ssh/sshd_config in een teksteditor en zoek de Port-regel op. Haal het commentaarteken ervoor weg als dat nodig is, en zet de regel op je gekozen poortnummer.
Port 2222Controleer op recente Ubuntu-releases eerst op socket-activatie. Vanaf Ubuntu 22.10 wordt sshd gestart door een systemd socket unit. Als die unit actief is, wordt de Port-directive in sshd_config genegeerd en komt de luisterpoort uit de socket. De wijziging lijkt dan te werken, maar er verandert niets. Controleer dat zo:
systemctl is-enabled ssh.socketGeeft dat enabled terug, stel de poort dan ook in op de socket:
sudo systemctl edit ssh.socketVoeg het volgende toe, waarbij je eerst de overgeërfde waarde leegmaakt:
[Socket]
ListenStream=
ListenStream=2222Herlaad daarna en herstart de socket:
sudo systemctl daemon-reload
sudo systemctl restart ssh.socketZet de nieuwe poort open in de firewall
Open de nieuwe poort in de firewall die op de server draait, bijvoorbeeld UFW, firewalld of iptables, voordat je SSH herstart. Laat de oude poort open totdat je hebt bevestigd dat de nieuwe werkt.
# UFW-voorbeeld
sudo ufw allow 2222/tcpHerstart de SSH-service
Vertel SELinux op distributies uit de RHEL-familie eerst over de poort. Op AlmaLinux, Rocky Linux, CentOS Stream en Oracle Linux staat SELinux standaard op enforcing en laat het sshd niet binden aan een poort buiten het eigen beleid. De herstart mislukt dan met een permission- of bind-fout. Label de nieuwe poort voordat je herstart:
sudo dnf install policycoreutils-python-utils
sudo semanage port -a -t ssh_port_t -p tcp 2222Controleer de configuratie op syntaxfouten en herstart daarna:
sudo sshd -t
sudo systemctl restart sshdOp Debian en Ubuntu heet de service ssh in plaats van sshd. Heb je in stap 2 ssh.socket aangepast, dan is het herstarten van de socket wat de nieuwe poort actief maakt.
Test voordat je de verbinding verbreekt
Open een nieuw terminalvenster en maak verbinding via de nieuwe poort, zonder je bestaande sessie te sluiten:
ssh -p 2222 user@your-server-ipSluit je oorspronkelijke sessie pas als de nieuwe verbinding werkt. Lukt het niet, dan kun je via je bestaande sessie de configuratie herstellen zonder dat je buitengesloten raakt.
Verwijder de oude poort uit de firewall
Zodra je hebt bevestigd dat de nieuwe poort werkt, verwijder je de regel die de oude poort (22) toestaat, zodat die niet langer bereikbaar is.