Die sichere Reihenfolge
sudo ufw allow OpenSSH
sudo ufw show added
sudo ufw enable
sudo ufw status
Solange ufw aus ist, zeigt ufw status nur Status: inactive und verbirgt Ihre Regeln. Deshalb prüfen Sie sie mit show added.
Über SSH warnt ufw enable, dass es Verbindungen stören kann, und fragt nach einer Bestätigung. Das Handbuch warnt, dass das Aktivieren bestehende Verbindungen kappen kann. In unserem Test funktionierte die offene Sitzung weiter, verlassen Sie sich aber nicht darauf.
Was passiert, wenn Sie es falsch machen
Die Standardrichtlinie verwirft eingehenden Verkehr. Wir haben ufw ohne SSH-Regel aktiviert, und die nächste Verbindung scheiterte so:
ssh: connect to host server port 22: Connection timed out
Ihre offene Sitzung ist Ihr Rückweg: Fügen Sie die Regel von dort hinzu. Ist sie weg, brauchen Sie die Konsole Ihres Hosting-Anbieters. Eine Cloud-Firewall vor dem Server ist eine eigene Sache, und ufw kann sie nicht öffnen.
Ein Sicherheitsnetz für entfernte Server
Planen Sie vor dem Aktivieren von ufw einen Befehl ein, der es wieder ausschaltet:
sudo systemd-run --on-active=5min --unit=ufw-undo ufw --force disable
sudo ufw enable
Testen Sie eine neue Verbindung aus einem anderen Terminal. Funktioniert sie, brechen Sie den Zeitgeber ab:
sudo systemctl stop ufw-undo.timer
Werden Sie abgeschnitten, warten Sie etwa sechs Minuten, da der Zeitgeber bis zu eine Minute zu spät laufen kann, und ufw schaltet sich selbst ab.
Welche Regel Sie verwenden
| Sie wollen | Befehl |
|---|---|
| Standardport | sudo ufw allow OpenSSH |
| Dasselbe, ohne das Profil | sudo ufw allow 22/tcp |
| Anderer Port | sudo ufw allow 2222/tcp |
| Nur von einer Adresse | sudo ufw allow from 203.0.113.10 to any port 22 proto tcp |
| Wiederholte Verbindungen begrenzen | sudo ufw limit OpenSSH |
Das Profil OpenSSH bedeutet immer Port 22. Zum Ansehen führen Sie sudo ufw app info OpenSSH aus. Es kommt mit dem Paket openssh-server, ohne dieses Paket ist der Name unbekannt.
Was limit tut
ufw limit weist eine Adresse ab, die innerhalb von 30 Sekunden 6 oder mehr Verbindungen öffnet. In unserem Test funktionierten fünf Anmeldungen hintereinander und die sechste scheiterte damit:
ssh: connect to host server port 22: Connection refused
Das trifft auch Sie. Eine Schleife mit scp-Befehlen oder ein Ansible-Lauf, der viele Verbindungen öffnet, löst es aus, und die Meldung sieht aus, als wäre sshd beendet. Es hilft, eine Verbindung wiederzuverwenden: siehe SSH-Multiplexing.
Es bremst das Erraten von Passwörtern, weiß aber nicht, ob eine Anmeldung erfolgreich war. Dafür nehmen Sie fail2ban. Der wirkliche Schutz gegen Erraten ist keine Passwort-Anmeldung.
Den SSH-Port ändern
Fügen Sie zuerst die neue Regel hinzu und entfernen Sie die alte erst, nachdem Sie sich am neuen Port angemeldet haben:
sudo ufw allow 2222/tcp
# change the port in sshd and test it
sudo ufw delete allow OpenSSH
Das ganze Verfahren, einschließlich des Sockets unter neueren Ubuntu-Versionen, steht unter SSH-Port ändern.
Eine Regel entfernen
Nach Nummer oder indem Sie die Regel nach delete wiederholen:
sudo ufw status numbered
sudo ufw delete 2
sudo ufw delete allow 22/tcp
Regeln werden doppelt aufgeführt, für IPv4 und IPv6, und die Nummern verschieben sich nach jedem Löschen, listen Sie sie also erneut auf, bevor Sie die nächste löschen. Außerdem sind eine Regel mit allow OpenSSH und eine mit allow 22/tcp getrennte Einträge, sodass am Ende beide vorhanden sein können.
Fragen
Wie prüfe ich, ob ufw SSH erlaubt?
Bei aktivem ufw zeigt sudo ufw status die Regeln: Suchen Sie 22/tcp, OpenSSH oder Ihren Port mit ALLOW. Ist ufw inaktiv, blendet status die Regeln aus, dann hilft sudo ufw show added.
Was ist der Unterschied zwischen ufw allow ssh und ufw allow OpenSSH?
ufw allow ssh nutzt den Port aus /etc/services und erscheint als 22/tcp. ufw allow OpenSSH nutzt das Anwendungsprofil, das das Paket openssh-server installiert, ebenfalls für 22/tcp. Beides funktioniert. Keines von beiden folgt einem Port, den Sie in sshd_config geändert haben.
Schützt ufw von Docker veröffentlichte Ports?
Nein. Laut Dokumentation von Docker umgehen veröffentlichte Container-Ports die Regeln von ufw.