Omezení TCP na jeden směr v IPtables

JBB

Omezení TCP na jeden směr v IPtables
« kdy: 11. 11. 2021, 12:36:22 »
Jak nastavit iptables aby chodily TCP data (payload) jen jedním směrem? Zpět jen ACK.
« Poslední změna: 11. 11. 2021, 16:36:31 od Petr Krčmář »


Re:iptables one way
« Odpověď #1 kdy: 11. 11. 2021, 14:10:48 »
To nejde, z principu TCP/IP. ACK může být nastaveno i na paketu, který obsahuje data. Leda byste to chtěl kontrolovat tak, že budete zahazovat i pakety s daty, které mají ACK. Ale hlavně mi připadá divný ten váš požadavek. Co tím chcete řešit?

_Jenda

  • *****
  • 1 592
    • Zobrazit profil
    • https://jenda.hrach.eu/
    • E-mail
Re:iptables one way
« Odpověď #2 kdy: 11. 11. 2021, 14:47:51 »
Napiš si user-space TCP proxy (v Pythonu na pár řádek: posloucháš na portu, když přijde spojení, otevřeš spojení do cíle a přeposíláš data - jedním směrem) a přesměruj to na ni pomocí iptables redirectu (iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT, nebo https://my.esecuredata.com/index.php?/knowledgebase/article/49/how-to-redirect-an-incoming-connection-to-a-different-ip-address-on-a-specific-port-using-iptables/).

Re:Omezení TCP na jeden směr v IPtables
« Odpověď #3 kdy: 11. 11. 2021, 22:35:54 »
Voľakedy dávno sme požadovanú vlastnosť robili feritovou perlou na Tx páre. Fungovalo to perfektne.

_Jenda

  • *****
  • 1 592
    • Zobrazit profil
    • https://jenda.hrach.eu/
    • E-mail
Re:Omezení TCP na jeden směr v IPtables
« Odpověď #4 kdy: 12. 11. 2021, 04:09:10 »
Voľakedy dávno sme požadovanú vlastnosť robili feritovou perlou na Tx páre. Fungovalo to perfektne.
Tak to máte na Slovensku husté ferity, ty české paket co obsahuje pouze ACK poznat neumí  :o


JBB

Re:Omezení TCP na jeden směr v IPtables
« Odpověď #5 kdy: 12. 11. 2021, 08:31:25 »
Voľakedy dávno sme požadovanú vlastnosť robili feritovou perlou na Tx páre. Fungovalo to perfektne.
LOL :D
Ferit na páru (obou vodičích) spíše zlepší příjem neboť brání průniku rušení.
A v otázce bylo jen TCP a ACK aby chodilo, takže "utržením" tx to nejde. BTW se eth po jednom páru ani nespojí (tedy mimo BASE-T1).
No asi to jen tak nejde, omezením velikosti paketů by to asi fungovalo jen do doby než přijde nějaký payload, protože by se zahodil paket pravděpodobně s ACK na payload v opačném směru a pak by se po neúspěšných retransmisích rozpadlo spojení.
No, nejjednodušší bude v dané aplikaci rozvětvit směr na jiný port a ten blokovat.
Ale i tak dík.

M_D

  • ****
  • 333
    • Zobrazit profil
    • E-mail
Re:Omezení TCP na jeden směr v IPtables
« Odpověď #6 kdy: 12. 11. 2021, 09:15:18 »
Asi chce tazatel realizovat jednosměrný přenos a hlídat firewallem uprostřed, že tomu opravdu tak je a ušetřit nějaký peníz (se podívejte, za kolik prodávají různé průmyslové firewally s funkcí "datová dioda" :-) )?
Tak pokud je ten protokol takový, že se jen naváže TCP spojení, začnou posílat data jedním směrem a druhým nic nejde, tak to udělat jde a firewallem omezit půjde (hlídat, že payload je 0). Pokud už na úrovni TCP jdou data oběma směry, tak to bez zkoumání vyšších vrstev neudělá.

_Jenda

  • *****
  • 1 592
    • Zobrazit profil
    • https://jenda.hrach.eu/
    • E-mail
Re:Omezení TCP na jeden směr v IPtables
« Odpověď #7 kdy: 12. 11. 2021, 17:04:55 »
Asi chce tazatel realizovat jednosměrný přenos a hlídat firewallem uprostřed, že tomu opravdu tak je a ušetřit nějaký peníz (se podívejte, za kolik prodávají různé průmyslové firewally s funkcí "datová dioda" :-) )?
Každopádně pokud to dělá proto, že se bojí, že zařízení na druhé straně bude aktivně exfiltrovat data, tak tohle není dobré řešení, protože se data můžou vynášet třeba časováním těch ACKů nebo fejkováním ztracených paketů a následnou retransmisí.