Hinzufügen des http-Dienstes zur public-Zone und Testen mit einem Webserver
In diesem Schritt fügen Sie Ihrer Firewall eine Regel hinzu, um Web-Traffic zu erlauben, und demonstrieren dann die praktischen Auswirkungen, indem Sie einen einfachen Webserver ausführen. Standardmäßig blockiert firewalld
den meisten eingehenden Datenverkehr, um Ihr System zu schützen. Um bestimmte Verbindungen zuzulassen, müssen Sie Regeln für die Dienste hinzufügen, die Sie verfügbar machen möchten. firewalld
verwendet vordefinierte "Dienste", die leicht zu merkende Namen für Standard-Netzwerkports sind. Zum Beispiel entspricht der http
-Dienst dem TCP-Port 80, dem Standardport für unverschlüsselten Web-Traffic.
Zuerst überprüfen wir den aktuellen Firewall-Status für die public-Zone, bevor wir Änderungen vornehmen:
sudo firewall-cmd --zone=public --list-services
Sie werden feststellen, dass http
anfangs nicht in der Liste enthalten ist, was bedeutet, dass externe Verbindungen zu Port 80 blockiert sind.
Nun fügen wir den http
-Dienst zur public
-Zone hinzu. Sie verwenden den Befehl firewall-cmd
mit der Option --add-service
und geben die Zone an, die Sie ändern möchten:
sudo firewall-cmd --zone=public --add-service=http
Dieser Befehl weist firewalld
an, die public
-Zone zu ändern, indem die Regel für den http
-Dienst hinzugefügt wird. Die Änderung wird auf die Laufzeitkonfiguration angewendet, was bedeutet, dass sie sofort wirksam wird. Sie sollten eine Bestätigungsnachricht sehen:
success
Lassen Sie uns überprüfen, ob der Dienst hinzugefügt wurde, indem wir die Liste der Dienste erneut überprüfen:
sudo firewall-cmd --zone=public --list-services
Sie sollten nun http
in der Liste der erlaubten Dienste sehen.
Um die praktischen Auswirkungen zu demonstrieren, starten wir einen einfachen Webserver. Wir verwenden den integrierten HTTP-Server von Python auf Port 80:
cd /tmp
echo "<h1>Welcome to LabEx Firewall Demo</h1><p>This server is running on port 80</p>" > index.html
sudo python3 -m http.server 80
Beachten Sie, dass wir sudo
benötigen, da Port 80 ein privilegierter Port ist (unter 1024). Lassen Sie diesen Server in einem separaten Terminal laufen.
Testen Sie nun von einem anderen Terminal aus die Verbindung:
curl http://localhost
Die Verbindung funktioniert, da der http
-Dienst jetzt durch die Firewall erlaubt ist. Beachten Sie, dass localhost
-Verbindungen Firewall-Regeln umgehen können, aber der entscheidende Punkt ist, dass externe Verbindungen zu Port 80 nun von der Firewall zugelassen würden.
Um die Verwaltungsfähigkeiten der Firewall weiter zu veranschaulichen, entfernen wir den HTTP-Dienst vorübergehend:
sudo firewall-cmd --zone=public --remove-service=http
Überprüfen Sie die Liste der Dienste, um zu bestätigen, dass er entfernt wurde:
sudo firewall-cmd --zone=public --list-services
Sie sollten feststellen, dass http
nicht mehr in der Liste enthalten ist. Fügen Sie den Dienst nun wieder hinzu:
sudo firewall-cmd --zone=public --add-service=http
Überprüfen Sie erneut, ob er hinzugefügt wurde:
sudo firewall-cmd --zone=public --list-services
Sie haben nun erfolgreich gelernt, wie Sie den HTTP-Dienst in der Firewall verwalten und die Konfigurationsänderungen demonstriert. Das Kernkonzept ist, dass ohne die Regel für den http
-Dienst externe Verbindungen zu Port 80 von der Firewall blockiert würden, selbst wenn ein Webserver läuft. Sie können den Webserver mit Strg+C
stoppen, wenn Sie mit der Demonstration fertig sind.