abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 23:55 | Nová verze

    Byla vydána verze 1.79.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání na GitHubu. Vyzkoušet Rust lze například na stránce Rust by Example.

    Ladislav Hagara | Komentářů: 0
    včera 14:33 | Zajímavý článek

    Byly zveřejněny výsledky průzkumu (infografika) mezi uživateli FreeBSD.

    Ladislav Hagara | Komentářů: 0
    včera 13:22 | IT novinky

    Na konferenci DevConf.CZ 2024 je na stánku Furi Labs prezentován linuxový telefon FuriPhone FLX1. Jeho cena 499 dolarů.

    Ladislav Hagara | Komentářů: 15
    včera 00:11 | Nová verze

    Bylo vydáno Eclipse IDE 2024-06 aneb Eclipse 4.32. Představení novinek tohoto integrovaného vývojového prostředí také na YouTube.

    Ladislav Hagara | Komentářů: 1
    12.6. 22:00 | Nová verze

    Proton, tj. fork Wine integrovaný v Steam Play a umožňující v Linuxu přímo ze Steamu hrát hry určené pouze pro Windows, byl vydán ve verzi 9.0-2 (𝕏). Přehled novinek se seznamem nově podporovaných her na GitHubu. Aktuální přehled her pro Windows běžících díky Protonu také na Linuxu na stránkách ProtonDB.

    Ladislav Hagara | Komentářů: 0
    12.6. 15:44 | Nová verze

    Po roce od vydání verze 15.5 bylo vydáno openSUSE Leap 15.6. Přehled novinek v nejnovější verzi této linuxové distribuce v oznámení o vydání a v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    12.6. 12:44 | Nová verze

    Byla vydána nová verze 256 správce systému a služeb systemd (GitHub). Nově mimo jiné s run0 jako alternativou k sudo.

    Ladislav Hagara | Komentářů: 19
    12.6. 12:00 | IT novinky

    Společnost Oracle oznámila spolupráci s Google Cloudem, OpenAI a Microsoftem.

    Ladislav Hagara | Komentářů: 0
    12.6. 09:44 | Pozvánky

    Zítra začne v Brně na FIT VUT třídenní open source komunitní konference DevConf.CZ 2024. Vstup je zdarma, nutná je ale registrace. Na programu je celá řada zajímavých přednášek, lightning talků, meetupů a workshopů. Přednášky lze sledovat i online na YouTube kanálu konference. Aktuální dění lze sledovat na Matrixu, 𝕏 nebo Mastodonu.

    Ladislav Hagara | Komentářů: 6
    11.6. 23:33 | Nová verze

    Google Chrome 126 byl prohlášen za stabilní. Nejnovější stabilní verze 126.0.6478.55 přináší řadu oprav a vylepšení (YouTube). Podrobný přehled v poznámkách k vydání. Opraveno bylo 21 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.

    Ladislav Hagara | Komentářů: 0
    Rozcestník

    Dotaz: ignorováni SNAT, do internetu odchází pakety s privátní IP

    22.5.2015 11:16 Franta Hanzlík
    ignorováni SNAT, do internetu odchází pakety s privátní IP
    Přečteno: 382×
    Zdravím, neřešili jste už někdo někdy problém, kdy netfilter pro některá spojení (zdá se) ignoruje pravidla iptables, a nepomáhá ani restart iptables?
    V nat table na firewallu mám zhruba tohle:
    -P PREROUTING ACCEPT
    -P INPUT ACCEPT
    -P OUTPUT ACCEPT
    -P POSTROUTING ACCEPT
    -A PREROUTING -d PubIP1 -i eth1 -j DNAT --to-destination 192.168.0.248
    -A POSTROUTING -s 192.168.0.248 -o eth1 -j SNAT --to-source PubIP1
    -A POSTROUTING -o eth1 -j SNAT --to-source PubIP2
    
    eth1 je rozhraní do internetu a má dvě veřejné adresy PubIP1 a PubIP2, vnitřní síť je 192.168.0.0/24, na stroj 192.168.0.248 se dělá IP fowarding.

    Po provedení nějakých, většinou ručních úprav (s následným zapsáním pravidel do konfiguráku (u mne /etc/sysconfig/iptables)) jsem zjistil, že některá spojení do internetu nejsou NATovaná a pakety odchází s privátní IP (v tomto případě ze stroje IP=192.168.0.248 na cíl odcházely UDP pakety na dstport 5060 s jeho původní privátní adresou 192.168.0.248). Ale pakety ze stejného stroje 192.168.0.248 na jiné cíle v internetu (vč. jiného stroje s kterým se komunikovalo také přes UDP) byly překládané správně, na source adresu PubIP1. Restart iptables (včetně 'ip link set eth1 down/up') nepomohl, restart celého firewallu ano.
    Zdá se, jako kdyby se nějak pamatovala předchozí spojení a pokračovalo se v nich či co. Je možné, že by např. conntrack table takhle ovlivňovala netfilter (asi jsem ji mohl zkusit flushnout pomocí conntrack, ale nenapadlo mne to a byl kvalt)? Nebo je to způsobeno něčím jiným? Myslím, že už se mi to stalo (že jsem viděl z internet rozhraní odcházet neNATované pakety) jednou, dvakrát i v minulosti, okolnosti byly podobné (nat table i jednodušší (jen jeden SNAT), problém nastal také po nějakých mých vrtáních se v netfilter pravidlech) a řešil jsem to stejně blbě jako teď, restartem stroje. Teď to bylo na FW s jádrem 3.19.5-100.fc20.x86_64 a iptables 1.4.19.1.


    Odpovědi

    22.5.2015 12:19 NN
    Rozbalit Rozbalit vše Re: ignorováni SNAT, do internetu odchází pakety s privátní IP
    Mohlo by se to stat proto, ze mas nastavenou veskerou politiku na ACCEPT, takze pokud firewall nevi co ma s paketem udelat, tak ho proste pusti(neprelozeny).. ale to je debata, kterou byfh neotviral. Dale jsi nezaslal zbytek firewallu, takze muzeme jen hadat a zaroven mam pocit, ze nemas jistotu, ze tvou modifikovanana pravidla jsou ta jedina, ktera se uplatnuji pri startu systemu a v podstate to nemas pod kontrolou. Nebo se pletu?
    22.5.2015 13:47 Franta Hanzlík
    Rozbalit Rozbalit vše Re: ignorováni SNAT, do internetu odchází pakety s privátní IP
    Zkusím položit dotaz jinak: jediná iptables pravidla jsou ta v "/etc/sysconfig/iptables", firewalld ani jiný dynamický firewall v systému není. Pokud dobře čtu "/usr/libexec/iptables/iptables.init" (ovládací script iptables Fedora 20), tak zastavení iptables provede:
    - flush všech tabulek - výmaz všech pravidel
    - výmaz všech uživatelem definovaných chainů
    - vynulování paket/byte čítačů všech chainů
    - nastaví politiky všech chainů na ACCEPT
    - provede unload kernel modulů souvisejících s netfiltrem
       (netuším jak moc dobře, můžu se na to mrknout večer)
    
    Takže, co může způsobit to, že navzdory SNAT pravidlu v nat POSTROUTING chainu se toto na některé pakety neaplikuje, ani po restartu firewallu (a po restartu systému je vše OK)? Mohly by to způsobit z nějakého důvodu neuloadované síťové moduly jádra?
    PS: V nat tabulce jsou v podstatě jen ta v dotazu napsaná pravidla, filter table by to snad ovlivnit neměla, mangle ani jiné tabulky tam nejsou.
    (pod kontrolou to ovšem evidentně nemám, když si to neumím jasně vysvětlit ;)
    22.5.2015 14:16 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: ignorováni SNAT, do internetu odchází pakety s privátní IP
    Ten popis je trochu zmatený a není z něj jasné, co přesně jste udělal, kdy a v jakém pořadí. Obecně: NAT pravidla v tabulce nat se aplikují jen na pakety, které jsou (z pohledu conntracku) "NEW". Takže jestliže už máte v conntrack tabulce nějaké položky a přidáte nové pravidlo, může se stát, že se na pakety odpovídající těm stávajícím položkám neaplikuje, protože jsou "ESTABLISHED". Zkuste, jestli pomůže "conntrack -F".
    22.5.2015 15:27 Franta Hanzlík
    Rozbalit Rozbalit vše Re: ignorováni SNAT, do internetu odchází pakety s privátní IP
    Co přesně jsem dělal a v jakém pořadí samozřejmě nevím - kdybych to věděl nebo si to uměl nasimulovat, tak bych to zkusil dohledat sám. Byla to asi hodinová patlanina všeho možného, hrál jsem si s nf_nat_sip, vyráběl jsem na pravidlech nějaké čítače, logování, filtrování a jiné opičárny. Když jsem byl s výsledkem spokojen, upravil jsem konfigurák s iptables pravidly ("/etc/sysconfig/iptables", viz výše) a udělal restart iptables (ve Fedoře se dělá pomocí zmíněného scriptu "/usr/libexec/iptables/iptables.init" - a nemám nastaveno, že se při restartu iptables budou ukládat aktuálně běžící pravidla). Vše vypadalo OK - ale pak jsem zjistil, že se jedno spojení (bylo to spojení asteriska na té 192.168.0.248 na VoIP providera) nepřekládá - ale všechna ostatní ano, včetně externích VoIP telefonů které se na tu ústřednu připojovaly zvenku.

    Proto byl dotaz spíš teoretický - co může v běžícím systému způsobit, že po restartu iptables se jeho pravidla obecně neaplikují?
    Restart/stop iptables ve Fedoře se mj. pokouší udělat rmmod x_tables, nf_nat a nf_conntrack modulů a modulů na nich závislých, měl jsem tedy za to, že tím také zaniknou všechny položky v conntrack table. Asi nejpravděpodobněji ale vypadá možnost, že se ve scriptu z nějakého důvodu nf_conntrack nepovede unloadnout, a v conntrack table zůstane info o daném spojení (neNATovaném, třeba z toho důvodu, že vzniklo během předchozího (re)startu iptables v době, kdy nat table ještě nebyla kompletní), souhlasíte? Nebo je ještě jiná možnost, jak se to může stát?
    Na ten flush conntrack table jsem nevzpomněl, zkusím - jestli to zase někdy nastane.

    22.5.2015 15:38 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: ignorováni SNAT, do internetu odchází pakety s privátní IP

    Pokud skript opravdu unloadne všechny relevantní moduly, tak ta varianta, že conntrack položka vznikla v okně mezi natažením modulu a přidáním NAT pravidla, mi zní jako docela pravděpodobné vysvětlení. Pak by asi bylo vhodné na konec skriptu nastavujícího firewall přidat flushnutí conntracku.

    Je to ale dvousečné. Dokážu si třeba představit situaci, kdy mám existující TCP spojení ven a aplikační data proudí jen směrem dovnitř (HTTP stahuje velký soubor, případně SSH spojení se spuštěným příkazem generujícím výsup). Pak se pakety zvenku budou zahazovat a zevnitř nikoho nenapadne nějaké poslat, takže spojení po nějakém čase umře (pokud bude REJECT, pak umře hned). Ono se asi celkově při návrhu toho skriptu předpokládá, že se bude spouštět při startu, ne za běhu systému, kdy už tam probíhá nějaká komunikace.

    19.11.2015 14:28 Franta Hanzlik
    Rozbalit Rozbalit vše Re: ignorováni SNAT, do internetu odchází pakety s privátní IP
    Teď se mi stal stejný případ - po malé úpravě (změna IP adresy v INPUT chainu filter pravidla) v souboru konfigurace iptables a po jejich restartu opět odcházely (opět UDP SIP, ale jiný Linux stroj) pakety s ne-nat-ovanou zdrojovou IP. Inspekcí conntrack table a následným výmazem ('conntrack -D -p udp ...', ale flush conntrack table by musel zabrat také) příslušných spojení se problém odstranil.
    Zajímavé bylo, že v tomto případě se jednalo o SIP traffic ze čtyř Siemens Gigaset VoIP základen, a problém (neNATování) se týkal všech čtyř. Pravděpodobnost, že by v době startu iptables nastala všechna čtyři spojení je nepravděpodobná, tak jsem se koukal na konfiguraci jádra - a tady je asi příčina problému.
    Jádro je sestaveno s volbami:
    CONFIG_NETFILTER=y
    CONFIG_NETFILTER_ADVANCED=y
    CONFIG_BRIDGE_NETFILTER=y
    CONFIG_NETFILTER_NETLINK=m
    CONFIG_NETFILTER_NETLINK_QUEUE=m
    CONFIG_NETFILTER_NETLINK_LOG=m
    CONFIG_NF_CONNTRACK=y
    CONFIG_NF_CONNTRACK_MARK=y
    CONFIG_NF_CONNTRACK_SECMARK=y
    CONFIG_NF_CONNTRACK_ZONES=y
    CONFIG_NF_CONNTRACK_EVENTS=y
    CONFIG_NF_CONNTRACK_AMANDA=m
    CONFIG_NF_CONNTRACK_FTP=m
    CONFIG_NF_CONNTRACK_H323=m
    CONFIG_NF_CONNTRACK_IRC=m
    CONFIG_NF_CONNTRACK_NETBIOS_NS=m
    CONFIG_NF_CONNTRACK_PPTP=m
    CONFIG_NF_CONNTRACK_SANE=m
    CONFIG_NF_CONNTRACK_SIP=m
    CONFIG_NF_CONNTRACK_TFTP=m
    CONFIG_NETFILTER_TPROXY=m
    CONFIG_NETFILTER_XTABLES=y
    CONFIG_NF_CONNTRACK_IPV4=y
    
    tj. nf_conntrack a nf_conntrack_ipv4 jsou v jádře, ne jako moduly, a tudíž conntrack table se nevyprázdní.
    Druhá zajímavost je, že stav těch špatných spojení byl (aspoň myslím) 'ASSURED' a tak zůstal napořád, a traffic se neNAToval. Asi protože se VoIP zařízení neustále pokoušelo o navázání spojení, tak příslušná položka v conntrack table zřejmě zřejmě nevypadla na nějaký timeout.

    Zásadní je samozřejmě to, že jsem s existujícími spojeními v conntrack table a jejich ovlivňováním iptable pravidel vůbec nepočítal, moje chyba. Díky za nakopnutí!

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.