|
|
(51 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) |
Zeile 1: |
Zeile 1: |
| {{DISPLAYTITLE:ufw}}
| |
| '''U'''ncomplicated '''F'''ire'''W'''all ist eine Schnittstelle zur Konfiguration des Paketfilters <tt>iptables</tt>, die darauf ausgerichtet ist, die Konfiguration einer Firewall zu vereinfachen.
| |
|
| |
| = Installation =
| |
| # apt install ufw
| |
|
| |
| = Konfiguration =
| |
| == SSH erlauben ==
| |
| Für den Fall, daß die Firewall auf einem entfernten Rechner eingerichtet werden soll, ist zwingend darauf zu achten, daß vor deren Aktiviierung der entsprechnede Port für [https://de.wikipedia.org/wiki/Secure_Shell SSH]-Verbindungen zugelassen wird:
| |
| # ufw allow ssh
| |
| oder
| |
| # ufw allow 22
| |
|
| |
| Da mit der Datei ''/etc/services'' eine Liste existiert, in der für jeden Dienst eine Port-Nummer hinterlegt ist, kann bei der Erstellung der Regeln gewählt werden, ob der jeweilige Dienst (hier: ssh) oder die Port-Nummer (hier: 22) angegeben wird.
| |
|
| |
| Sollte der Dienst SSH so konfiguriert worden sein, daß dieser einen abweichenden Port verwendet (hier: 2222), kann auch dieser bei Erstellung der Regel angegeben werden:
| |
| # ufw allow 2222
| |
|
| |
| == UFW aktivieren ==
| |
| Das Starten der Firewall erfolgt mit dem Kommando:
| |
| # ufw enable
| |
|
| |
| Sollte die Einrichtung der Firewall über eine bereits aktive SSH-Sitzung erfolgen, wird eine Meldung ausgegeben, die davor warnt, daß die Verbindung gestört werden könnte:
| |
| # ufw enable
| |
| Command may disrupt existing ssh connections.
| |
| * Proceed with operation (y|n)? y
| |
| Firewall is active and enabled on system startup
| |
|
| |
| Wurde die Regel für SSH-Verbindungen bereits erstellt, kann die Frage mit '''y'''(es) beantwortet werden.
| |
|
| |
| Die Firewall sollte nun aktiv sein.
| |
| * Der aktuelle Status kann wie folgt abgefragt werden:
| |
|
| |
| # ufw status verbose
| |
| Status: active
| |
| Logging: on (low)
| |
| Default: deny (incoming), allow (outgoing), disabled (routed)
| |
| New profiles: skip
| |
|
| |
| To Action From
| |
| -- ------ ----
| |
| 22/tcp ALLOW IN Anywhere
| |
| 22/tcp (v6) ALLOW IN Anywhere (v6)
| |
|
| |
| == IPv6 ==
| |
|
| |
| Ist eine Unterstützung von IPv6 erforderlich, muß dies zunächst mit einem Eintrag in der Konfigurationsdatei aktiviert werden:
| |
|
| |
| # vi /etc/default/ufw
| |
|
| |
| Hier muß sichergestellt werden, daß der Eintrag ''IPV6=yes'' existiert:
| |
|
| |
| # /etc/default/ufw
| |
| #
| |
|
| |
| # Set to yes to apply rules to support IPv6 (no means only IPv6 on loopback
| |
| # accepted).
| |
| * You will need to 'disable' and then 'enable' the firewall for
| |
| # the changes to take affect.
| |
| '''IPV6=yes'''
| |
|
| |
| Wurde dieser Eintrag hinzugefügt, werden die entsprechenden Regeln sowohl für IPv4, als auch für IPv6 erstellt.
| |
|
| |
| == Standardrichtlinien ==
| |
| * Standardrichtlinien sollten zuerst erstellt werden & definieren das Verhalten der Firewall, wenn keine der anderen Regeln auf die jeweilige Situation passt.
| |
| * Die Standardeinstellung ist die, dass eingehende Verbindungen abgelehnt & ausgehende Verbindungen zugelassen werden - so wird sichergestellt, dass niemand den entsprechenden Rechner von außen erreichen kann, während Anwendungen mit der Außenwelt kommunizieren können.
| |
| * Dieses Standardverhalten lässt sich mit den folgenden Befehlen wiederherstellen:
| |
|
| |
| # ufw default deny incoming
| |
| # ufw default allow outgoing
| |
|
| |
| * Zum Schutz eines Arbeitsplatzrechners könnten diese Standardeinstellungen bereits ausreichen, während die Regeln von Rechnern, die ihre Dienste Clients zur Verfügung stellen (Web-Server, Mail-Server, etc.) entsprechend angepasst werden müssen.
| |
|
| |
| == ICMP ==
| |
| Um [https://de.wikipedia.org/wiki/Internet_Control_Message_Protocol ICMP]-Anfragen zu blockieren, ist eine Anpassung der Standardeinstellungen erforderlich, da hierfür keine Regeln mit '''ufw''' über die Kommandozeile definiert werden können.
| |
| * Die Dateien, die zu diesem Zweck editiert werden müssen, finden sich im Verzeichnis '''/etc/ufw''' mit den Namen '''before.rules''' (für IPv4) und '''before6.rules''' (für IPv6):
| |
|
| |
| <div class="toccolours mw-collapsible mw-collapsed">
| |
| '''before.rules'''
| |
| <div class="mw-collapsible-content">
| |
| ...
| |
| # ok icmp codes for INPUT
| |
| -A ufw-before-input -p icmp --icmp-type destination-unreachable -j ACCEPT
| |
| -A ufw-before-input -p icmp --icmp-type time-exceeded -j ACCEPT
| |
| -A ufw-before-input -p icmp --icmp-type parameter-problem -j ACCEPT
| |
| -A ufw-before-input -p icmp --icmp-type echo-request -j ACCEPT
| |
| ...
| |
| </div>
| |
| </div>
| |
|
| |
| <div class="toccolours mw-collapsible mw-collapsed">
| |
| '''before6.rules'''
| |
| <div class="mw-collapsible-content">
| |
| ...
| |
| # ok icmp codes for INPUT (rfc4890, 4.4.1 and 4.4.2)
| |
| -A ufw6-before-input -p icmpv6 --icmpv6-type destination-unreachable -j ACCEPT
| |
| -A ufw6-before-input -p icmpv6 --icmpv6-type packet-too-big -j ACCEPT
| |
| # codes 0 and 1
| |
| -A ufw6-before-input -p icmpv6 --icmpv6-type time-exceeded -j ACCEPT
| |
| # codes 0-2 (echo-reply needs to be before INVALID, see above)
| |
| -A ufw6-before-input -p icmpv6 --icmpv6-type parameter-problem -j ACCEPT
| |
| -A ufw6-before-input -p icmpv6 --icmpv6-type echo-request -j ACCEPT
| |
| -A ufw6-before-input -p icmpv6 --icmpv6-type router-solicitation -m hl --hl-eq 255 -j ACCEPT
| |
| -A ufw6-before-input -p icmpv6 --icmpv6-type router-advertisement -m hl --hl-eq 255 -j ACCEPT
| |
| -A ufw6-before-input -p icmpv6 --icmpv6-type neighbor-solicitation -m hl --hl-eq 255 -j ACCEPT
| |
| -A ufw6-before-input -p icmpv6 --icmpv6-type neighbor-advertisement -m hl --hl-eq 255 -j ACCEPT
| |
| # IND solicitation
| |
| -A ufw6-before-input -p icmpv6 --icmpv6-type 141 -m hl --hl-eq 255 -j ACCEPT
| |
| # IND advertisement
| |
| -A ufw6-before-input -p icmpv6 --icmpv6-type 142 -m hl --hl-eq 255 -j ACCEPT
| |
| # MLD query
| |
| -A ufw6-before-input -p icmpv6 --icmpv6-type 130 -s fe80::/10 -j ACCEPT
| |
| # MLD report
| |
| -A ufw6-before-input -p icmpv6 --icmpv6-type 131 -s fe80::/10 -j ACCEPT
| |
| # MLD done
| |
| -A ufw6-before-input -p icmpv6 --icmpv6-type 132 -s fe80::/10 -j ACCEPT
| |
| # MLD report v2
| |
| -A ufw6-before-input -p icmpv6 --icmpv6-type 143 -s fe80::/10 -j ACCEPT
| |
| # SEND certificate path solicitation
| |
| -A ufw6-before-input -p icmpv6 --icmpv6-type 148 -m hl --hl-eq 255 -j ACCEPT
| |
| # SEND certificate path advertisement
| |
| -A ufw6-before-input -p icmpv6 --icmpv6-type 149 -m hl --hl-eq 255 -j ACCEPT
| |
| # MR advertisement
| |
| -A ufw6-before-input -p icmpv6 --icmpv6-type 151 -s fe80::/10 -m hl --hl-eq 1 -j ACCEPT
| |
| # MR solicitation
| |
| -A ufw6-before-input -p icmpv6 --icmpv6-type 152 -s fe80::/10 -m hl --hl-eq 1 -j ACCEPT
| |
| # MR termination
| |
| -A ufw6-before-input -p icmpv6 --icmpv6-type 153 -s fe80::/10 -m hl --hl-eq 1 -j ACCEPT
| |
| ...
| |
| </div>
| |
| </div>
| |
|
| |
| Diese Dateien müssen so modifiziert werden, daß am Ende jeder Zeile des Abschnitts '''# ok icmp codes for INPUT''' das Schlüsselwort '''ACCEPT''' gegen '''DROP''' ausgetauscht wird.
| |
|
| |
|
| |
| = Regeln =
| |
| == Verbindungen erlauben ==
| |
| Jetzt können bzw.
| |
| * sollten alle anderen Regeln erstellt werden.
| |
| * Welche Ports von außen erreichbar sein sollen, hängt davon ab, welche Dienste auf dem entsprechenden Server ausgeführt werden.
| |
| * Ist dies beispielsweise ein Web-Server, so müssen Regeln definiert werden, die den Zugriff auf Port 80 (HTTP unverschlüsselt) bzw.
| |
| * Port 443 (HTTPS verschlüsselt) gestatten:
| |
|
| |
| # ufw allow http
| |
| Rule added
| |
| Rule added (v6)
| |
|
| |
| # ufw allow https
| |
| Rule added
| |
| Rule added (v6)
| |
|
| |
| Analog der Regeldefinition für SSH, kann dies auch durch Angabe der zu öffnenden Port-Nummern geschehen:
| |
|
| |
| # ufw allow 80
| |
| Rule added
| |
| Rule added (v6)
| |
|
| |
| # ufw allow 443
| |
| Rule added
| |
| Rule added (v6)
| |
|
| |
| === Port-Bereiche ===
| |
| Neben der Angabe von Port-Nummern bzw.
| |
| * Dienstnamen, besteht auch die Möglichkeit der Angabe eines Port-Bereiches.
| |
| * Dies ist für Anwendungen sinnvoll, die mehrere Ports verwenden.
| |
| * So können Verbindungen zum X11-Server über die Port-Nummern 6000 bis 6007 erfolgen:
| |
|
| |
| # ufw allow 6000:6007/tcp
| |
| # ufw allow 6000:6007/udp
| |
|
| |
| Hierbei ist jedoch darauf zu achten, daß bei der Verwendung von Port-Bereichen die Angabe getätigt wird, für welches Protokoll die Regeln gelten sollen - TCP oder UDP.
| |
| * Werden nur Port-Nummern angegeben, erfolgt die Freigabe für jeweils beide Protokolle.
| |
|
| |
| === Spezifische IP-Adressen ===
| |
| Die Konfiguration ist nicht auf die Angabe von Port-Nummern beschränkt, sondern kann auch über die Angabe von spezifischen IP-Adressen erfolgen.
| |
| * Sollen beispielsweise Verbindungen ausgehend von der IP-Adresse ''203.0.113.4'' zugelassen werden, so wird dies durch folgende Regel gewährleistet:
| |
|
| |
| # ufw allow from 203.0.113.4
| |
| Rule added
| |
|
| |
| Um den Zugriff noch restriktiver zu gestalten, kann zusätzlich zur IP-Adresse ein Port angegeben werden.
| |
| * Dies wird mit '''to any port''' gefolgt von der gewünschten Port-Nummer bewerkstelligt:
| |
|
| |
| # ufw allow from 203.0.113.4 to any port 22
| |
| Rule added
| |
|
| |
| === Subnetze ===
| |
| Soll der Zugriff allen IP-Adressen eines bestimmten Subnetzes gestattet werden, kann dies durch die Angabe einer Netzmaske nach der [https://de.wikipedia.org/wiki/Classless_Inter-Domain_Routing CIDR-Notation] konfiguriert werden.
| |
| * Beispielsweise gestattet der folgende Befehl den Zugriff von Geräten des IP-Adressbereiches von 203.0.113.'''1''' bis 203.0.113.'''254''':
| |
|
| |
| # ufw allow from 203.0.113.0/24
| |
|
| |
| Auch hier läßt sich der Zugriff auf einen spezifischen Port beschränken:
| |
|
| |
| # ufw allow from 203.0.113.0/24 to any port 22
| |
|
| |
| === Spezifische Netzwerkschnittstellen ===
| |
| Verfügt ein Gerät über mehrere Netzwerkschnittstellen, so kann mit der Angabe von '''allow in on''' der Zugriff auf eine dieser Schnittstellen beschränkt werden.
| |
| * Der anzugebende Name der entsprechenden Schnittstelle läßt sich mit dem Befehl '''ip a''' ermitteln:
| |
|
| |
| $ ip a
| |
| ...
| |
| 2: '''eth0''': <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
| |
| ...
| |
| 3: '''wlan0''': <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
| |
| ...
| |
|
| |
| Für einen Web-Server mit der öffentlichen Netzwerkschnittstelle '''eth0''' kann der Verkehr über Port 80 (HTTP) durch folgende Regel zugelassen werden:
| |
|
| |
| # ufw allow in on eth0 to any port 80
| |
|
| |
| == Verbindungen verbieten ==
| |
| Ebenso, wie das explizite Zulassen von Verbindungen, können auch Regeln erstellt werden, die bestimmte Zugriffe verbieten.
| |
| * An die Stelle von Regeln, die das Schlüsselwort '''allow''' verwenden, treten nun solche, die das Schlüsselwort '''deny''' enthalten.
| |
| * Mit solchen Regeln bietet sich beispielsweise die Möglichkeit, einem IP-Adressbereich den Zugriff zu gewähren, während einzelne Geräte aus diesem davon ausgenommen werden:
| |
|
| |
| # ufw deny from 192.168.200.10 to any port 22
| |
| # ufw deny from 192.168.200.20 to any port 22
| |
| # ufw allow from 192.168.200.0/24 to any port 22 proto tcp
| |
|
| |
| Hierbei ist jedoch unbedingt die Reihenfolge zu beachten, in der die Regeln erstellt werden, da die Regel Anwendung findet, die auf die jeweilige Situation zuerst passt.
| |
|
| |
| == Regeln löschen ==
| |
|
| |
| Bereits erstellte Regeln lassen sich mit dem Schlüsselwort '''delete''' auch wieder entfernen.
| |
| * Dies kann über Angabe der Regelnummer bzw.
| |
| * der vollständigen Regel erreicht werden.
| |
|
| |
| === Löschen über die Regelnummer ===
| |
| Zur Ermittlung der Regelnummer wird '''ufw status''' mit dem Schalter '''numbered''' aufgerufen:
| |
|
| |
| # ufw status numbered
| |
| Status: active
| |
|
| |
| To Action From
| |
| -- ------ ----
| |
| [1] 22/tcp ALLOW IN Anywhere
| |
| [2] 80/tcp ALLOW IN Anywhere
| |
| [3] 443/tcp ALLOW IN Anywhere
| |
| [4] 22/tcp (v6) ALLOW IN Anywhere (v6)
| |
| [5] 80/tcp (v6) ALLOW IN Anywhere (v6)
| |
| [6] 443/tcp (v6) ALLOW IN Anywhere (v6)
| |
|
| |
| Das Löschen einer Regel erfolgt anschließend durch das Kommando '''ufw delete''', gefolgt von der jeweiligen Nummer der Regel.
| |
| * Um unbeabsichtigtes Löschen zu vermeiden, muß der Vorgang mit ('''y''')es bestätigt werden:
| |
|
| |
| # ufw delete 2
| |
| Deleting:
| |
| allow 80/tcp
| |
| Proceed with operation (y|n)? y
| |
| Rule deleted
| |
|
| |
| Eine erneute Statusabfrage bestätigt das Entfernen der Regel:
| |
|
| |
| # ufw status numbered
| |
| Status: active
| |
|
| |
| To Action From
| |
| -- ------ ----
| |
| [1] 22/tcp ALLOW IN Anywhere
| |
| [2] 443/tcp ALLOW IN Anywhere
| |
| [3] 22/tcp (v6) ALLOW IN Anywhere (v6)
| |
| [4] 80/tcp (v6) ALLOW IN Anywhere (v6)
| |
| [5] 443/tcp (v6) ALLOW IN Anywhere (v6)
| |
|
| |
| === Löschen über vollständige Regel ===
| |
| Die Alternative zum Löschen über die Regelnummer ist, daß dem Kommando '''ufw deny''' die vollständige Regel hintangestellt wird:
| |
|
| |
| # ufw status
| |
| Status: active
| |
|
| |
| To Action From
| |
| -- ------ ----
| |
| 22/tcp ALLOW Anywhere
| |
| 80 ALLOW Anywhere
| |
| 80/tcp ALLOW Anywhere
| |
| 22/tcp (v6) ALLOW Anywhere (v6)
| |
| 80/tcp (v6) ALLOW Anywhere (v6)
| |
|
| |
| # ufw delete allow http
| |
| Rule deleted
| |
| Rule deleted (v6)
| |
|
| |
| Hinweis: Es werden jeweils beide Regeln (IPv4 & IPv6) gelöscht.
| |
| * Hierbei erfolgt keine Bestätigungsabfrage.
| |
|
| |
| # ufw status
| |
| Status: active
| |
|
| |
| To Action From
| |
| -- ------ ----
| |
| 22/tcp ALLOW Anywhere
| |
| 22/tcp (v6) ALLOW Anywhere (v6)
| |
|
| |
| = Status & Reset =
| |
| == Statusüberprüfung ==
| |
| # ufw status
| |
| Status: inactive
| |
|
| |
| # ufw status
| |
| Status: active
| |
|
| |
| To Action From
| |
| -- ------ ----
| |
| 22/tcp ALLOW Anywhere
| |
| 22/tcp (v6) ALLOW Anywhere (v6)
| |
|
| |
| # ufw status numbered
| |
| Status: active
| |
|
| |
| To Action From
| |
| -- ------ ----
| |
| [ 1] 22/tcp ALLOW IN Anywhere
| |
| [ 2] 22/tcp (v6) ALLOW IN Anywhere (v6)
| |
|
| |
| # ufw status verbose
| |
| Status: active
| |
| Logging: on (low)
| |
| Default: deny (incoming), allow (outgoing), disabled (routed)
| |
| New profiles: skip
| |
|
| |
| To Action From
| |
| -- ------ ----
| |
| 22/tcp ALLOW IN Anywhere
| |
| 22/tcp (v6) ALLOW IN Anywhere (v6)
| |
|
| |
| == Start & Stop von UFW ==
| |
| Mit der Option '''disable''' läßt sich die Firewall deaktivieren:
| |
|
| |
| # ufw disable
| |
| Firewall stopped and disabled on system startup
| |
|
| |
| Die Aktivierung erfolgt mit dem Schlüsselwort '''enable''':
| |
|
| |
| # ufw enable
| |
| Command may disrupt existing ssh connections.
| |
| * Proceed with operation (y|n)? y
| |
| Firewall is active and enabled on system startup
| |
|
| |
| Ein Neustart der Firewall erfolgt mit der Option '''reload''':
| |
| # ufw reload
| |
| Firewall reloaded
| |
|
| |
| == Zurücksetzen der Firewall ==
| |
| Sollen die Standardeinstellungen der Firewall wiederhergestellt werden, kann dies mit der Option '''reset''' erreicht werden und erfordert eine Bestätigung mit '''y''':
| |
|
| |
| <div class="toccolours mw-collapsible mw-collapsed">
| |
| # ufw reset
| |
| Resetting all rules to installed defaults.
| |
| * This may disrupt existing ssh
| |
| connections.
| |
| * Proceed with operation (y|n)? y
| |
| <div class="mw-collapsible-content">
| |
| Backing up 'user.rules' to '/etc/ufw/user.rules.20210222_111416'
| |
| Backing up 'before.rules' to '/etc/ufw/before.rules.20210222_111416'
| |
| Backing up 'after.rules' to '/etc/ufw/after.rules.20210222_111416'
| |
| Backing up 'user6.rules' to '/etc/ufw/user6.rules.20210222_111416'
| |
| Backing up 'before6.rules' to '/etc/ufw/before6.rules.20210222_111416'
| |
| Backing up 'after6.rules' to '/etc/ufw/after6.rules.20210222_111416'
| |
| </div>
| |
| </div>
| |
|
| |
| Dies bewirkt eine Deaktivierung der Firewall und das Löschen sämtlicher zuvor definierter Regeln.
| |
| * Es erfolgt jedoch eine Sicherung der benutzerdefinierten Regeln in entsprechende Backup-Dateien.
| |
| * Zu beachten ist hierbei, daß die Standardrichtlinien, sofern diese geändert wurden, nicht zurückgesetzt werden.
| |
|
| |
| = Grafische Benutzeroberfläche =
| |
| Sollte sich die Konfiguration der ''unkomplizierten'' Firewall über die Kommandozeile dennoch als zu kompliziert erweisen, existiert mit '''gufw''' eine grafisches Frontend, welches ebenfalls über die Paketverwaltung installierbar ist:
| |
|
| |
| # apt install gufw
| |
|
| |
| * Nach dem Start der Anwendung muß die Firewall, wenn nicht bereits via Terminal geschehen, zunächst aktiviert werden.
| |
| * Dies geschieht mit dem Schalter neben ''Status:''.
| |
| * Ist die Firewall nun aktiv, verhält sie sich gemäß den Standardrichtlinien so, daß ausgehende Verbindungen erlaubt und eingehende blockiert werden.
| |
| * Für einen gewöhnlichen Arbeitsplatzrechner könnte die Konfiguration hiermit bereits abgeschlossen sein.
| |
|
| |
| [[Datei:Gufw1.png|mini|ohne|Nach dem Start]]
| |
|
| |
| * Über das Drop-Down-Menü ''Profile:'' lassen sich unterschiedliche Einstellungen für verschiedene Umgebungen aktivieren (''Büro, Zuhause, Öffentlich'').
| |
| * Eigene Profile können über ''Bearbeiten --> Einstellungen'' hinzugefügt (+) oder entfernt (-) werden.
| |
| * Hier kann auch die Einstellung des Log-Levels (''Niedrig ..
| |
| * Vollständig'') verändert, bzw.
| |
| * die Protokollierung abgeschaltet werden.
| |
|
| |
| [[Datei:Gufw-Einstellungen.png|mini|ohne|Einstellungen]]
| |
|
| |
| * Mit einem Klick auf die Registerkarte ''Regeln'' wird eine Liste der benutzerdefinierten Regeln angezeigt, die anfänglich noch keine Einträge enthält.
| |
| * Hier lassen sich eigene Regeln hinzufügen (+), entfernen (-) und bearbeiten (<big>☼</big>).
| |
|
| |
| [[Datei:Gufw-Regelerstellung.png|1100px|ohne|Definition von Regeln]]
| |
|
| |
| = Referenz =
| |
| == Programmoptionen ==
| |
| {| class="wikitable"
| |
| |-
| |
| ! Option !! Beschreibung
| |
| |-
| |
| | --help || Auflistung möglicher Optionen
| |
| |-
| |
| | --dry-run || detaillierte Ansicht einer Regel, ohne diese anzuwenden
| |
| |-
| |
| | enable || aktiviert die Firewall und deren Ausführung beim Systemstart
| |
| |-
| |
| | disable || deaktiviert die Firewall und deren Ausführung beim Systemstart
| |
| |-
| |
| | reload || Neustart der Firewall
| |
| |-
| |
| | reset || Deaktivierung der Firewall und Zurücksetzen auf Standardeinstellungen
| |
| |-
| |
| | status || Ausgabe des Status und aktiver Regeln
| |
| |-
| |
| | show ||
| |
| |-
| |
| | logging [off, low, medium, high, full] || Log-Level (Ausführlichkeit mit der Zugriffe protokolliert werden)
| |
| |-
| |
| |}
| |
|
| |
| == Regeldefinition ==
| |
| {| class="wikitable"
| |
| |-
| |
| ! Option !! Beschreibung !! Beispiel
| |
| |-
| |
| | colspan="3" | '''Aktion'''
| |
| |-
| |
| | allow || Verbindung erlauben || ufw ''allow'' ssh
| |
| |-
| |
| | deny || Verbindung ablehnen || ufw ''deny'' http
| |
| |-
| |
| | limit || erlauben - jedoch maximal 6 Verbindungen innerhalb von 30 Sekunden || ufw ''limit'' ssh
| |
| |-
| |
| | reject || lehnt die Verbindung ab - informiert jedoch den Absender ||
| |
| |-
| |
| | colspan="3" | '''Richtung'''
| |
| |-
| |
| | in || eingehende Verbindung || ufw allow ''in'' to any port 22
| |
| |-
| |
| | out || ausgehende Verbindung || ufw deny ''out'' to any port 22
| |
| |-
| |
| | colspan="3" | '''Protokoll'''
| |
| |-
| |
| | proto [ tcp / udp ] || Regel auf Protokoll beschränken (TCP oder UDP) || ufw allow ''proto tcp'' to any port 22 (kürzer: ufw allow 22/tcp)
| |
| |-
| |
| | colspan="3" | '''Port'''
| |
| |-
| |
| | port [N] || Regel gilt für einen Port N || ufw allow 6660
| |
| |-
| |
| | port [N1],[N2]..[N15] || Regel gilt für eine Liste von Ports (maximal 15) || ufw allow 6660,6670,6680
| |
| |-
| |
| | port [N1]:[N2] || Regel gilt für einen Port-Bereich von N1 bis N2 || ufw allow 6660:6670
| |
| |-
| |
| | colspan="3" | '''Adresse'''
| |
| |-
| |
| | a.b.c.d || Regel auf eine IP-Adresse beschränken || ufw allow from 192.168.100.123
| |
| |-
| |
| | a.b.c.d/N || Regel für Subnetz || ufw allow from 192.168.100.1/24
| |
| |-
| |
| | 0.0.0.0 / any || Regel gilt für beliebige Adressen ||
| |
| |-
| |
| | || ||
| |
| |-
| |
| |}
| |
|
| |
| == Konfigurationsdateien ==
| |
| {| class="wikitable"
| |
| |-
| |
| ! Datei !! Funktion
| |
| |-
| |
| | /usr/sbin/ufw || das Programm selbst
| |
| |-
| |
| | /etc/default/ufw || Haupteinstellungen
| |
| |-
| |
| | /etc/ufw/ufw.conf || Einstellungen
| |
| |-
| |
| | /etc/ufw/before.rules || Regeln vor den benutzerdefinierten Regeln
| |
| |-
| |
| | /etc/ufw/user.rules || mit '''ufw''' erstellte, benutzerdefinierte Regeln
| |
| |-
| |
| | /etc/ufw/after.rules || Regeln nach den benutzerdefinierten Regeln
| |
| |-
| |
| | /etc/ufw/applications.d || Anwendungsprofile
| |
| |-
| |
| ! colspan="2" |
| |
| |-
| |
| | /etc/services (Systemdatei) || Auflistung von Ports & der zugehörigen Dienste
| |
| |-
| |
|
| |
| |-
| |
| |}
| |
|
| |
| = Kontrollfragen =
| |
| <div class="toccolours mw-collapsible mw-collapsed">
| |
|
| |
| Wie verhält sich die Firewall, wenn sie direkt nach der Installation gestartet wird?
| |
|
| |
| <div class="mw-collapsible-content">
| |
| Sämtliche eingehenden Zugriffe werden blockiert, während ausgehende Verbindungen zugelassen werden.
| |
| </div>
| |
| </div>
| |
|
| |
| <div class="toccolours mw-collapsible mw-collapsed">
| |
| Was ist vor dem Starten der Firewall zu beachten, wenn sie aus der Ferne administriert werden soll?
| |
| <div class="mw-collapsible-content">
| |
| Es ist unbedingt darauf zu achten, daß vor der Aktivierung eine Regel für den SSH-Zugriff definiert wird, um sich nicht selbst auszusperren.
| |
| </div>
| |
| </div>
| |
|
| |
| <div class="toccolours mw-collapsible mw-collapsed">
| |
| Gesetzt den Fall, daß Port 22 für SSH geöffnet werden muß - wie läßt sich einem Brute-Force-Angriff auf diesem Port entgegenwirken?
| |
| <div class="mw-collapsible-content">
| |
| Mit dem Kommando '''ufw limit ssh/tcp''' läßt sich die Anzahl der erlaubten Zugriffe auf 6 pro 30 Sekunden limitieren.
| |
| </div>
| |
| </div>
| |
|
| |
| <div class="toccolours mw-collapsible mw-collapsed">
| |
| Definieren Sie eine Regel, die den Zugriff auf den Port 12345 nur von der IP-Adresse 60.70.80.90 zulässt!
| |
| <div class="mw-collapsible-content">
| |
|
| |
| # ufw allow from 60.70.80.90 to any port 12345
| |
|
| |
| </div>
| |
| </div>
| |
|
| |
| <div class="toccolours mw-collapsible mw-collapsed">
| |
| Sie betreiben einen Web-Server, der ständig aus dem Netzwerk 60.70.80.0 angegriffen wird.
| |
| * Mit welcher Regel können Sie dies unterbinden?
| |
| <div class="mw-collapsible-content">
| |
|
| |
| # ufw deny from 60.70.80.0/24
| |
|
| |
| </div>
| |
| </div>
| |
|
| |
| <div class="toccolours mw-collapsible mw-collapsed">
| |
| Wie müsste die Antwort der vorherigen Frage modifiziert werden, wenn Sie möchten, daß Ihre beste Freundin mit der IP-Adresse 60.70.80.90 auf Ihre Homepage zugreifen kann? Was ist hierbei zu beachten?
| |
| <div class="mw-collapsible-content">
| |
|
| |
| # ufw allow from 60.70.80.90 to any port 80,443
| |
| # ufw deny from 60.70.80.0/24
| |
|
| |
| Hierbei ist die Reihenfolge der beiden Regeln entscheidend, da die Firewall die erste zutreffende Regel anwendet.
| |
|
| |
| </div>
| |
| </div>
| |
|
| |
| = Links =
| |
| # https://www.digitalocean.com/community/tutorials/how-to-set-up-a-firewall-with-ufw-on-ubuntu-18-04
| |
|
| |
| [[Kategorie:Firewall]] | | [[Kategorie:Firewall]] |
| {{DEFAULTSORT:ufw}}
| |