Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.

Autor Téma: NAT  (Přečteno 6488 krát)

MichoCZ

  • Návštěvník
  • *
  • Příspěvků: 33
    • Zobrazit profil
NAT
« kdy: 05 Leden 2009, 17:15:30 »
Nejak to z wiki a podobnych navodu nechapu. Potrebuji aby kdyz na server dojde pozadavek na tisk z venku (LPR) tak aby ho nasmeroval na tiskarnu na domaci siti. Co nastavit asi do iptables? A s tim souvisi i jiny pripad kdy chci hudbu stremovanou na mistni siti (http://10.250.250.7:8080) posilat ven na 62.240.177.251:8080 nebo jiny port. Je to mozne a pripadne co nastavit jak?

Petr Merlin Vaněček

  • Moderátor
  • Guru
  • ***
  • Příspěvků: 5008
    • Zobrazit profil
    • Lomítkáři
Re: NAT
« Odpověď #1 kdy: 06 Leden 2009, 08:37:15 »
Cokoliv jde na určitý port ven přes NAT projde "nezměněno" takže vesele streamujte.
Pokud chcete něco propustit na určitý port stroje uvnitř, tak použijte toto:
Kód: [Vybrat]
iptables -A INPUT -i eth0 -p tcp --dport 8080 -j ACCEPT                                                                        
iptables -t nat -A PREROUTING -p tcp --dport 8080 -i eth0 -j DNAT --to 10.250.250.7:8080

-i - vnější iface
-p - protokol (tcp,udp,icmp,all)
--dport - cílový port na vnějším iface (funguje jen s proto tcp/udp)
ostatní snad netřeba vysvětlovat ...
Registered Linux user #421281
Stiskni CTRL + W ...
80% mozku tvoří kapalina ... u některých brzdová

MichoCZ

  • Návštěvník
  • *
  • Příspěvků: 33
    • Zobrazit profil
Re: NAT
« Odpověď #2 kdy: 06 Leden 2009, 15:05:43 »
Cokoliv jde na určitý port ven přes NAT projde "nezměněno" takže vesele streamujte.
Pokud chcete něco propustit na určitý port stroje uvnitř, tak použijte toto:
Kód: [Vybrat]
iptables -A INPUT -i eth0 -p tcp --dport 8080 -j ACCEPT                                                                        
iptables -t nat -A PREROUTING -p tcp --dport 8080 -i eth0 -j DNAT --to 10.250.250.7:8080

-i - vnější iface
-p - protokol (tcp,udp,icmp,all)
--dport - cílový port na vnějším iface (funguje jen s proto tcp/udp)
ostatní snad netřeba vysvětlovat ...

Mam obavu ze mi to nechce zapsat tohle pravidlo:( Opisu to presne ale nedostanu zadnou zpravu jestli to bylo uspesne nebo ne. No a asi ne:( V iptables -L to proste neni:(

Petr Merlin Vaněček

  • Moderátor
  • Guru
  • ***
  • Příspěvků: 5008
    • Zobrazit profil
    • Lomítkáři
Re: NAT
« Odpověď #3 kdy: 06 Leden 2009, 15:21:28 »
protože je v
Kód: [Vybrat]
iptables -t nat -L

:)
Registered Linux user #421281
Stiskni CTRL + W ...
80% mozku tvoří kapalina ... u některých brzdová

MichoCZ

  • Návštěvník
  • *
  • Příspěvků: 33
    • Zobrazit profil
Re: NAT
« Odpověď #4 kdy: 06 Leden 2009, 16:43:47 »
Tak mam pocit ze se mi tam nejak ty pravidla asi zacinaji hadat... Jinak stream ma bezet na adrese http://62.240.177.251:8080 pod VLC (doma to posloucham na 10.250.250.7:8080) ale nejak to ven stale nejde.

Kód: [Vybrat]
root@pkchemsrv:~# iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination
DNAT       tcp  --  anywhere             anywhere            tcp dpt:http-alt to:10.250.250.7:8080
DNAT       tcp  --  anywhere             anywhere            tcp dpt:http-alt to:10.250.250.7:8080
DNAT       tcp  --  anywhere             anywhere            tcp dpt:http-alt to:10.250.250.7:8080

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination
MASQUERADE  all  --  10.250.250.0/24      anywhere

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

root@pkchemsrv:~# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
LOG        all  --  anywhere             anywhere            LOG level debug prefix `BANDWIDTH_IN:'
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:http-alt
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:http-alt
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:http-alt

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
LOG        all  --  anywhere             anywhere            LOG level debug prefix `BANDWIDTH_OUT:'
LOG        all  --  anywhere             anywhere            LOG level debug prefix `BANDWIDTH_IN:'

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
LOG        all  --  anywhere             anywhere            LOG level debug prefix `BANDWIDTH_OUT:'
root@pkchemsrv:~# iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination
DNAT       tcp  --  anywhere             anywhere            tcp dpt:http-alt to:10.250.250.7:8080

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination
MASQUERADE  all  --  anywhere             anywhere

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
root@pkchemsrv:~#


Petr Merlin Vaněček

  • Moderátor
  • Guru
  • ***
  • Příspěvků: 5008
    • Zobrazit profil
    • Lomítkáři
Re: NAT
« Odpověď #5 kdy: 06 Leden 2009, 16:52:07 »
Asi by to chtělo vypsat sem cestu, jakou potřebujete otevřít.
Komplet schéma :)
Registered Linux user #421281
Stiskni CTRL + W ...
80% mozku tvoří kapalina ... u některých brzdová

MichoCZ

  • Návštěvník
  • *
  • Příspěvků: 33
    • Zobrazit profil
Re: NAT
« Odpověď #6 kdy: 06 Leden 2009, 22:53:39 »
No jelikoz ja odesilam pakety z ip 10.250.250.7 na portu 8080 ( ostatni pocitace se pripojuji na 10.250.250.7:8080 a hraje jim tam radio tak predpokladam ze asi paket jde s toho pocitace ven a chci aby sel ven do internetu kamaradovi v jinem meste.

Petr Merlin Vaněček

  • Moderátor
  • Guru
  • ***
  • Příspěvků: 5008
    • Zobrazit profil
    • Lomítkáři
Re: NAT
« Odpověď #7 kdy: 07 Leden 2009, 08:52:40 »
hm, trochu si to ujasníme - o jaký druh streamu se konkrétně jedná?
Registered Linux user #421281
Stiskni CTRL + W ...
80% mozku tvoří kapalina ... u některých brzdová

MichoCZ

  • Návštěvník
  • *
  • Příspěvků: 33
    • Zobrazit profil
Re: NAT
« Odpověď #8 kdy: 07 Leden 2009, 17:01:17 »
Pres HTTP protokol. Jinak kdyz se k tomu muze pripojit vice lidi tak se tomu rika jak?

Kód: [Vybrat]
:sout=#transcode{acodec=mp3,ab=64,channels=2}:duplicate{dst=std{access=http,mux=ts,dst=:8080},dst=std{access=mmsh,mux=ts,dst=:1234}}
pripadne
Kód: [Vybrat]
:sout=#transcode{acodec=mp3,ab=64,channels=2}:duplicate{dst=std{access=http,mux=ts,dst=:8080}}
Tohle je parametr vysilani pro vlc. Doufam ze z toho vyrozumis jak to myslim;)
« Poslední změna: 07 Leden 2009, 21:03:35 od MichoCZ »

MichoCZ

  • Návštěvník
  • *
  • Příspěvků: 33
    • Zobrazit profil
Re: NAT
« Odpověď #9 kdy: 07 Leden 2009, 22:42:15 »
Ono by stacilo jen to HTTP protoze mms je hlavne pro wokna media player. VLC je lepsi a zvlada i to HTTP.

Petr Merlin Vaněček

  • Moderátor
  • Guru
  • ***
  • Příspěvků: 5008
    • Zobrazit profil
    • Lomítkáři
Re: NAT
« Odpověď #10 kdy: 08 Leden 2009, 08:22:42 »
hm, pokud se nepletu (a asi se pletu) mělo by to být ok ...
Registered Linux user #421281
Stiskni CTRL + W ...
80% mozku tvoří kapalina ... u některých brzdová

jiri-j

  • Člen
  • **
  • Příspěvků: 489
  • skill: Lama
    • Zobrazit profil
Re: NAT
« Odpověď #11 kdy: 08 Leden 2009, 12:37:22 »
Myslím že multimediální streamy využívají UDP a ne TCP, pokud jsem napsal blbost tak mě prosím opravte
Acer Aspire 3023WLMi, Sempron 3000+, ATI Mobility Radeon X700, 512MB RAM, Archlinux

MichoCZ

  • Návštěvník
  • *
  • Příspěvků: 33
    • Zobrazit profil
Re: NAT
« Odpověď #12 kdy: 08 Leden 2009, 14:23:25 »
Myslím že multimediální streamy využívají UDP a ne TCP, pokud jsem napsal blbost tak mě prosím opravte
Takze bych mel to prvni pravidlo zopakovat s tim ze chci povolit udp?

Petr Merlin Vaněček

  • Moderátor
  • Guru
  • ***
  • Příspěvků: 5008
    • Zobrazit profil
    • Lomítkáři
Re: NAT
« Odpověď #13 kdy: 08 Leden 2009, 17:07:47 »
Vida ho, to mi vůbec nedošlo :D
jojo, bude to UDP - povolit místo TCP
Registered Linux user #421281
Stiskni CTRL + W ...
80% mozku tvoří kapalina ... u některých brzdová

MichoCZ

  • Návštěvník
  • *
  • Příspěvků: 33
    • Zobrazit profil
Re: NAT
« Odpověď #14 kdy: 08 Leden 2009, 17:52:07 »
Kdyz jsem ho povolil navic tak to nevyslo. Jinak je tam dvakrat protoze si nejsem ted jisty co je sitovka ven a co dovnitr. Bohuzel stream porad z venku chytatelny neni:(

Kód: [Vybrat]
root@pkchemsrv:~# iptables -A INPUT -i eth2 -p udp --dport 8080 --j ACCEPT
root@pkchemsrv:~# iptables -t nat -A PREROUTING -p udp --dport 8080 -i eth2 -j D
NAT --to 10.250.250.7:8080
root@pkchemsrv:~# iptables -A INPUT -i eth0 -p udp --dport 8080 --j ACCEPT
root@pkchemsrv:~# iptables -t nat -A PREROUTING -p udp --dport 8080 -i eth0 -j D
NAT --to 10.250.250.7:8080
root@pkchemsrv:~# iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination
DNAT       tcp  --  anywhere             anywhere            tcp dpt:http-alt to
:10.250.250.7:8080
DNAT       udp  --  anywhere             anywhere            udp dpt:http-alt to
:10.250.250.7:8080
DNAT       udp  --  anywhere             anywhere            udp dpt:http-alt to
:10.250.250.7:8080

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination
MASQUERADE  all  --  anywhere             anywhere

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

root@pkchemsrv:~#

Petr Merlin Vaněček

  • Moderátor
  • Guru
  • ***
  • Příspěvků: 5008
    • Zobrazit profil
    • Lomítkáři
Re: NAT
« Odpověď #15 kdy: 08 Leden 2009, 18:29:41 »
ok, takže jsem se na to trochu více podíval a HTTP stream opravdu nejde přes UDP, ale TCP.
Podle všeho klientské PC inicializuje spojení a server mu začne na otevřený port odesílat data.

Nicméně - pro úplnou jistotu, že nemektám kraviny jsem zkusil následující modelovou situaci:
1) na stroji s IP 192.168.1.4 jsem spustil stream s dst:8080
2) na NAT serveru s IP 192.168.1.1 udělal tcp 8080 accept a DNAT na 192.168.1.4
3) na úplně cizím routeru vně mou síť (jiná veřejná IP) jsem si spustil opět accept  tcp 8080 a DNAT na vněší IP mého stroje (vnitřní IP 192.168.1.1)
4) na svém jiném stroji (192.168.1.5) jsem se pokusil VLC připojit na onu druhou veřejnou IP na port 8080

a hle ... vše jede. Sledováním iptraf jsem se ujistil, že data opravdu tečnou ven a dovnitř přes onen vnější server.

Takže, z oné cizí veřejné IP, ze které se pokoušíte zpřístupnit stream, zkuste nejjednodušeji:
Kód: [Vybrat]
telnet xxx.xxx.xxx.xxx 8080

dostat byste měl něco podobného:
Kód: [Vybrat]
merlin@merlin:~$ telnet xxx.xxx.xxx.xxx 8080
Trying xxx.xxx.xxx.xxx...
Connected to xxx.xxx.xxx.xxx.
Escape character is '^]'.

Pokud tuto hlášku nedostanete, je chyba někde v tom DNATu, případně provider blokuje příchozí port 8080
Možná by nebylo od věci dát sem script, kterým si spouštíte NAT.
« Poslední změna: 08 Leden 2009, 18:32:51 od Petr Merlin Vaněček »
Registered Linux user #421281
Stiskni CTRL + W ...
80% mozku tvoří kapalina ... u některých brzdová

MichoCZ

  • Návštěvník
  • *
  • Příspěvků: 33
    • Zobrazit profil
Re: NAT
« Odpověď #16 kdy: 08 Leden 2009, 19:12:43 »
Ted jsem psal kamosovi at to zkusi jinak stream na te adrese porad bezi takze zkusit muzes i sam jestli to jde;) Script na spousteni natu? Lam-lam nejak netusim kde ho vycucat. On se nespousti sam pri startu?

Petr Merlin Vaněček

  • Moderátor
  • Guru
  • ***
  • Příspěvků: 5008
    • Zobrazit profil
    • Lomítkáři
Re: NAT
« Odpověď #17 kdy: 08 Leden 2009, 19:30:16 »
Pokud jsem pochopil, tak 62.240.177.251 je IP adresa toho kamaráda, ne? Takže já to asi těžko vyzkouším :)
Registered Linux user #421281
Stiskni CTRL + W ...
80% mozku tvoří kapalina ... u některých brzdová

MichoCZ

  • Návštěvník
  • *
  • Příspěvků: 33
    • Zobrazit profil
Re: NAT
« Odpověď #18 kdy: 08 Leden 2009, 19:45:10 »
Pokud jsem pochopil, tak 62.240.177.251 je IP adresa toho kamaráda, ne? Takže já to asi těžko vyzkouším :)

To je moje ip. Kamarad ma predpokladam 62.240.178.251. Ale o to tak moc nejde ne?

Petr Merlin Vaněček

  • Moderátor
  • Guru
  • ***
  • Příspěvků: 5008
    • Zobrazit profil
    • Lomítkáři
Re: NAT
« Odpověď #19 kdy: 08 Leden 2009, 19:49:17 »
Tak pokud je 62.240.177.251 Vaše IP, pak je něco špatně :)

Citace
merlin@merlin:~$ telnet 62.240.177.251 8080
Trying 62.240.177.251...
telnet: Unable to connect to remote host: Connection refused

btw. ukazujete do světa ledacos, možná by bylo fajne nastavit si nějaký ten firewall :) ;)
vidím, že máte v systému dvě síťové karty - eth0 a eth2, která je ta veřejná?
Registered Linux user #421281
Stiskni CTRL + W ...
80% mozku tvoří kapalina ... u některých brzdová

MichoCZ

  • Návštěvník
  • *
  • Příspěvků: 33
    • Zobrazit profil
Re: NAT
« Odpověď #20 kdy: 08 Leden 2009, 20:11:23 »
Tak pokud je 62.240.177.251 Vaše IP, pak je něco špatně :)

Citace
merlin@merlin:~$ telnet 62.240.177.251 8080
Trying 62.240.177.251...
telnet: Unable to connect to remote host: Connection refused

btw. ukazujete do světa ledacos, možná by bylo fajne nastavit si nějaký ten firewall :) ;)
vidím, že máte v systému dvě síťové karty - eth0 a eth2, která je ta veřejná?
To je dost mozne ze ukazuju:D O tom se taky muzeme casem pobavit ze;) No neco spatne asi je ale jak ted dal? Eth0 jde ven.

Petr Merlin Vaněček

  • Moderátor
  • Guru
  • ***
  • Příspěvků: 5008
    • Zobrazit profil
    • Lomítkáři
Re: NAT
« Odpověď #21 kdy: 08 Leden 2009, 20:52:31 »
ok, nějak mi fakt nedochází, proč k tomu forwardu nedojde, vzhledem k tomu, že tam beztak nemáte prakticky žádná pravidla, udělejte toto:

Kód: [Vybrat]
iptables -t nat -F
iptables -F

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -A PREROUTING -p tcp --dport 8080 -i eth0 -j DNAT --to 10.250.250.7:8080

Tím vyčistíme iptables a zkusíme zavést pouze maškarádu a jediné pravidlo (ten accept tam být nemusí, protože vaše default policy inputu už accept je - což je mimochodem solidní dirka :) ) ohledně forwardu v preroutingu.
PS: Kdyby to vytuhlo a nedostal jste se na ten stroj, tak po jeho restartu bude vše zase ok :)
Registered Linux user #421281
Stiskni CTRL + W ...
80% mozku tvoří kapalina ... u některých brzdová

MichoCZ

  • Návštěvník
  • *
  • Příspěvků: 33
    • Zobrazit profil
Re: NAT
« Odpověď #22 kdy: 08 Leden 2009, 21:03:37 »
Tak prosim o zkousku. Mam pocit ze by to mohlo jit. Jinak ted ten firewall;) Muzu pouzit ten z wiki abych si to neshodil zas?
« Poslední změna: 08 Leden 2009, 21:07:54 od MichoCZ »

Petr Merlin Vaněček

  • Moderátor
  • Guru
  • ***
  • Příspěvků: 5008
    • Zobrazit profil
    • Lomítkáři
Re: NAT
« Odpověď #23 kdy: 08 Leden 2009, 21:14:58 »
ok, jede to.

Takže teď ještě jedna malá technická - pokud to takhle volně pouštíte do světa rovnou z éteru, zaděláváte si na solidní malér, protože co si pamatuji z doby cca. před rokem (možná už je to jinak), upravují to podmínky OSA pomocí licence, kterou předpokládám nemáte, neb je dosti "mastná" :)

[edit]
Tak to pořád platí, jen loni to byly cifry o nuly větší:
úplný, nezměněný přenos rozhlasového a televizního vysílání, který je uskutečňován
subjektem odlišným od původního vysílatele. Autorská odměna za jeden kalendářní měsíc činí
2.500,- Kč, pokud počet individuálních přístupů (UIP adres) převýší 25.000 za jeden
kalendářní měsíc, zvyšuje se autorská odměna o stejné procento, o které byl překročen
stanovený limit.
[/edit]

ad firewall - hledejte na fóru napsalo se toho tu o tom už docela dost.
Obecně ale - default policy na INPUT by měl být DROP a následně povolovat porty dle potřeby.

Spojení navázaná zevnitř skrz NAT se povolují takto:
Kód: [Vybrat]
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
« Poslední změna: 08 Leden 2009, 21:21:28 od Petr Merlin Vaněček »
Registered Linux user #421281
Stiskni CTRL + W ...
80% mozku tvoří kapalina ... u některých brzdová

MichoCZ

  • Návštěvník
  • *
  • Příspěvků: 33
    • Zobrazit profil
Re: NAT
« Odpověď #24 kdy: 08 Leden 2009, 21:29:20 »
Ohledne te odmeni to vim. Ale na druhou stranu warezu a hudby je vsude spousta. Navic zmena nastala napriklad kompresi. Znam pripady kdy tohle bylo uznano. No a jinak se da domluvit se subjektem ktery vysilani provozuje. Bude jedine rad:D Jsou to lemplove co znaji jen vino a dechovku:D A jeste jednou dik. Firewall budu resit az zitra asi.