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 16:33 | Nová verze Ladislav Hagara | Komentářů: 0
    dnes 03:22 | Zajímavý článek

    V aktuálním příspěvku na blogu počítačové hry Factorio (Wikipedie) se vývojář s přezývkou raiguard rozepsal o podpoře Linuxu. Rozebírá problémy a výzvy jako přechod linuxových distribucí z X11 na Wayland, dekorace oken na straně klienta a GNOME, změna velikosti okna ve správci oken Sway, …

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

    Rakudo (Wikipedie), tj. překladač programovacího jazyka Raku (Wikipedie), byl vydán ve verzi #171 (2024.04). Programovací jazyk Raku byl dříve znám pod názvem Perl 6.

    Ladislav Hagara | Komentářů: 3
    včera 17:44 | Nová verze

    Společnost Epic Games vydala verzi 5.4 svého proprietárního multiplatformního herního enginu Unreal Engine (Wikipedie). Podrobný přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    26.4. 17:11 | Nová verze

    Byl vydán Nextcloud Hub 8. Představení novinek tohoto open source cloudového řešení také na YouTube. Vypíchnout lze Nextcloud AI Assistant 2.0.

    Ladislav Hagara | Komentářů: 12
    26.4. 13:33 | Nová verze

    Vyšlo Pharo 12.0, programovací jazyk a vývojové prostředí s řadou pokročilých vlastností. Krom tradiční nadílky oprav přináší nový systém správy ladících bodů, nový způsob definice tříd, prostor pro objekty, které nemusí procházet GC a mnoho dalšího.

    Pavel Křivánek | Komentářů: 9
    26.4. 04:55 | Zajímavý software

    Microsoft zveřejnil na GitHubu zdrojové kódy MS-DOSu 4.0 pod licencí MIT. Ve stejném repozitáři se nacházejí i před lety zveřejněné zdrojové k kódy MS-DOSu 1.25 a 2.0.

    Ladislav Hagara | Komentářů: 44
    25.4. 17:33 | Nová verze

    Canonical vydal (email, blog, YouTube) Ubuntu 24.04 LTS Noble Numbat. Přehled novinek v poznámkách k vydání a také příspěvcích na blogu: novinky v desktopu a novinky v bezpečnosti. Vydány byly také oficiální deriváty Edubuntu, Kubuntu, Lubuntu, Ubuntu Budgie, Ubuntu Cinnamon, Ubuntu Kylin, Ubuntu MATE, Ubuntu Studio, Ubuntu Unity a Xubuntu. Jedná se o 10. LTS verzi.

    Ladislav Hagara | Komentářů: 14
    25.4. 14:22 | Komunita

    Na YouTube je k dispozici videozáznam z včerejšího Czech Open Source Policy Forum 2024.

    Ladislav Hagara | Komentářů: 3
    25.4. 13:22 | Nová verze

    Fossil (Wikipedie) byl vydán ve verzi 2.24. Jedná se o distribuovaný systém správy verzí propojený se správou chyb, wiki stránek a blogů s integrovaným webovým rozhraním. Vše běží z jednoho jediného spustitelného souboru a uloženo je v SQLite databázi.

    Ladislav Hagara | Komentářů: 0
    KDE Plasma 6
     (75%)
     (8%)
     (2%)
     (15%)
    Celkem 860 hlasů
     Komentářů: 4, poslední 6.4. 15:51
    Rozcestník

    Dotaz: iptables - nat - nefunkční pravidlo

    30.11.2011 00:13 J.M
    iptables - nat - nefunkční pravidlo
    Přečteno: 780×
    Zravím, mám jeden server (ip s1)... a potřeboval bych přesměrovat jeho port 80 na můj (ip m1). (V konfiguraci mám normálně IP adresy, ale ty nemusí vědět všichni) Dal jsem dohromady následující pravidla - zkoušel jsem je jednotlivě, ale ani jedno nešlo, ve všech případech jsem se na web nedostal:

    iptables -t nat -A PREROUTING -p tcp -i eth0 -d s1 --dport 80 --sport 80 -j DNAT --to m1:80

    iptables -t nat -A PREROUTING -d s1 -p tcp --dport 80 -j DNAT --to m1:80

    iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to m1:80

    Na cílovém stroji je port 80 povolen, takže chyba je někde v pravidlech. Jen ještě dodám, že s1 i m1 jsou externí ip adresy. Napadá Vás prosím něco? Předem dík.

    Řešení dotazu:


    Odpovědi

    30.11.2011 08:28 Filip Jirsák | skóre: 68 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: iptables - nat - nefunkční pravidlo
    První pravidlo je špatně, druhé i třetí dělá to, co chcete. Pokud s1 není router pro m1, nebo pokud chcete, aby přesměrování fungovalo i v rámci případné společné sítě s1 a m1, je potřeba přidat na s1 do POSTROUTING ještě pravidlo pro SNAT, které zdrojovou adresu nastaví na adresu stroje s1. m1 se tak nebude pokoušet odpovědět přímo klientovi, ale pošle paket zpět na s1, který paket s odpovědí „odNATuje“ a pošle klientovi.
    30.11.2011 14:56 J.M
    Rozbalit Rozbalit vše Re: iptables - nat - nefunkční pravidlo
    Díky za odpověď. Aplikoval jsem tedy:

    iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to m1:80

    iptables -t nat -A POSTROUTING -s m1 -p tcp --dport 80 -j SNAT --to s1:80

    ale stejně stálý výsledek..
    30.11.2011 15:28 Filip Jirsák | skóre: 68 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: iptables - nat - nefunkční pravidlo
    V tom druhém pravidle určitě nemůže být podmínka -s m1 – ten SNAT se má aplikovat na všechny pakety, které přišly „zvenku“ a jsou přesměrovány na m1. Takže spíš
    iptables -t nat -A POSTROUTING -d m1 -p tcp --dport 80 -j SNAT --to s1:80
    Pravidla NATu se píšou pro pakety, které spojení navazují – ostatní pakety ve spojení už pak jádro upraví automaticky po vzoru toho prvního podle toho, kterým směrem paket prochází.
    1.12.2011 13:35 alkoholik | skóre: 40 | blog: Alkoholik
    Rozbalit Rozbalit vše Re: iptables - nat - nefunkční pravidlo
    Tri poznamky:
    1) "-j SNAT --to s1:80" je blbost. Urcite nechcete nahrazovat port. Spravne je "-j SNAT --to-source s1"
    2) Zkontrolujte si, jestli mate na serveru zapnuty ip_forward.
    Prikaz "cat /proc/sys/net/ipv4/ip_forward" musi vratit "1"
    3) Pri kontrole doporucuju pouzivat "iptables -L -nv -t nat". To -v ukaze citac, kolik paketu se trefilo do daneho pravidla.
    1.12.2011 13:37 alkoholik | skóre: 40 | blog: Alkoholik
    Rozbalit Rozbalit vše Re: iptables - nat - nefunkční pravidlo
    Sorry. Koukam, ze uz jste se od pulnoci dostali dal..
    ;)
    1.12.2011 15:36 Filip Jirsák | skóre: 68 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: iptables - nat - nefunkční pravidlo
    "-j SNAT --to s1:80" je blbost. Urcite nechcete nahrazovat port. Spravne je "-j SNAT --to-source s1"
    Zřejmě je --to nedokumentovaná alternativa k --to-source – jinak by iptables při volání s neznámým parametrem ohlásily chybu, což by nám snad tazatel prozradil.

    Uvést vedle IP adresy i port není na škodu, i když se port nemění – webový provoz se často přesměrovává na neprivilegovaný port 8080, s explicitním uvedením portu je to pak konzistentní v různých konfiguracích.
    2) Zkontrolujte si, jestli mate na serveru zapnuty ip_forward. Prikaz "cat /proc/sys/net/ipv4/ip_forward" musi vratit "1"
    Tohle nastavení má vliv i na NAT? Vždycky jsem měl za to, že se to týká jen routování a NAT tohle nastavení obchází.
    1.12.2011 18:32 alkoholik | skóre: 40 | blog: Alkoholik
    Rozbalit Rozbalit vše Re: iptables - nat - nefunkční pravidlo
    1) Bacha, tady jsme v postroutingu a nahrazujeme zdroj. Cilovy port je 80 a kdyz nahradime zdrojovy z vysokeho na 80, tak bych necekal, ze se povede navazat vic nez jedno spojeni.
    2) Ma.
    2.12.2011 00:03 Filip Jirsák | skóre: 68 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: iptables - nat - nefunkční pravidlo
    Bacha, tady jsme v postroutingu a nahrazujeme zdroj.
    No jo, jasně, nějak jsem to přehlédl.
    2.12.2011 21:30 J.M
    Rozbalit Rozbalit vše Re: iptables - nat - nefunkční pravidlo
    cat toho souboru mi vrátil 0, editnul jsem ten soubor na 1 a už to jede ... Pánové já Vám mockrát děkuji ! :)
    2.12.2011 21:42 J.M
    Rozbalit Rozbalit vše Re: iptables - nat - nefunkční pravidlo
    ale nejsem si jistý, že to zpět putuje skrze původní server... resp. dle tcpdump to moc nevypadá...
    2.12.2011 21:45 J.M
    Rozbalit Rozbalit vše Re: iptables - nat - nefunkční pravidlo
    resp. přesměruje mě to, ale dále už si povídám jen s tím dalším serverem...
    3.12.2011 12:41 Filip Jirsák | skóre: 68 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: iptables - nat - nefunkční pravidlo
    To by nefungovalo, protože klient by dostal odpověď z jiné IP adresy, než kam posílal požadavek, takže by si to nespojil do jednoho spojení. Máte filtr tcpdumpu nastaven tak, aby zachytil pakety v obou směrech? Např. u HTTP spojení mají pakety s odpovědí (ze serevru ke klientovi) zdrojový port 80 (ne cílový).
    3.12.2011 22:02 J.M
    Rozbalit Rozbalit vše Re: iptables - nat - nefunkční pravidlo
    Pravda... no teď, když to znovu sleduji... tak na tom stroji odkud přesměrovávám je vidět ten požadavek, že mne odkazuje na druhý server... pak proběhne komunikace mezi servery a dále když se po webu pohybuji, tak už je vidět jen komunikace na cílovém stroji.. tcpdump píše přímo komunikaci mez mnou a cílovém stroji... viz. přiložený výpis.. třeba si to špatně vykládám a ty stroje se mezi sebou domluví...

    tcpdump port 80
    tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
    listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
    21:50:25.279631 IP mujPC.23450 > s1.http: Flags [S], seq 2794593060, win 8192, options [mss 1452,nop,nop,sackOK], length 0
    21:50:25.279643 IP s1.23450 > m1.http: Flags [S], seq 2794593060, win 8192, options [mss 1452,nop,nop,sackOK], length 0
    21:50:25.280381 IP m1.http > s1.23450: Flags [S.], seq 1803668736, ack 2794593061, win 4380, options [mss 1460,nop,nop,sackOK], length 0
    21:50:25.280395 IP s1.http > mujPC.23450: Flags [S.], seq 1803668736, ack 2794593061, win 4380, options [mss 1460,nop,nop,sackOK], length 0
    21:50:25.296125 IP mujPC.23450 > s1.http: Flags [.], ack 1, win 64665, length 0
    21:50:25.296131 IP s1.23450 > m1.http: Flags [.], ack 1, win 64665, length 0
    21:50:25.306620 IP mujPC.23450 > s1.http: Flags [P.], seq 1:370, ack 1, win 64665, length 369
    21:50:25.306624 IP s1.23450 > m1.http: Flags [P.], seq 1:370, ack 1, win 64665, length 369
    21:50:25.306870 IP m1.http > s1.23450: Flags [.], ack 370, win 5360, length 0
    21:50:25.306875 IP s1.http > mujPC.23450: Flags [.], ack 370, win 5360, length 0
    21:50:25.308119 IP m1.http > s1.23450: Flags [P.], seq 1:279, ack 370, win 5360, length 278
    21:50:25.308123 IP s1.http > mujPC.23450: Flags [P.], seq 1:279, ack 370, win 5360, length 278
    21:50:25.522509 IP mujPC.23450 > s1.http: Flags [.], ack 279, win 64387, length 0
    21:50:25.522514 IP s1.23450 > m1.http: Flags [.], ack 279, win 64387, length 0
    21:50:40.324203 IP m1.http > s1.23450: Flags [F.], seq 279, ack 370, win 5360, length 0
    21:50:40.324214 IP s1.http > mujPC.23450: Flags [F.], seq 279, ack 370, win 5360, length 0
    21:50:40.337945 IP mujPC.23450 > s1.http: Flags [.], ack 280, win 64387, length 0
    21:50:40.337950 IP s1.23450 > m1.http: Flags [.], ack 280, win 64387, length 0
    21:50:47.867839 IP mujPC.23450 > s1.http: Flags [F.], seq 370, ack 280, win 64387, length 0
    21:50:47.867845 IP s1.23450 > m1.http: Flags [F.], seq 370, ack 280, win 64387, length 0
    21:50:47.868090 IP m1.http > s1.23450: Flags [.], ack 371, win 5360, length 0
    21:50:47.868101 IP s1.http > mujPC.23450: Flags [.], ack 371, win 5360, length 0
    21:51:55.128450 IP whl0051.whservidor.com.http > s1.43677: Flags [S.], seq 1100246647, ack 674711610, win 16384, options [mss 1460], length 0
    21:51:55.128464 IP s1.43677 > whl0051.whservidor.com.http: Flags [R], seq 674711610, win 0, length 0
    21:55:57.216162 IP whl0051.whservidor.com.http > s1.53157: Flags [S.], seq 1661978047, ack 674711610, win 16384, options [mss 1460], length 0
    21:55:57.216191 IP s1.53157 > whl0051.whservidor.com.http: Flags [R], seq 674711610, win 0, length 0
    Jinak mockrát děkuji za ochotu, asi to vypadá zvláštně... Rozhodně to není tak, že bych o to neměl zájem, jak tu psal kolega - spíše mě tlačí čas a s mými zkušenostmi mi to nešlo... :-)
    3.12.2011 22:33 J.M
    Rozbalit Rozbalit vše Re: iptables - nat - nefunkční pravidlo
    zítra zkusím zapojit nb s puštěným apachem, na druhou síťovku se stejnými pravidly(akorát, že s int. IP nb a druhým interfacem) to by mělo dokázat, že ty pravidla fungují... mám pravdu?
    30.11.2011 09:20 ubka7617
    Rozbalit Rozbalit vše Re: iptables - nat - nefunkční pravidlo
    iptables -t nat -A POSTROUTING -d m1 -j MASQUERADE
    30.11.2011 15:16 Sten
    Rozbalit Rozbalit vše Re: iptables - nat - nefunkční pravidlo
    -s m1
    30.11.2011 17:24 J.M
    Rozbalit Rozbalit vše Re: iptables - nat - nefunkční pravidlo
    Zkusil jsem obě možnosti, jak s maškarádou, tak s POSTROUTING. Výsledek žádný.. :(
    30.11.2011 17:50 Filip Jirsák | skóre: 68 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: iptables - nat - nefunkční pravidlo
    Tak zkuste třeba pomocí tcpdump sledovat, kam až pakety dorazí a kde se ztratí.
    30.11.2011 18:08 J.M
    Rozbalit Rozbalit vše Re: iptables - nat - nefunkční pravidlo
    Poradil by jste mi prosím, jak tcpdump správně použít? Spustil jsem ho takto tcpdump -i eth1 'port 80', ale tím nezjistím, kde ten paket skončí...
    1.12.2011 00:14 Filip Jirsák | skóre: 68 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: iptables - nat - nefunkční pravidlo
    Spusťte to na každém rozhraní, kudy by měl paket putovat. Tj. postupně na příchozím rozhraní serveru, odchozím rozhraní serveru, příchozí rozhraní vašeho počítače.
    1.12.2011 09:56 J.M
    Rozbalit Rozbalit vše Re: iptables - nat - nefunkční pravidlo
    Díky. Podle tcpdump jsem zjistil, že ty pakety vůbec na ten druhý stroj nedorazí..

    použil jsem
    iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to m1:80 
    
    iptables -t nat -A POSTROUTING -d m1 -p tcp --dport 80 -j SNAT --to-source s1
    A ano s1 má skutečně jen rozhraní eth0.
    1.12.2011 11:01 Filip Jirsák | skóre: 68 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: iptables - nat - nefunkční pravidlo
    Takže ten paket přijde na s1:eth0, udělá se DNAT a SNAT, paket přes s1:eth0 odejde, a na m1 už nepřijde? To by vypadalo spíš na problém s routováním nebo mezilehlým firewallem.
    30.11.2011 17:51 J.M
    Rozbalit Rozbalit vše Re: iptables - nat - nefunkční pravidlo

    Jestli to pomůže, tak iptables-save

    # Generated by iptables-save v1.4.12 on Wed Nov 30 17:42:20 2011
    *filter
    :INPUT ACCEPT [367:29521]
    :FORWARD ACCEPT [0:0]
    :OUTPUT ACCEPT [316:48602]
    COMMIT
    # Completed on Wed Nov 30 17:42:20 2011
    # Generated by iptables-save v1.4.12 on Wed Nov 30 17:42:20 2011
    *mangle
    :PREROUTING ACCEPT [385:30385]
    :INPUT ACCEPT [367:29521]
    :FORWARD ACCEPT [0:0]
    :OUTPUT ACCEPT [320:49114]
    :POSTROUTING ACCEPT [320:49114]
    COMMIT
    # Completed on Wed Nov 30 17:42:20 2011
    # Generated by iptables-save v1.4.12 on Wed Nov 30 17:42:20 2011
    *nat
    :PREROUTING ACCEPT [0:0]
    :INPUT ACCEPT [0:0]
    :OUTPUT ACCEPT [0:0]
    :POSTROUTING ACCEPT [0:0]
    -A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j DNAT --to-destination m1:80
    -A OUTPUT -p tcp -m tcp --dport 80 -j DNAT --to-destination m1:80
    -A POSTROUTING -o eth0 -j MASQUERADE
    COMMIT
    # Completed on Wed Nov 30 17:42:20 2011
    1.12.2011 02:28 jaroleto
    Rozbalit Rozbalit vše Re: iptables - nat - nefunkční pravidlo
    Ten vas vypis je krizenec krokodyla s komarem.

    Misto radku s masquerade tam patri tohle:
    iptables -t nat -A POSTROUTING -d m1 -p tcp --dport 80 -j SNAT --to-source s1
    (vsimnete si, ze na konci radky za s1 neni port)

    Opravdu provoz prichazi i odchazi stejnym rozhranim?

    Jinak vzhledem k faktu, ze nemate problem sem dat neco, co evidentne prozrazuje vas nezajem se tomu aspon trochu venovat, bude lepsi si najit nekoho znaleho.
    3.12.2011 02:34 N0rT0n | skóre: 9 | blog: Lama | Brno
    Rozbalit Rozbalit vše Re: iptables - nat - nefunkční pravidlo
    Zdravim, sice nad ranem s polozavrenyma ocima a mozkovou aktivitou blizkou absolutni nule, ale co vyzkouset toto (doufam, ze jsem to nezdrbal):
    echo "1" > /proc/sys/net/ipv4/ip_forward   
    
    /sbin/iptables -P INPUT DROP      
    /sbin/iptables -P FORWARD DROP    
    /sbin/iptables -P OUTPUT ACCEPT   
    
    /sbin/iptables -t nat -A POSTROUTING -o <externi rozhrani> -j MASQUERADE                                   
    /sbin/iptables -A FORWARD -i <interni rozhrani> -o <externi rozhrani> -j ACCEPT                                          
    /sbin/iptables -A FORWARD -i <externi rozhrani> -o <interni rozhrani> -m state --state ESTABLISHED,RELATED -j ACCEPT     
    /sbin/iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT                       
    /sbin/iptables -A INPUT -i lo -j ACCEPT                                                      
    /sbin/iptables -t nat -A PREROUTING -p tcp -i <externi rozhrani> -d <externi IP> --dport 80 -j DNAT --to <interni ip>:80
    /sbin/iptables -A FORWARD -p tcp -i <externi rozhrani> -d <interni IP> --dport 80 -j ACCEPT
    
    13.12.2011 20:03 J.M
    Rozbalit Rozbalit vše Re: iptables - nat - nefunkční pravidlo
    Super přesměrování funguje, teď trochu OT. Mám problém, že pokud k těm směrovacím pravidlům udělám iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE (potřebuji nasdílet internet), tak to přestane fungovat, resp. směrování asi jde, ale internet to už nenasdílí.. nejspíš je tam nějaký konflikt, ale nevygooglil jsem, co dělám špatně... jen to, že nejsem sám, kdo to řešil, ale žádná kloudná odpověď...
    14.12.2011 08:14 Filip Jirsák | skóre: 68 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: iptables - nat - nefunkční pravidlo
    Pravděpodobně myslíte pravidla pro NAT – směrovací pravidla se netýkají firewallu, ale směrování (routování), jsou uložena ve směrovací (routovací) tabulce a v linuxu se s nimi pracuje pomocí příkazu ip route.

    Pro ten váš dotaz by bylo potřeba vidět výpis aktuálních pravidel firrewallu a NATu, bez toho se těžko odhaduje, která pravidla dostanou přednost. Taky je lepší na to založit nový dotaz, s tímto to moc nesouvisí – a stejně tam výpis současných pravidel uvedete, to je dostatečný kontext.
    15.12.2011 08:00 J.M
    Rozbalit Rozbalit vše Re: iptables - nat - nefunkční pravidlo
    v NATovacích tabulkách je jen přesměrování LDAPu na pc v interní síti.... + ta maškaráda... přes route mne to napadlo taky, ale zatím se mi to nedaří ... mám tam vlastní dhcp server a když té síti v route dám defaultní gw, tak se na net stejnak nedostanu.. a další problém je v tom, že když hledám, jak nasdílet internet, tak všude nakonec napíšou tu maškarádu...
    15.12.2011 09:09 Filip Jirsák | skóre: 68 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: iptables - nat - nefunkční pravidlo
    Pokud máte na vnějším rozhraní routeru statickou IP adresu, je lepší místo MASQUERADE použít SNAT. Jinak je to pravidlo ale snad správně (pokud eth0 je vnější rozhraní routeru) a problém bude v něčem jiném. Zjistěte, co přesně vám nefunguje – překlad DNS, pakety přes router neprojdou ven, nevrátí se odpověď? Spusťte si tcpdump na vnitřním i vnějším rozhraní a sledujte, jaké pakety procházejí a které se kde ztratí.
    17.12.2011 23:57 J.M
    Rozbalit Rozbalit vše Re: iptables - nat - nefunkční pravidlo
    Už to funguje .. díky mockrát za pomoc

    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.