Startseite
» LINUX
»
Wie man unter Linux mit UFW oder firewalld bestimmte Ports blockiert
Wie man unter Linux mit UFW oder firewalld bestimmte Ports blockiert
Um einen bestimmten Port unter Linux zu blockieren, fügen Sie eine Firewall-Regel für den gewünschten Port und das entsprechende Protokoll hinzu. Auf einem Ubuntu-System mit UFW werden beispielsweise sudo ufw deny 8080/tcpneue eingehende TCP-Verbindungen zu Port 8080 blockiert. Auf Systemen mit firewalld können Sie eine bestehende Portfreigabe entfernen oder eine explizite Ablehnungsregel hinzufügen. Wichtig ist, die tatsächlich verwendete Firewall Ihres Systems zu ändern und nicht UFW-, firewalld- und Low-Level-nftables-Regeln zu vermischen.
Bevor Sie einen Port blockieren
Prüfen Sie zunächst die Portnummer und ob die Anwendung TCP, UDP oder beides verwendet. Eine TCP-Regel blockiert UDP auf derselben Portnummer nicht automatisch. Sie können die Listening-Sockets auch mit folgendem Befehl überprüfen:
sudo ss -lntup
Eine Firewall-Regel steuert den Netzwerkverkehr; sie verhindert jedoch nicht, dass die Anwendung lokal auf Verbindungen wartet. Wenn Sie den Dienst gar nicht benötigen, ist es in der Regel besser, ihn zu beenden oder zu deaktivieren, als sich ausschließlich auf eine Firewall-Regel zu verlassen.
Wenn Sie per SSH mit dem Rechner verbunden sind, schützen Sie Ihre Fernzugriffsregel, bevor Sie die Firewall aktivieren oder die Sicherheitseinstellungen anpassen. Das aktuelle UFW-Handbuch warnt ausdrücklich davor, dass die Aktivierung von UFW bestehende SSH-Verbindungen unterbrechen kann, und empfiehlt, die erforderliche SSH-Berechtigung zuerst hinzuzufügen.
Einen Port mit UFW blockieren
Ubuntu dokumentiert UFW als Standard-Firewall-Konfigurationstool . UFW ist normalerweise standardmäßig deaktiviert; überprüfen Sie daher den Status, bevor Sie Regeln hinzufügen oder aktivieren.
1. Überprüfen Sie UFW und aktivieren Sie es sicher.
sudo ufw status
Wenn das Ergebnis positiv ist Status: inactiveund Sie UFW aktivieren möchten, erlauben Sie zuerst den von Ihnen verwendeten Fernverwaltungsdienst. Für ein Standard-OpenSSH-Profil:
sudo ufw allow OpenSSH
sudo ufw enable
Prüfen Sie, ob UFW aktiv ist, bevor Sie die Regeln ändern, insbesondere auf einem fernverwalteten Rechner.
2. Fügen Sie eine Ablehnungsregel für den Port hinzu.
Ersetzen Sie dies 8080durch den Port, den Sie blockieren möchten. Geben Sie das Protokoll an, damit die Regel eindeutig ist:
sudo ufw deny 8080/tcp
Für UDP verwenden Sie:
sudo ufw deny 8080/udp
Wenn eine Anwendung beide Protokolle verwendet, fügen Sie beide Regeln hinzu. UFW unterstützt auch die Ablehnung reject; im Gegensatz zu einer stillen Ablehnung signalisiert eine Ablehnung dem Absender, dass die Verbindung verweigert wurde.
Eine UFW-Verweigerungsregel blockiert eingehenden TCP-Datenverkehr zum gewählten Port.
3. Überprüfen oder entfernen Sie die UFW-Regel.
sudo ufw status numbered
Die Ausgabe sollte einen DENY IN- Eintrag für den blockierten Port anzeigen. Die offizielle UFW-Syntax unterstützt auch das Löschen der Regel durch Wiederholung mit einem Doppelpunkt delete.
sudo ufw delete deny 8080/tcp
Verwenden Sie die nummerierte Statusausgabe, um zu bestätigen, dass die beabsichtigte UFW-Regel aktiv ist.
Einen Port mit firewalld blockieren
Wenn Ihre Linux-Installation firewalld verwendet, beginnen Sie mit der Ermittlung der aktiven Zone:
Ersetzen Sie publicdie unten stehenden Angaben, falls Ihre Schnittstelle zu einer anderen Zone gehört. Falls Port 8080 explizit geöffnet wurde, entfernen Sie diese Freigabe und laden Sie die permanente Konfiguration neu:
Mit firewalld müssen Sie die Änderung in der richtigen aktiven Zone vornehmen und die permanenten Regeln neu laden.
Falls der Port indirekt über eine Dienstdefinition zugelassen ist oder Sie ihn explizit blockieren möchten, fügen Sie eine umfangreiche Ablehnungsregel hinzu:
Bestätigen Sie, dass der Port nicht mehr erreichbar ist.
Führen Sie den Befehl sudo ss -lntuperneut aus, um zu prüfen, ob eine Anwendung noch aktiv ist. Testen Sie anschließend von einem anderen Rechner im selben Netzwerk. Falls Netcat installiert ist, kann ein TCP-Check beispielsweise so aussehen: [Beispielcode] nc -vz SERVER_IP 8080. Testen Sie über denselben Netzwerkpfad, den Ihre Clients verwenden; ein Test auf localhost beweist nicht, dass externer Datenverkehr blockiert ist.
Sollte der Dienst niemals öffentlich zugänglich sein, deaktivieren oder konfigurieren Sie ihn entsprechend. Eine Firewall ist eine Zugriffskontrollschicht und kein Ersatz für das Entfernen unnötiger Listener.