edvman27
Goto Top

Iptables unter ubuntu LTS - Traffic pro Pre- und Postrouting-Regel ermitteln

Hallo,

ich habe hier einen ubuntu LTS wo Skripte Portweiterleitungen anlegen und später wieder löschen.

iptables -t nat -A PREROUTING --src [[USER_IP]] --dst [[GATEWAY_IP]] -p tcp --dport [[GATEWAY_PORT]] -j DNAT --to-destination [[TARGET_IP]]:[[TARGET_PORT]] -m comment --comment [[RULENAME]]
iptables -t nat -A POSTROUTING -p tcp --dst [[TARGET_IP]] --dport [[TARGET_PORT]] -j SNAT --to-source [[GATEWAY_IP]] -m comment --comment [[RULENAME]]

Ich habe das nicht entwickelt, aber es funktioniert seit langem zuverlässig.

Jetzt gibt es die Anforderungen den Traffic pro Regel zu ermitteln bevor diese gelöscht wird.
Ich habe aber keine Möglichkeit gefunden dies über iptables auszulesen.

Er zeigt nur den gesamten Traffic für pre- und postrouting an
iptables -L -nv

Alternativ kann man mit diesem Befehl Werte auslesen die vermutlich nur Controltraffic sind.
Sie sind viel zu niedrig
iptables -n -t nat -vL --line-numbers

Hier müssten Werte im MB oder gar GB Bereich stehen
Chain PREROUTING (policy ACCEPT 844 packets, 38358 bytes)
 pkts bytes target     prot opt in     out     source               destination
    5   260 DNAT       tcp  --  *      *       
    2   104 DNAT       tcp  --  *      *       
    2   104 DNAT       tcp  --  *      *       
    2   104 DNAT       tcp  --  *      *   

Chain INPUT (policy ACCEPT 844 packets, 38358 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 620 packets, 41956 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain POSTROUTING (policy ACCEPT 578 packets, 39436 bytes)
 pkts bytes target     prot opt in     out     source               destination
  214 12824 SNAT       tcp  --  *      *       
    8   484 SNAT       tcp  --  *      *       
  245 14660 SNAT       tcp  --  *      *       
   42  2504 SNAT       tcp  --  *      *        
source und destination habe ich entfernt


Kennt Jemand einen Möglichkeit diese Trafficwerte, wenn iptables die überhaupt hat, zu ermitteln?

Hat Jemand alternativ einen Vorschlag wie man das anders lösen kann um zusätzlich an diese Werte zu kommen?

Danke

e27

Content-ID: 560034

Url: https://administrator.de/contentid/560034

Ausgedruckt am: 22.11.2024 um 02:11 Uhr

143127
143127 22.03.2020 aktualisiert um 07:41:58 Uhr
Goto Top
Das in der Post und Prerouting-Chain nur ein paar Pakete zu finden sind ist ja auch normal denn nach dem ersten Umschreiben ist es related traffic der in der NAT Table notiert ist und dann direkt über die FORWARD Chain abgewickelt wird.

Lege also zusätzliche entsprechende Passthrough Regeln in der FORWARD Chain an die nur den Traffic zählen
https://www.linux.com/training-tutorials/bandwidth-monitoring-iptables/
EDVMan27
EDVMan27 22.03.2020 um 14:13:48 Uhr
Goto Top
Hallo vibrations,

das ist schon mal super.
Ich hatte mich mit der Output-Chain versucht...

Dazu noch ein Detailproblem.

Beide Seiten, sowohl Sender als auch Empfänger, befinden sich hinter NAT.
Ich benötige zusätzlich zu den IPs also auch eine Unterscheidung nach dem Port.

Das kann ich mittels "-p tcp --dport 11223" erreichen.
Aber nur auf dem Weg hin wo ich die Ports weiß.
Die Antwort vom System kann ja an beliebige Ports gehen.

Wie macht man das?
143127
143127 22.03.2020 aktualisiert um 14:33:09 Uhr
Goto Top
Zitat von @EDVMan27:
Ich hatte mich mit der Output-Chain versucht...
Die Output Chain ist nur für Traffic den die Firewall selbst aussendet, deswegen ist das in dem Fall sinnlos.

Beide Seiten, sowohl Sender als auch Empfänger, befinden sich hinter NAT.
OK, ist ja kein Problem.
Ich benötige zusätzlich zu den IPs also auch eine Unterscheidung nach dem Port.

Das kann ich mittels "-p tcp --dport 11223" erreichen.
Richtig.
Aber nur auf dem Weg hin wo ich die Ports weiß.
Die Antwort vom System kann ja an beliebige Ports gehen.
Nein, du musst gibst den Port für die DST NAT Umschreibung explizit an also kennst du den Zielport und damit auch den Quellport für die Antwort aus dem internen Netz, da die Anwendung ja diesem Port als Quelle verwendet!
Wie macht man das?
-p tcp --sport 11223