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í
×
    dnes 21:11 | IT novinky

    Stack Overflow se dohodl s OpenAI o zpřístupnění obsahu Stack Overflow pro vylepšení OpenAI AI modelů.

    Ladislav Hagara | Komentářů: 0
    dnes 17:55 | Nová verze

    AlmaLinux byl vydán v nové stabilní verzi 9.4 (Mastodon, 𝕏). S kódovým názvem Seafoam Ocelot. Přehled novinek v příspěvku na blogu a v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    dnes 17:11 | IT novinky

    Před 50 lety, 5. května 1974 v žurnálu IEEE Transactions on Communications, Vint Cerf a Bob Kahn popsali protokol TCP (pdf).

    Ladislav Hagara | Komentářů: 0
    dnes 13:44 | Zajímavý článek

    Bylo vydáno do češtiny přeložené číslo 717 týdeníku WeeklyOSM přinášející zprávy ze světa OpenStreetMap.

    Ladislav Hagara | Komentářů: 0
    dnes 04:00 | Nová verze

    Byla vydána (Mastodon, 𝕏) nová stabilní verze 2.10.38 svobodné aplikace pro úpravu a vytváření rastrové grafiky GIMP (GNU Image Manipulation Program). Přehled novinek v oznámení o vydání a v souboru NEWS na GitLabu. Nový GIMP je již k dispozici také na Flathubu.

    Ladislav Hagara | Komentářů: 5
    dnes 00:22 | Komunita

    Google zveřejnil seznam 1220 projektů od 195 organizací (Debian, GNU, openSUSE, Linux Foundation, Haiku, Python, …) přijatých do letošního, již dvacátého, Google Summer of Code.

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

    Na základě DMCA požadavku bylo na konci dubna z GitHubu odstraněno 8535 repozitářů se zdrojovými kódy open source emulátoru přenosné herní konzole Nintendo Switch yuzu.

    Ladislav Hagara | Komentářů: 7
    včera 00:33 | Nová verze

    Webový prohlížeč Dillo (Wikipedie) byl vydán ve verzi 3.1.0. Po devíti letech od vydání předchozí verze 3.0.5. Doména dillo.org již nepatří vývojářům Dilla.

    Ladislav Hagara | Komentářů: 0
    4.5. 15:00 | Komunita

    O víkendu probíhá v Bostonu, a také virtuálně, konference LibrePlanet 2024 organizovaná nadací Free Software Foundation (FSF).

    Ladislav Hagara | Komentářů: 0
    4.5. 13:22 | Nová verze

    Nová vývojová verze Wine 9.8 řeší mimo jiné chybu #3689 při instalaci Microsoft Office 97 nahlášenou v roce 2005.

    Ladislav Hagara | Komentářů: 0
    Podle hypotézy Mrtvý Internet mj. tvoří většinu online interakcí boti.
     (62%)
     (8%)
     (15%)
     (15%)
    Celkem 117 hlasů
     Komentářů: 8, poslední 4.5. 08:25
    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.