Erstellen Sie eine Tabelle in iptables

8

Ich möchte eine benutzerdefinierte Tabelle mit iptables erstellen, damit ich meine benutzerdefinierten Ketten hinzufügen kann. Aber ich sehe keine Möglichkeit, das zu tun. Ich habe versucht, danach zu suchen, aber nichts gefunden. Bitte helfen Sie.

Tarun
quelle

Antworten:

16

Ich denke, Sie suchen nach einer Kette , nicht nach einem Tisch.

   -N, --new-chain chain
          Create a new user-defined chain by the given name.  There must be no target of that name already.

Beispiel ( -t filterimpliziert):

iptables -N Services
iptables -A INPUT -j Services
iptables -A Services -m tcp -p tcp --dport 80 -j ACCEPT

Tabellen können mit der -tOption ausgewählt werden:

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Und wenn Sie verwenden iptables-restore, können die beiden oben genannten Regeln kombiniert werden zu:

*nat
-A POSTROUTING -j MASQUERADE
COMMIT

*filter
:Services -
-A INPUT -j Services
-A Services -m tcp -p tcp --dport 80 -j ACCEPT
COMMIT
Lekensteyn
quelle
Vielen Dank für die Antwort, aber ich möchte eine andere Tabelle für meine benutzerdefinierten Ketten erstellen. Eine andere Tabelle zu erstellen ist nicht möglich?
Tarun
1
Warum möchten Sie eine andere Tabelle erstellen? Um Ihre Ketten gruppieren zu können? Wenn Sie kein eigenes Kernelmodul schreiben, können Sie keine neuen Ketten einfügen. In diesem Bild zum Paketfluss erfahren Sie , wofür die verschiedenen Tabellen verwendet werden.
Lekensteyn
Ok, das wusste ich nicht. Danke für die Hilfe.
Tarun
5

Das Erstellen einer Tabelle erfolgt auf Kernelebene. Normalerweise ist es nicht erforderlich, eine neue zu erstellen, es sei denn, man erweitert die TCP / IP-Funktionen des Kernels.

Was Sie wahrscheinlich tun möchten, ist eine neue Kette in einer der vorhandenen Tabellen zu erstellen, was mit dem -NFlag erfolgt.

Ignacio Vazquez-Abrams
quelle
"Normalerweise muss man nicht ..." - aber benutzerdefinierte Ketten machen die Dinge so viel ordentlicher. Zum Beispiel Hinzufügen einer benutzerdefinierten Kette zu einer Schnittstelle.
Konrad Gajewski