Fórum Ubuntu CZ/SK
Ostatní => Ubuntu Server => Téma založeno: 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?
-
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:
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 ...
-
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:
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:(
-
protože je v
iptables -t nat -L
:)
-
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.
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:~#
-
Asi by to chtělo vypsat sem cestu, jakou potřebujete otevřít.
Komplet schéma :)
-
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.
-
hm, trochu si to ujasníme - o jaký druh streamu se konkrétně jedná?
-
Pres HTTP protokol. Jinak kdyz se k tomu muze pripojit vice lidi tak se tomu rika jak?
: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
: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;)
-
Ono by stacilo jen to HTTP protoze mms je hlavne pro wokna media player. VLC je lepsi a zvlada i to HTTP.
-
hm, pokud se nepletu (a asi se pletu) mělo by to být ok ...
-
Myslím že multimediální streamy využívají UDP a ne TCP, pokud jsem napsal blbost tak mě prosím opravte
-
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?
-
Vida ho, to mi vůbec nedošlo :D
jojo, bude to UDP - povolit místo TCP
-
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:(
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:~#
-
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:
telnet xxx.xxx.xxx.xxx 8080
dostat byste měl něco podobného:
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.
-
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?
-
Pokud jsem pochopil, tak 62.240.177.251 je IP adresa toho kamaráda, ne? Takže já to asi těžko vyzkouším :)
-
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?
-
Tak pokud je 62.240.177.251 Vaše IP, pak je něco špatně :)
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á?
-
Tak pokud je 62.240.177.251 Vaše IP, pak je něco špatně :)
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.
-
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:
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 :)
-
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?
-
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:
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-
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.