Linux:Iptables: Unterschied zwischen den Versionen
Admin (Diskussion | Beiträge) |
Admin (Diskussion | Beiträge) |
||
Zeile 26: | Zeile 26: | ||
* Zeile 8: erlaubt Zugriffe auf den TCP-Port 22 (ssh-Daemon) | * Zeile 8: erlaubt Zugriffe auf den TCP-Port 22 (ssh-Daemon) | ||
* Zeile 9: alles verwerfen, was bis hierher gekommen ist (also die vorherigen Regeln nicht gegriffen haben) | * Zeile 9: alles verwerfen, was bis hierher gekommen ist (also die vorherigen Regeln nicht gegriffen haben) | ||
Die Regeln laden und anzeigen: | |||
<source lang="bash"> | |||
sudo iptables-restore /etc/network/iptables | |||
sudo iptables -L | |||
</source> | |||
Die Anzeige dürfte dann so aussehen: | |||
<source lang="bash"> | |||
Chain INPUT (policy DROP) | |||
target prot opt source destination | |||
ACCEPT all -- anywhere anywhere | |||
ACCEPT icmp -- anywhere anywhere | |||
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED | |||
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ssh | |||
REJECT all -- anywhere anywhere reject-with icmp-host-prohibited | |||
Chain FORWARD (policy ACCEPT) | |||
target prot opt source destination | |||
Chain OUTPUT (policy ACCEPT) | |||
target prot opt source destination | |||
</source> | |||
Damit die Firewall-Regeln bei einem Neustart des Systems oder des Netzwerkdienstes automatisch geladen werden, muss noch ein Pre-Up Skript erstellen. | |||
<source lang="bash"> | |||
sudo vi /etc/network/if-pre-up.d/iptables | |||
</source> | |||
In der Datei ''/etc/network/if-pre-up.d/iptables'' die folgenden Zeilen einfügen: | |||
<source lang="bash"> | |||
#!/bin/sh | |||
/sbin/iptables-restore /etc/network/iptables | |||
</source> | |||
Damit das Skript ausgeführt werden kann müssen die Zugriffsrechte entsprechend anpassen werden: | |||
<source lang="bash"> | |||
sudo chmod +x /etc/network/if-pre-up.d/iptables | |||
</source> | |||
== Informationen == | == Informationen == |
Version vom 15. Dezember 2013, 14:18 Uhr
Raspberry Pi
Standardmäßig gibt es im aktuellen Raspbian Image noch keine Konfigurationsdatei für die Firewall-Regeln. Daher erstellen einer Datei /etc/network/iptables mit einem Editor.
sudo nano /etc/network/iptables
Nun werden die Regeln eingefügt (ohne die Zeilennummern):
*filter
:INPUT DROP [159:12505]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [140:13492]
-A INPUT -i lo -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT
- Zeile 5: erlaubt alle Zugriffe über die Loopback-Schnittstelle lo. Dies können nur Zugriffe vom eigenen Linux-System sein.
- Zeile 6: erlaubt ICMP-Anfragen (z.B. ping)
- Zeile 7: erlaubt bereits aufgebaute eingehende Verbindungen generell
- Zeile 8: erlaubt Zugriffe auf den TCP-Port 22 (ssh-Daemon)
- Zeile 9: alles verwerfen, was bis hierher gekommen ist (also die vorherigen Regeln nicht gegriffen haben)
Die Regeln laden und anzeigen:
sudo iptables-restore /etc/network/iptables
sudo iptables -L
Die Anzeige dürfte dann so aussehen:
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT all -- anywhere anywhere
ACCEPT icmp -- anywhere anywhere
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ssh
REJECT all -- anywhere anywhere reject-with icmp-host-prohibited
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Damit die Firewall-Regeln bei einem Neustart des Systems oder des Netzwerkdienstes automatisch geladen werden, muss noch ein Pre-Up Skript erstellen.
sudo vi /etc/network/if-pre-up.d/iptables
In der Datei /etc/network/if-pre-up.d/iptables die folgenden Zeilen einfügen:
#!/bin/sh
/sbin/iptables-restore /etc/network/iptables
Damit das Skript ausgeführt werden kann müssen die Zugriffsrechte entsprechend anpassen werden:
sudo chmod +x /etc/network/if-pre-up.d/iptables
Informationen
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -s 192.168.10.0/24 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -i eth0 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
Zeile 1: Der "Originalebefehl" Zeile 2: Begrenzung auf ein Netzwerk Zeile 3: Begrenzung auf eine Schnittstelle (z.B. LAN und WLAN)