Bevor wir beginnen:
Diesen Apache-Minikurs zum Mitnehmen gibt's im Fundus zum
Download .
Auf Ihrem (virtuellen) Linuxrechner laufen mehrere Netzwerkdienste, z.B. ein Web- und ein SSH-Server. Im Prinzip könnten Sie noch beliebige weitere Server auf dem Rechner nutzen wollen, z.B. VNC, RDP, Mail, FTP, DNS, DHCP, Cifs uvm.
Welche Netzwerkdienste Ihr Linux-Rechner anbietet,
finden Sie mit dem Konsolenbefehl netstat -tnlp
heraus.
Die Optionen des netstat-Befehls bedeuten:
-t: TCP -n: Ip-Adressen statt Rechnernamen -l: Listen (nur aktive Prozesse anzeigen) -p: Programmnamen anzeigen
root@debian:~# netstat -tnlp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 522/sshd tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 8401/mysqld tcp6 0 0 :::22 :::* LISTEN 522/sshd tcp6 0 0 ::1:3350 :::* LISTEN 471/xrdp-sesman tcp6 0 0 :::8443 :::* LISTEN 26599/java tcp6 0 0 :::443 :::* LISTEN 26100/apache2 tcp6 0 0 :::3389 :::* LISTEN 514/xrdp tcp6 0 0 127.0.0.1:38847 :::* LISTEN 26599/java tcp6 0 0 127.0.0.1:8101 :::* LISTEN 26599/java tcp6 0 0 :::5007 :::* LISTEN 26599/java tcp6 0 0 :::8080 :::* LISTEN 26599/java tcp6 0 0 :::80 :::* LISTEN 26100/apache2Box 1: Offene Ports eines typischen Linux-PCs
Möchten Sie, dass der Webserver global erreichbar ist, andere Dienste aber nur lokal verfügbar sind, müssen Sie unerwünschte Zugriffe herausfiltern. Diese Aufgabe wird im Folgenden mit eine Paket-Firewall realisiert.
Der Linuxkernel arbeitet mit einer so genannten Paketfirewall. Der Netzwerkverkehr wird mit Filterregeln bearbeitet. Filterregeln entscheiden anhand von IP-Adressen, Portnummern, Netzwerkdiensten und Protokollvarianten, ob Datenpakete durchgelassen werden, oder nicht.
Merke: Eine Paketfirewall entscheidet anhand einer Filtertabelle, wie und ob Datenpakete geleitet werden.
Die Tabelle Filter enthält drei Standardketten:
Die Filterregeln im Linuxkernel werden mit Hilfe des Befehls iptables
konfiguriert.
Der Funktionsumfang von iptables
ist dank einer komplexen Vielfalt von Optionen sehr groß.
Die Bedienung von iptables
ist somit nicht ganz einfach. Die Einarbeitung nimmt etwas Zeit in Anspruch
.
Genauere Informationen finden Sie im Debian-Handbuch.
Im Folgenden behandeln wir nur eingehenden Datenverkehr.
Dies bietet den Vorteil, sich nicht in iptables
einarbeiten zu müssen.
Wir verwenden statt iptables
die leichter zu bedienende Variante ufw
(Uncomplicated Firewall)
.
Ob das Paket ufw
bereits installiert ist, klären Sie mit
dem Befehl [sudo] dpkg -l | grep ufw
.
ii ufw 0.35-4 all program for managing a Netfilter firewall
Box 2: Das Paket 'ufw' ist in der Version '0.35-4' installiert. Es folgt eine Kurzbeschreibung.
Sollte es nicht installiert sein, können Sie dies mit der Befehlsfolge
[sudo] apt-get update
gefolgt von [sudo] apt-get upgrade
und [sudo] apt-get install ufw
nachholen.
Wichtige Befehle sind:
Befehl | Beschreibung |
---|---|
[sudo] ufw --help | Hilfe anzeigen |
[sudo] ufw status verbose | Betriebstatus und Firewallregeln anzeigen |
[sudo] ufw status numbered | Nummerierte Liste der Firewallregeln anzeigen |
[sudo] ufw delete xyz | Regel mit der Nummer xyz entfernen |
[sudo] ufw allow xyz | xyz erlauben |
[sudo] ufw deny xyz | xyz verbieten |
[sudo] ufw insert 2 xyz | Füge Regel xyz vor Zeile 2 ein |
{sudo] ufw enable | Firewall einschalten |
[sudo] ufw disable | Firewall ausschalten |
[sudo] ufw reset | Regeln entfernen, Firewall stoppen |
Wenn Sie die Firewall aktiviert haben, sollten Sie sich zuerst einmal den ausführlichen (engl. verbose) Status ansehen:
root@debian:~# ufw status verbose Status: active Logging: on (low) Default: deny (incoming), allow (outgoing), disabled (routed) New profiles: skip
Box 4: Ausführliche Anzeige des Status
ufw
mit root-Rechten ausführen?