Wiki-Quellcode von RangeeOS - Firewall mit ipables Skript
Version 13.1 von Tobias Wintrich am 2022/10/28 10:16
Zeige letzte Bearbeiter
author | version | line-number | content |
---|---|---|---|
1 | Das RangeeOS stellt keine grafische Benutzeroberfläche zur Erstellung und Verwaltung von Firewall Regeln bereit. Auf Wunsch können aber beliebige Regeln über das Linux Kommandozeilen Tool //**iptables **//erstellt und über das Skripte Modul auch auf verschiedene Geräte übertragen werden. | ||
2 | |||
3 | {{toc/}} | ||
4 | |||
5 | = Voraussetzung = | ||
6 | |||
7 | Auf dem RangeeOS Client muss das Softwaremodul **scripts **in zur Firmware passender Version installiert sein. | ||
8 | |||
9 | {{info}} | ||
10 | Sollte Ihnen unter **Softwareaktualisierung **das Modul nicht angeboten werden, wenden Sie sich bitte an unseren [[Support>>mailto:support@rangee.com]] | ||
11 | {{/info}} | ||
12 | |||
13 | = Firewallregeln = | ||
14 | |||
15 | Hier finden Sie verschiedene Regeln um nur definierten, eingehenden Datenverkehr zum RangeeOS auf Netzwerkebene zu erlauben . Das Blockieren ausgehender Verbindungen auf Clientseite wird nicht empfohlen. | ||
16 | |||
17 | {{info}}Weitere Informationen zur Verwendung von iptables finden Sie hier:* [[https:~~/~~/linux.die.net/man/8/iptables>>url:https://linux.die.net/man/8/iptables]] | ||
18 | * [[https:~~/~~/wiki.ubuntuusers.de/iptables/>>url:https://wiki.ubuntuusers.de/iptables/]]{{/info}} | ||
19 | |||
20 | ((( | ||
21 | == Standard verwerfen == | ||
22 | |||
23 | **Entfernt alle bestehenden Regeln:** | ||
24 | |||
25 | {{{iptables --flush}}} | ||
26 | |||
27 | **Block sämtliche eingehenden Pakete die nicht explizit erlaubt sind:** | ||
28 | |||
29 | {{{iptables --policy INPUT DROP}}} | ||
30 | |||
31 | **Erlaubt das Aufrechterhalten von Aufgebauten Verbindungen (RDP, ICA, VMwareView...):** | ||
32 | |||
33 | {{{iptables --append INPUT --match state --state RELATED,ESTABLISHED --jump ACCEPT}}} | ||
34 | |||
35 | == Port / Protokoll / Netzwerk erlauben == | ||
36 | |||
37 | **Erlaubt Kontakt zur Kommbox per Browser / TCMS auf Port 443 TCP von dem 24er Subnetz 192.168.255.0/24:** | ||
38 | |||
39 | {{{iptables --append INPUT --protocol tcp --destination-port 443 --source 192.168.255.0/24 --jump ACCEPT}}} | ||
40 | |||
41 | **Erlaubt SSH zum Client auf Port 22 TCP von einzelner IP 192.168.255.56/32:** | ||
42 | |||
43 | {{{iptables --append INPUT --protocol tcp --destination-port 22 --source 192.168.255.56/32 --jump ACCEPT}}} | ||
44 | |||
45 | **Erlaubt VNC zum Client auf Port 5900 TCP vom 16er Subnetz 192.168.0.0/16:** | ||
46 | |||
47 | {{{iptables --append INPUT --protocol tcp --destination-port 5900 --source 192.168.0.0/16 --jump ACCEPT}}} | ||
48 | |||
49 | **Für WebVNC aus Kommbox oder TCMS zusätzlich Port 80 TCP vom 16er Subnetz 192.168.0.0/16:** | ||
50 | |||
51 | {{{iptables --append INPUT --protocol tcp --destination-port 80 --source 192.168.0.0/16 --jump ACCEPT}}} | ||
52 | |||
53 | **Erlaubt ICMP (Ping) von überall** | ||
54 | |||
55 | {{{iptables --append INPUT --protocol icmp --jump ACCEPT}}} | ||
56 | |||
57 | = Skript anlegen = | ||
58 | |||
59 | {{warning}} | ||
60 | Bevor Sie die Regeln per Skript automatisiert ausführen, wird empfohlen Sie händisch per SSH oder Root Shell zu testen. Informationen zum Zugang zum Linux Terminal finden Sie hier: | ||
61 | |||
62 | * [[Root-Terminal Passwort>>doc:Handbuecher.Handbuch11.Kapitel 3 - Administration des Clients.3\.C Benutzereinstellungen.3\.C\.A\. Root-Terminal-Passwort]] | ||
63 | * [[Remote Access via SSH>>doc:Handbuecher.Handbuch11.Kapitel 4 - Erweiterte Administration.4\.C\. Remote Access via SSH.WebHome]] | ||
64 | * [[Hotkeys (lokales Terminal öffnen)>>doc:Handbuecher.Handbuch11.Kapitel 2 - Getting Started.2\.B\. Hotkeys.WebHome]] | ||
65 | {{/warning}} | ||
66 | |||
67 | Navigieren Sie in der Kommbox zu {{status title="Verbindungen & Anwendungen"/}} -> {{status title="Script Konfiguration"/}} und legen Sie eine {{status title="Neue Verbindung"/}} an. | ||
68 | |||
69 | Vergeben Sie die von Ihnen benötigen Regeln (eine je Zeile) in das Feld **Skript **ein. Ein Skript mit allen Regeln aus den Beispielen diese Seite sieht so aus: | ||
70 | |||
71 | {{{#Zeilen welche mit '#' beginnen werden nicht ausgewertet und können als Kommentare verwendet werden | ||
72 | iptables --flush | ||
73 | iptables --policy INPUT DROP | ||
74 | iptables --append INPUT --match state --state RELATED,ESTABLISHED --jump ACCEPT | ||
75 | iptables --append INPUT --protocol tcp --destination-port 443 --source 192.168.255.0/24 --jump ACCEPT | ||
76 | |||
77 | # Erlaube SSH Admin PC | ||
78 | iptables --append INPUT --protocol tcp --destination-port 22 --source 192.168.255.56/32 --jump ACCEPT | ||
79 | |||
80 | # Erlaube VNC | ||
81 | iptables --append INPUT --protocol tcp --destination-port 5900 --source 192.168.0.0/16 --jump ACCEPT | ||
82 | iptables --append INPUT --protocol tcp --destination-port 80 --source 192.168.0.0/16 --jump ACCEPT | ||
83 | |||
84 | # Erlaube PING | ||
85 | iptables --append INPUT --protocol icmp --jump ACCEPT}}} | ||
86 | |||
87 | Zusätzlich zum Skript sollten (* = müssen) folgende Optionen in der Verbindung definiert werden: | ||
88 | |||
89 | |(% style="width:160px" %)Verbindungsname *|(% style="width:1346px" %)Frei wählbarer Anzeigename der Verbindung | ||
90 | |(% style="width:160px" %)Als root ausführen *|(% style="width:1346px" %)an - Führt das Skript mit den benötigten rechten aus | ||
91 | |(% style="width:160px" %)Automatischer Start|(% style="width:1346px" %)an - Sorgt dafür, dass die Firewall beim Start des geräts aktiviert wird | ||
92 | |(% style="width:160px" %)Desktop-Verknüpfung erstellen |