Difference between revisions of "Iptables-Regeln"

From
Jump to: navigation, search
(Regeln löschen)
Line 1: Line 1:
 +
== Iptables-Grundlagen ==
 +
 +
=== Chains ===
 +
<pre>
 +
PREROUTING  –  Pakete, die in Empfang genommen wurden
 +
INPUT      –  eingehende Pakete, bevor sie an die Empfängeranwendung ausgeliefert werden
 +
OUTPUT      – ausgehende Pakete, die soeben von einer Netzwerkanwendung erzeugt wurden
 +
POSTROUTING – Pakete, die gerade über die Netzwerkschnittstelle gesendet werden sollen
 +
FORWARD    – Pakete, die nicht für den lokalen Rechner bestimmt sind, sondern die dieser per
 +
              IP-Forwarding (Routing) weiterleitet
 +
</pre>
 +
 +
=== Tabellen ===
 +
<pre>
 +
nat – ermöglicht die Änderung von IP-Adressen und/oder Ports
 +
      Die zulässigen Chains sind OUTPUT, POSTROUTING und PREROUTING.
 +
 +
filter – Diese Tabelle bestimmt die Regeln für erlaubte und verbotene Datenpakete. 
 +
        Die zulässigen Chains sind INPUT, OUTPUT und FORWARD
 +
 +
mangle – Über diese Tabelle können Sie Datenpaket-Header beliebig modifizieren.
 +
        Sie kann mit allen fünf Chains zusammenarbeiten.
 +
</pre>
 +
 +
 
== Iptables-Regeln ==
 
== Iptables-Regeln ==
 
  
 
=== Iptables installieren ===
 
=== Iptables installieren ===

Revision as of 10:52, 24 November 2025

Iptables-Grundlagen

Chains

PREROUTING  –  Pakete, die in Empfang genommen wurden
INPUT       –  eingehende Pakete, bevor sie an die Empfängeranwendung ausgeliefert werden
OUTPUT      – ausgehende Pakete, die soeben von einer Netzwerkanwendung erzeugt wurden
POSTROUTING – Pakete, die gerade über die Netzwerkschnittstelle gesendet werden sollen
FORWARD     – Pakete, die nicht für den lokalen Rechner bestimmt sind, sondern die dieser per
              IP-Forwarding (Routing) weiterleitet

Tabellen

nat – ermöglicht die Änderung von IP-Adressen und/oder Ports
      Die zulässigen Chains sind OUTPUT, POSTROUTING und PREROUTING.

filter – Diese Tabelle bestimmt die Regeln für erlaubte und verbotene Datenpakete.  
         Die zulässigen Chains sind INPUT, OUTPUT und FORWARD 

mangle – Über diese Tabelle können Sie Datenpaket-Header beliebig modifizieren. 
         Sie kann mit allen fünf Chains zusammenarbeiten.


Iptables-Regeln

Iptables installieren

apt-get update
apt-get install iptables


Iptables anzeigen

iptables -L -v


Iptables erstellen

iptables -A <chain> -i <interface> -p <protocol (tcp/udp) > -s <source> --dport <port no>  -j <target>


Bsp. für ssh und http(s)

iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -P INPUT DROP


Etablierte Verbindungen zulassen

iptables -A INPUT -i $WAN -m state --state ESTABLISHED,RELATED -j ACCEPT

$WAN muss durch die Bezeichnung der NIC ersetzt werden.
Dabei kann mit der Option --state folgende, meist genutzte Möglichkeiten eingestellt werden:

    NEW         - Das Datenpaket ist dem Server neu, in der Regel durch eine neue Verbindung.
    ESTABLISHED - Das Datenpaket ist beim Server bereits ein- und ausgegangen.
    RELATED     - Das Datenpaket hat eine neue Verbindung gestartet, ist aber in einer bestehenden Verbindung involviert, 
                  z. B. eine FTP-Datenübertragung oder ein ICMP-Fehler.


Pakete anhand der Source-Adresse filtern

iptables -A INPUT -s 10.10.10.1 -j DROP

hier kann auch mit Ranges gearbeitet werden:
iptables -A INPUT -m iprange --src-range 10.10.10.1-10.10.10.255 -j DROP


Regeln löschen

Alle Regeln löschen
iptables -F

Einzelne spezifische Regeln werden mit der Option -D gelöscht. Dabei muss zunächst die Nummer der Regel herausgefunden werden:
iptables -L --line-numbers

Anschließend kann eine spezielle Regel gelöscht werden:
iptables -D INPUT 3


Regeln persistent Speichern

Um Regeln persistent zu halten, muss das Tool:  Iptables-persistent installiert werden. Dieses sorgt dafür, dass gespeicherte Regeln bei einem Neustart geladen werden.

apt-get install iptables-persistent

Die Regeln werden in folgenden Dateien gespeichert. 
Es wird zwischen IPv4 und IPv6 differenziert:

/etc/iptables/rules.v4
/etc/iptables/rules.v6


Um die aktuell geltenden Regeln zu speichern, muss folgender Befehl genutzt werden:

iptables-save > /etc/iptables/rules.v4
### oder
ip6tables-save > /etc/iptables/rules.v6

Bei einem Neustart werden somit die Regeln automatisch geladen.