UFW (Uncomplicated Firewall) ist eine iptables-Schnittstelle, die die Konfiguration einer Firewall vereinfacht. Das iptables-Tool ist zuverlässig und flexibel, aber für Neulinge ist es nicht einfach, es selbst zu konfigurieren. Ich bin gerade neu in diesem Geschäft.
Standardmäßig ist die ACCEPT-Richtlinie in iptables aktiviert und sieht folgendermaßen aus:

In unserem Beispiel gibt es keine Einschränkungen. Die Standardrichtlinie ist AKZEPTIEREN.
EINGANG - EINGANGSANSCHLÜSSE.
AUSGANG - AUSGANGSVERBINDUNGEN.
FORWARD - ROUTING (ZB IST ES ERFORDERLICH, EINE ROUTE an den Computer hinter dem Gateway zu schreiben).
Sie können ufw mit dem Befehl
sudo ufw enable
Unmittelbar nach diesem Befehl ändert sich die iptables-Richtlinie.
So sieht es auf BigBlueButton nach dem Einschalten von ufw aus:
Chain INPUT (policy DROP) target prot opt source destination ufw-before-logging-input all -- anywhere anywhere ufw-before-input all -- anywhere anywhere ufw-after-input all -- anywhere anywhere ufw-after-logging-input all -- anywhere anywhere ufw-reject-input all -- anywhere anywhere ufw-track-input all -- anywhere anywhere Chain FORWARD (policy DROP) target prot opt source destination ufw-before-logging-forward all -- anywhere anywhere ufw-before-forward all -- anywhere anywhere ufw-after-forward all -- anywhere anywhere ufw-after-logging-forward all -- anywhere anywhere ufw-reject-forward all -- anywhere anywhere ufw-track-forward all -- anywhere anywhere Chain OUTPUT (policy ACCEPT) target prot opt source destination ufw-before-logging-output all -- anywhere anywhere ufw-before-output all -- anywhere anywhere ufw-after-output all -- anywhere anywhere ufw-after-logging-output all -- anywhere anywhere ufw-reject-output all -- anywhere anywhere ufw-track-output all -- anywhere anywhere Chain ufw-after-forward (1 references) target prot opt source destination Chain ufw-after-input (1 references) target prot opt source destination ufw-skip-to-policy-input udp -- anywhere anywhere udp dpt:netbios-ns ufw-skip-to-policy-input udp -- anywhere anywhere udp dpt:netbios-dgm ufw-skip-to-policy-input tcp -- anywhere anywhere tcp dpt:netbios-ssn ufw-skip-to-policy-input tcp -- anywhere anywhere tcp dpt:microsoft-ds ufw-skip-to-policy-input udp -- anywhere anywhere udp dpt:bootps ufw-skip-to-policy-input udp -- anywhere anywhere udp dpt:bootpc ufw-skip-to-policy-input all -- anywhere anywhere ADDRTYPE match dst-type BROADCAST Chain ufw-after-logging-forward (1 references) target prot opt source destination LOG all -- anywhere anywhere limit: avg 3/min burst 10 LOG level warning prefix "[UFW BLOCK] " Chain ufw-after-logging-input (1 references) target prot opt source destination LOG all -- anywhere anywhere limit: avg 3/min burst 10 LOG level warning prefix "[UFW BLOCK] " Chain ufw-after-logging-output (1 references) target prot opt source destination Chain ufw-after-output (1 references) target prot opt source destination Chain ufw-before-forward (1 references) target prot opt source destination ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED ACCEPT icmp -- anywhere anywhere icmp destination-unreachable ACCEPT icmp -- anywhere anywhere icmp source-quench ACCEPT icmp -- anywhere anywhere icmp time-exceeded ACCEPT icmp -- anywhere anywhere icmp parameter-problem ACCEPT icmp -- anywhere anywhere icmp echo-request ufw-user-forward all -- anywhere anywhere Chain ufw-before-input (1 references) target prot opt source destination ACCEPT all -- anywhere anywhere ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED ufw-logging-deny all -- anywhere anywhere ctstate INVALID DROP all -- anywhere anywhere ctstate INVALID ACCEPT icmp -- anywhere anywhere icmp destination-unreachable ACCEPT icmp -- anywhere anywhere icmp source-quench ACCEPT icmp -- anywhere anywhere icmp time-exceeded ACCEPT icmp -- anywhere anywhere icmp parameter-problem ACCEPT icmp -- anywhere anywhere icmp echo-request ACCEPT udp -- anywhere anywhere udp spt:bootps dpt:bootpc ufw-not-local all -- anywhere anywhere ACCEPT udp -- anywhere 224.0.0.251 udp dpt:mdns ACCEPT udp -- anywhere 239.255.255.250 udp dpt:1900 ufw-user-input all -- anywhere anywhere Chain ufw-before-logging-forward (1 references) target prot opt source destination Chain ufw-before-logging-input (1 references) target prot opt source destination Chain ufw-before-logging-output (1 references) target prot opt source destination Chain ufw-before-output (1 references) target prot opt source destination ACCEPT all -- anywhere anywhere ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED ufw-user-output all -- anywhere anywhere Chain ufw-logging-allow (0 references) target prot opt source destination LOG all -- anywhere anywhere limit: avg 3/min burst 10 LOG level warning prefix "[UFW ALLOW] " Chain ufw-logging-deny (2 references) target prot opt source destination RETURN all -- anywhere anywhere ctstate INVALID limit: avg 3/min burst 10 LOG all -- anywhere anywhere limit: avg 3/min burst 10 LOG level warning prefix "[UFW BLOCK] " Chain ufw-not-local (1 references) target prot opt source destination RETURN all -- anywhere anywhere ADDRTYPE match dst-type LOCAL RETURN all -- anywhere anywhere ADDRTYPE match dst-type MULTICAST RETURN all -- anywhere anywhere ADDRTYPE match dst-type BROADCAST ufw-logging-deny all -- anywhere anywhere limit: avg 3/min burst 10 DROP all -- anywhere anywhere Chain ufw-reject-forward (1 references) target prot opt source destination Chain ufw-reject-input (1 references) target prot opt source destination Chain ufw-reject-output (1 references) target prot opt source destination Chain ufw-skip-to-policy-forward (0 references) target prot opt source destination DROP all -- anywhere anywhere Chain ufw-skip-to-policy-input (7 references) target prot opt source destination DROP all -- anywhere anywhere Chain ufw-skip-to-policy-output (0 references) target prot opt source destination ACCEPT all -- anywhere anywhere Chain ufw-track-forward (1 references) target prot opt source destination Chain ufw-track-input (1 references) target prot opt source destination Chain ufw-track-output (1 references) target prot opt source destination ACCEPT tcp -- anywhere anywhere ctstate NEW ACCEPT udp -- anywhere anywhere ctstate NEW Chain ufw-user-forward (1 references) target prot opt source destination Chain ufw-user-input (1 references) target prot opt source destination <b>ACCEPT tcp -- anywhere anywhere tcp dpt:ssh ACCEPT udp -- anywhere anywhere udp dpt:ssh ACCEPT tcp -- anywhere anywhere tcp dpt:1935 ACCEPT udp -- anywhere anywhere udp dpt:1935 ACCEPT udp -- anywhere anywhere multiport dports 16384:32768 ACCEPT tcp -- anywhere anywhere tcp dpt:https ACCEPT udp -- anywhere anywhere udp dpt:https ACCEPT tcp -- anywhere anywhere tcp dpt:http ACCEPT udp -- anywhere anywhere udp dpt:http ACCEPT tcp -- anywhere anywhere tcp dpt:5090 ACCEPT udp -- anywhere anywhere udp dpt:5090 ACCEPT tcp -- anywhere anywhere tcp dpt:sip ACCEPT udp -- anywhere anywhere udp dpt:sip ACCEPT tcp -- anywhere anywhere tcp dpt:5066 ACCEPT udp -- anywhere anywhere udp dpt:5066 ACCEPT tcp -- anywhere anywhere tcp dpt:tproxy ACCEPT udp -- anywhere anywhere udp dpt:8081 ACCEPT tcp -- anywhere anywhere tcp dpt:8082 ACCEPT udp -- anywhere anywhere udp dpt:8082 ACCEPT tcp -- anywhere anywhere tcp dpt:3000 ACCEPT udp -- anywhere anywhere udp dpt:3000 ACCEPT tcp -- anywhere anywhere tcp dpt:2855 ACCEPT udp -- anywhere anywhere udp dpt:2855 ACCEPT tcp -- anywhere anywhere tcp dpt:2856 ACCEPT udp -- anywhere anywhere udp dpt:2856</b> Chain ufw-user-limit (0 references) target prot opt source destination LOG all -- anywhere anywhere limit: avg 3/min burst 5 LOG level warning prefix "[UFW LIMIT BLOCK] " REJECT all -- anywhere anywhere reject-with icmp-port-unreachable Chain ufw-user-limit-accept (0 references) target prot opt source destination ACCEPT all -- anywhere anywhere Chain ufw-user-logging-forward (0 references) target prot opt source destination Chain ufw-user-logging-input (0 references) target prot opt source destination Chain ufw-user-logging-output (0 references) target prot opt source destination Chain ufw-user-output (1 references) target prot opt source destination
Der ausgewählte Bereich ist der Ort für Benutzerregeln, sie werden mit den Befehlen registriert:
Für Hafen:
sudo ufw allow ssh
(nach
sudo ufw allow ssh
)
sudo ufw allow 22
(Portnummer speziell angeben)
sudo ufw allow 80/udp
(unter Angabe der Portnummer und des TCP- oder UDP-Protokolls)
Für Portbereich:
sudo ufw allow 16384:32768/udp
Regeln entfernen:
sudo ufw delete allow 80
Ich habe das Verfahren zum Konfigurieren von ufw am Beispiel von bbb verbreitet.Zunächst schauen wir uns an, welche Dienste welche Ports abhören:
netstat -ntlp | grep LISTEN
tcp 0 0 xxx.xxx.xxx.x:5090 0.0.0.0:* LISTEN 1258/freeswitch
tcp 0 0 127.0.0.1:8100 0.0.0.0:* LISTEN 1720/soffice.bin
tcp 0 0 xxx.xxx.xxx.x:5060 0.0.0.0:* LISTEN 1258/freeswitch
tcp 0 0 127.0.0.1:8101 0.0.0.0:* LISTEN 1766/soffice.bin
tcp 0 0 127.0.0.1:8102 0.0.0.0:* LISTEN 1811/soffice.bin
tcp 0 0 127.0.0.1:8103 0.0.0.0:* LISTEN 1856/soffice.bin
tcp 0 0 xxx.xxx.xxx.x:2855 0.0.0.0:* LISTEN 1258/freeswitch
tcp 0 0 127.0.0.1:8104 0.0.0.0:* LISTEN 1902/soffice.bin
tcp 0 0 xxx.xxx.xxx.x:2856 0.0.0.0:* LISTEN 1258/freeswitch
tcp 0 0 127.0.0.1:27017 0.0.0.0:* LISTEN 1186/mongod
tcp 0 0 xxx.xxx.xxx.x:5066 0.0.0.0:* LISTEN 1258/freeswitch
tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN 1227/redis-server 1
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1359/nginx -g daemo
tcp 0 0 xxx.xxx.xxx.x:8081 0.0.0.0:* LISTEN 1258/freeswitch
tcp 0 0 xxx.xxx.xxx.x:8082 0.0.0.0:* LISTEN 1258/freeswitch
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1176/sshd
tcp 0 0 0.0.0.0:3000 0.0.0.0:* LISTEN 1195/node
tcp6 0 0 ::1:5090 :::* LISTEN 1258/freeswitch
tcp6 0 0 ::1:5060 :::* LISTEN 1258/freeswitch
tcp6 0 0 127.0.0.1:8005 :::* LISTEN 1341/java
tcp6 0 0 :::5070 :::* LISTEN 1461/java
tcp6 0 0 :::9999 :::* LISTEN 1461/java
tcp6 0 0 :::1935 :::* LISTEN 1461/java
tcp6 0 0 :::8080 :::* LISTEN 1341/java
tcp6 0 0 :::80 :::* LISTEN 1359/nginx -g daemo
tcp6 0 0 ::1:8081 :::* LISTEN 1258/freeswitch
tcp6 0 0 ::1:8082 :::* LISTEN 1258/freeswitch
tcp6 0 0 :::8021 :::* LISTEN 1258/freeswitch
tcp6 0 0 :::22 :::* LISTEN 1176/sshd
tcp6 0 0 :::5080 :::* LISTEN 1461/java
Wir sind an Leitungen mit xxx.xxx.xxx.x interessiert (xxx.xxx.xxx.x ist die IP-Adresse Ihres Servers), da dies anzeigt, dass der Dienst auf der Netzwerkkarte auf eingehende Anforderungen aus allen Netzwerken wartet (0.0.0.0:*). . Zeilen mit 127.0.0.1 interessieren uns nicht, da dies die interne Schnittstelle ist. Daher interessieren uns auch Zeilen mit 0.0.0.0 in der 4. Spalte (fett hervorgehoben)
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1359/nginx -g daemo
Wie es heißt, ist Port 80 für alle Serverschnittstellen offen und akzeptiert Anforderungen von allen Netzwerken.
Demnach machen wir die Regeln:
sudo ufw allow 22
für ssh
sudo ufw allow 80
für
sudo ufw allow 80
oder Apache-Webserver
Eine Reihe von Regeln für den Freischalter:
sudo ufw allow 5060 sudo ufw allow 5090 sudo ufw allow 2855 sudo ufw allow 2856 sudo ufw allow 5066 sudo ufw allow 8081 sudo ufw allow 8082
für den Knotendienst:
sudo ufw allow 3000
Als nächstes müssen Sie sich die Dokumentation ansehen, in der wir sehen werden, dass die folgenden Ports geöffnet werden müssen:
sudo ufw allow 16384:32768/udp
- für das Arbeiten mit WebRTC
sudo ufw allow 443
sudo ufw allow 1935
Damit ist die grundlegende ufw-Einrichtung für den BigBlueButton 2.0-Server abgeschlossen.
Ich möchte nur hinzufügen, dass es wünschenswert ist, entweder ssh zu deaktivieren oder den Port zu ändern oder diesen Port nur für ein bestimmtes Netzwerk zuzulassen, beispielsweise für das Netzwerk Ihres Unternehmens.
Beispielsweise verfügt Ihr Gateway über zwei Netzwerkschnittstellen, eine virtuelle (für Benutzer) 192.168.3.2 und eine echte 105.xxx.xxx.xxx (für den Anbieter). Für die ufw-Regel verwenden wir hier eine echte IP-Adresse oder geben das Netzwerk an, zu dem diese gehört ip.
Ändern Sie zunächst den Port in der Konfigurationsdatei des SSH-Servers. Sie können einen beliebigen Texteditor verwenden:
vim /etc/ssh/sshd_config
Dann löschen wir die Regel, die Port 22 zulässt:
Sudo ufw delete allow 22
- manchmal auch OpenSSH genannt.
Wir erstellen eine Regel, die die Verbindung zum neuen Port nur über das Unternehmensnetzwerk zulässt:
sudo ufw allow from 105.../26 to any port 4321
Dann starten wir den SSH-Dienst neu:
/etc/init.d/ssh restart
Und sehen Sie das Ergebnis
netstat -ntlp | grep LISTEN
tcp 0 0.0.0.0:4321 0.0.0.0:* listen 5676/sshd
und in den ufw-Regeln werden wir sehen, wer Zugang zum Hafen hat:
ufw status
4321 ALLOW 105.xxx.xxx.xxx/26
Liebe Leserinnen und Leser, ich bitte Sie, Ergänzungen in die Kommentare zu schreiben: Denken Sie, dass hier alles richtig beschrieben ist, oder ist es notwendig, etwas hinzuzufügen oder zu entfernen?