stefankittel
Goto Top

Frage zu iptables und s+d NAT

Hallo,

ich habe ein kleines Spezialprojekt, bei dem ich 2 Dinge mit meinen itables Kenntnissen nicht lösen kann.

Vieleicht hat ja Jemand von Euch einen Tipp.

Ich aktiviere dynamische IP-Weiterleitungen auf einem Ubuntu-Server

Dafür nutze ich die aktuelle IP des Benutzers, einen Port am Ubuntu-Server, IP und Port des Zielservers und einen Regel-Name zum löschen.
Traffic ist ausschliesslich TCP.

Es können mehrere Regeln gleichzeitig aktiv sein.

Aktivieren
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]]";  

Suchen zum deaktivieren
iptables -n -t nat -L --line-numbers | grep '[[RULENAME]]'  | grep '[[SNAT/DNAT]]'";  

Deaktivieren
iptables -t nat -D [[PREROUTING/POSTROUTING]] [[LineNumber]];

Das funktioniert auch gut und zuverlässig.

1) Traffic
Ich würde gerne wissen wieviele Traffic, in Bytes oder Kilobytes, über diese Regel gelaufen ist.
Entweder in den letzten x Minuten oder seit dem Herstellen der Verbindung.
Das habe ich nicht rausbekommen.

2) Beenden
Sobald ich die Regel gelöscht habe, kann man keine neue Verbindung mehr herstellen.
Eine bestehende Verbindung bleibt aber weiterhin aktiv.
Wie kann ich die bestehende Verbindung unterbrechen?
Update: Die anderen Verbindungen dürfen nicht gestört werden.

Viele Grüße

Stefan

Content-Key: 666858

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

Printed on: April 19, 2024 at 20:04 o'clock

Member: aqui
aqui May 18, 2021 updated at 18:09:07 (UTC)
Goto Top
Member: LordGurke
LordGurke May 18, 2021 at 18:21:58 (UTC)
Goto Top
Bestehende Verbindungen gehen weg mit
conntrack -D -d (destination-ip)
Mit conntrack -L ist auch eingeschränkt Accounting möglich.
Member: StefanKittel
StefanKittel May 18, 2021 at 18:55:40 (UTC)
Goto Top
Hallo,

Zitat von @aqui:
Ein Flush der bestehenden IP States auf alle Chains:
iptables -F
iptables -t nat -F

https://www.cyberciti.biz/tips/linux-iptables-how-to-flush-all-rules.htm ...
Das hatte ich nicht geschrieben gehabt.
Es können verschiedene Regel aktiv sein und nur eine davon soll gelöscht und die Verbindung getrennt werden.
Die Anderen sollen weiter laufen.

Habe ich nicht hinbekommen.

Dieser Befehl ist der einzige wo ich die Regeln sehen kann.
iptables -n -t nat -vL --line-numbers
1

Die Trafficwerte hier sind nicht die richtigen
Über die Verbindung 13 habe ich gerade per SSH eine 10 MB große Textdatei mit cat anzeigen lassen.

Alle anderen Befehle zeigen nur Sammenwerte für Bytes für das gesamt Postrouting z.B.
iptables -L -n -v -x

Chain INPUT (policy ACCEPT 11207 packets, 2152216 bytes)
    pkts      bytes target     prot opt in     out     source               destination
   35271 10626256 f2b-sshd   tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            multiport dports 6716

Chain FORWARD (policy ACCEPT 77994 packets, 33569735 bytes)
    pkts      bytes target     prot opt in     out     source               destination

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

Chain TRAFFIC_ACCT_IN (0 references)
    pkts      bytes target     prot opt in     out     source               destination
       0        0            all  --  *      *       217.94.184.114       0.0.0.0/0

Chain TRAFFIC_ACCT_OUT (0 references)
    pkts      bytes target     prot opt in     out     source               destination
       0        0            all  --  *      *       0.0.0.0/0            217.94.184.114

Chain f2b-sshd (1 references)
    pkts      bytes target     prot opt in     out     source               destination
   35271 10626256 RETURN     all  --  *      *       0.0.0.0/0            0.0.0.0/0


Ich muss vermutlich meine "iptables -t nat -A PREROUTING" umschreiben, aber ich weiß nicht wie.

Stefan
Member: StefanKittel
StefanKittel May 18, 2021 at 18:57:06 (UTC)
Goto Top
Hallo,

Zitat von @LordGurke:
Bestehende Verbindungen gehen weg mit
conntrack -D -d (destination-ip)
Mit conntrack -L ist auch eingeschränkt Accounting möglich.

Um eine Verbindung zu löschen muss ich aber die Quell-IP und den Zielport verwenden.

conntrack -D --src 217.94.184.114 --orig-port-dst 28701
sagt aber
unknown option `--orig-port-dst'  

Stefan
Member: StefanKittel
StefanKittel May 19, 2021 at 11:03:39 (UTC)
Goto Top
Hallo zusammen,

ich bekomme es schlicht nicht hin.
Ich bin bereit Jemanden für 2 Stunden Remote/Telefon-Hilfe dafür zu bezahlen zu einem üblichen Stundensatz.
Schickt mir gerne eine PM.

Stefan