Fórum Ubuntu CZ/SK

Ostatní => Ubuntu Server => Téma založeno: MichoCZ 05 Ledna 2009, 17:15:30

Název: NAT
Přispěvatel: MichoCZ 05 Ledna 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?
Název: Re: NAT
Přispěvatel: Petr Merlin Vaněček 06 Ledna 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 ...
Název: Re: NAT
Přispěvatel: MichoCZ 06 Ledna 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:(
Název: Re: NAT
Přispěvatel: Petr Merlin Vaněček 06 Ledna 2009, 15:21:28
protože je v
Kód: [Vybrat]
iptables -t nat -L

:)
Název: Re: NAT
Přispěvatel: MichoCZ 06 Ledna 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:~#

Název: Re: NAT
Přispěvatel: Petr Merlin Vaněček 06 Ledna 2009, 16:52:07
Asi by to chtělo vypsat sem cestu, jakou potřebujete otevřít.
Komplet schéma :)
Název: Re: NAT
Přispěvatel: MichoCZ 06 Ledna 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.
Název: Re: NAT
Přispěvatel: Petr Merlin Vaněček 07 Ledna 2009, 08:52:40
hm, trochu si to ujasníme - o jaký druh streamu se konkrétně jedná?
Název: Re: NAT
Přispěvatel: MichoCZ 07 Ledna 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;)
Název: Re: NAT
Přispěvatel: MichoCZ 07 Ledna 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.
Název: Re: NAT
Přispěvatel: Petr Merlin Vaněček 08 Ledna 2009, 08:22:42
hm, pokud se nepletu (a asi se pletu) mělo by to být ok ...
Název: Re: NAT
Přispěvatel: jiri-j 08 Ledna 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
Název: Re: NAT
Přispěvatel: MichoCZ 08 Ledna 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?
Název: Re: NAT
Přispěvatel: Petr Merlin Vaněček 08 Ledna 2009, 17:07:47
Vida ho, to mi vůbec nedošlo :D
jojo, bude to UDP - povolit místo TCP
Název: Re: NAT
Přispěvatel: MichoCZ 08 Ledna 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:~#
Název: Re: NAT
Přispěvatel: Petr Merlin Vaněček 08 Ledna 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.
Název: Re: NAT
Přispěvatel: MichoCZ 08 Ledna 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?
Název: Re: NAT
Přispěvatel: Petr Merlin Vaněček 08 Ledna 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 :)
Název: Re: NAT
Přispěvatel: MichoCZ 08 Ledna 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?
Název: Re: NAT
Přispěvatel: Petr Merlin Vaněček 08 Ledna 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á?
Název: Re: NAT
Přispěvatel: MichoCZ 08 Ledna 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.
Název: Re: NAT
Přispěvatel: Petr Merlin Vaněček 08 Ledna 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 :)
Název: Re: NAT
Přispěvatel: MichoCZ 08 Ledna 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?
Název: Re: NAT
Přispěvatel: Petr Merlin Vaněček 08 Ledna 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ší:
Citace: http://www.osa.cz/upload/sazebnik_ii_internet.pdf
ú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
Název: Re: NAT
Přispěvatel: MichoCZ 08 Ledna 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.