.

Die Absicherung eines Linux Server wird für gewöhnlich über ‚iptables‘ realisiert. ‚iptables‘ sind ein mächtiges und umfangreiches Werkzeug. Und bedürfen daher einer intensiven Einarbeitung. UFW (Uncomplicated Firewall) stellt eine Schnittstelle zu den ‚iptables‘ her mit der die Absicherung des Server wesentlich leichter von der Hand geht.

Inhalt

Installation UFW
UFW einrichten
Die ssh Verbindung
Zulassen von Verbindungen
Weiter Konfigurationsmöglichkeiten von UFW
UFW aktivieren
UFW abschalten
Optional – IPv6 mit UFW

Voraussetzungen

- Systemzugriff als root oder Benutzer mit sudo Privilegien.

Installation UFW

Als erstes holen wir uns mit ‚apt install‘ die Uncomplicated Firewall auf den Server.

apt install ufw

UFW einrichten

Wenn euer Server unter einer IPv6 erreichbar ist schau dir erst unten den Punkt Optional – IPv6 mit UFW an.

Bevor wir Regeln für die einzelnen Softwarekomponenten des Server definieren müssen wir uns kurz die Standartrichtlinien anschauen. Diese werden für Verbindungsversuche angewendet für die keine spezielle Regel zutrifft.
Nach der Installation von UFW sind die Standartrichtlinien: „Alle Verbindungen die von außen auf den Server zugreifen wollen werden blockiert. Und alle Verbindungen die der Server versucht nach außen hin auf zu bauen werden zugelassen.

Wir können bei Bedarf UFW mit zwei kurzen Zeilen auf diese Standartrichtlinien zurück setzen.

ufw default deny incoming
ufw default allow outgoing

Die ssh Verbindung

Bei einem Server der irgendwo in einem Rechenzentrum läuft ist für die Administration ein Zugriff via ssh unabdingbar! Mit den Standartrichtlinien alleine würde dieser Zugriff aber verweigert. Somit ist es ganz wichtig das wir uns als erstes darum kümmern den ssh Zugriff zu gestatten. Wieder mal ein kurzer Einzeiler:

ufw allow ssh

Dieser Befehl sorgt dafür das Firewall Regeln erstellt werden um Verbindungsversuche auf dem Port 22 zuzulassen. Wodurch der Weg für die Administration von außen geebnet ist.

Lauscht der ssh-Daemon nicht auf dem Standartport 22 bringt uns das ‚allow ssh‘ natürlich nicht viel. In diesem Fall müssen wir statt ’ssh‘ den Port angeben auf dem der ssh Daemon lauscht, z.B. Port 2222.

ufw allow 2222

Zulassen von Verbindungen

Nun müssen wir uns Gedanken darüber machen auf welchen Ports die Komponenten unseres Servers auf Anfragen bzw. Zugriffe lauschen. Um diese Ports dann für Zugriffe von außen frei zu geben.

Die Freigabe von Ports für Standartdienste haben eigene Befehlsoptionen. Ebenso ist die Freigabe des Ports immer durch die Angabe des Ports machbar.

Regeln für Nginx

HTTP für unverschlüsselte Webserveranfragen lauscht auf Port 80.

ufw allow http

Oder nochmal als Beispiel, dass ich im weiteren Verlauf dieses Beitrags weg lasse.

ufw allow 80

HTTPS für verschlüsselte Kommunikation mit dem Webserver lauscht auf Port 443.

ufw allow https

FTP für den Fall das wir einen FTP Server betreiben möchten um bei Bedarf einfacher auf die Dateien der Website zugreifen zu können muss dessen Port natürlich auch frei gegeben werden. Er lauscht bei Standarteinstellung auf Port 21 & 20 (Verbindungsaufbau & Datenübertragung).

Regeln für den FTP Server

ufw allow ftp

Diese Art UFW zu Konfigurieren ist die einfachste Herangehensweise. Darüber hinaus gibt es noch viel weitere Möglichkeiten.

Weiter Konfigurationsmöglichkeiten von UFW

Einige Anwendungen nutzen nicht einen einzelnen Port für die Kommunikation sondern einen Bereich. So zum Beispiel die verschlüsselte Datenübertragung eines FTP Server, der via TLS/SSL verschlüsselt, läuft auf den Ports 989-990. Deren Freigabe lässt sich auch in einem Befehl an die UFW realisieren.

ufw allow <vonPort>:<bisPort> 

Andere Dienste benutzen nur ein Protokoll auf ihrem Kommunikationsport. Dann ist es natürlich auch ausreichend, nein, sogar Sinnvoll, nur dieses Protokoll auf dem Port frei zu geben.

ufw allow <port>/tcp

oder

ufw allow <vonPort>:<bisPort>/udp

Es ist auch machbar den Zugriff auf Spezielle IP-Adressen oder Subnetze zu beschränken. Als Beispiel fällt mir da als erstes die Intranet Seite eines Unternehmen ein. Allen die mehr darüber erfahren möchte dem empfehle ich den Blogbeitrag So richten Sie eine Firewall mit UFW unter Debian 10 ein auf www.codeflow.site

UFW aktivieren

Bevor ihr UFW auf eurem Server aktiviert, nochmal die Frage: Ist der Port auf dem der ssh Daemon laust für Zugriffe freigegeben?

Wenn ihr diese Frage mit ‚JA‘ beantworten könnt, kann UFW aktiviert werden.

ufw enable

Nach dem Ausführen des Befehls bekommt ihr die Frage oben auch nochmal von UFW gestellt und könnt sie ja jetzt beruhigt mit ‚y‘ und ‚Enter‘ bestätigen.

Mit dem fogenden Befehl bekommen wir die Regeln der Firewall angezeigt.

ufw status verbose

Regeln löschen

Genau so wichtig wie Regeln für die Firewall zu erstellen ist es manchmal diese auch wieder zu löschen. Fälle bei denen dies eintritt sind ein Dinst wird zukünftig auf einem anderen Port zur Verfügung gestellt oder der Dienst zieht auf einen anderen Server um und die Portfreigabe ist nicht mehr nötig.

Ich finde es am kofortabelsten mir erst die vorhandenen Regeln, mit den Zusatz einer Nummerierung anzeigen zu lassen. Um sie dann durch Angabe der Nummer zu löschen.

sudo ufw status numbered

Die dazugehörige Ausgabe sieht dann zum Beispiel so aus.

Status: active

     To                         Action      From
     --                         ------      ----
[ 1] ssh                        ALLOW IN    Anywhere                  
[ 2] Nginx Full                 ALLOW IN    Anywhere                  
[ 3] ftp                        ALLOW IN    Anywhere                                    
[ 4] ssh (v6)                   ALLOW IN    Anywhere (v6)             
[ 5] Nginx Full (v6)            ALLOW IN    Anywhere (v6)             
[ 6] ftp (v6)                   ALLOW IN    Anywhere (v6)                       

Zum löschen Regel für den FTP-Server/Port 21 müssen wir also Regel Nummer 3 und 6 löschen.

ufw delete 3

UFW abschalten

Es kann immer mal wieder vorkommen das man zu Testzwecken die Firewall kurzzeitig abschalten möchte. Wenn ein Zugriff nicht richtig funktioniert ist das der schnellste Weg um auszuschießen das es an der Firewall liegt.

ufw disable

Optional – IPv6 mit UFW

Viele Server sind heutzutage auch unter einer IPv6 Adresse erreichbar. Damit der Zugriff via IPv6 ebenfalls geschützt wird und die gewünschten Ports freigegeben werden sollte vorab in den Einstellungen von UFW IPv6 aktiviert werden.

nano /etc/default/ufw

Dort suchen wir nach ‚IPv6‘ und setzen es auf ‚yes‘

IPV6 = yes

Speichern mit ’strg + o‘ -> ‚Enter‘ und schließen mit ’strg + x‘.


0 Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.