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

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: Iptables přesměrování portu (DNAT) v Ubuntu 8.10 [vyřešeno]  (Přečteno 8058 krát)

horada

  • Návštěvník
  • Příspěvků: 77
Dobrý den,
mám následující problém - mám notebook připojený k internetu (přes eth0 - veřejná IP adresa). Virtuální počítač (VirtualBox) s adresou 192.168.100.1/24 mám připojen k virtuálnímu rozhraní (tap0 - s adresou 192.168.100.3/24). V tom virtuálním počítači testuji určité webové stránky (po zadání adresy do prohlížeče v notebooku 192.168.100.1 vše funguje jak má - stránky se normálně zobrazí). Nyní ale potřebuji tyto stránky zpřístupnit "zvenku" (aby se na ně mohl dostat někdo jiný) - chtěl jsem to provést přesměrováním příchozího provozu v noteboku (rozhraní eth0)  na port 80 (nebo jiný) na adresu 192.168.100.1:80 pomocí iptables:
Kód: [Vybrat]
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination 192.168.100.1:80Toto řešení však z neznámého důvodu nefunguje (pokud spustím webový server přímo v notebooku tak se na něj z venku normálně dostanu - a zadám li toto pravidlo tak už ne - ale nedostanu se ani na web toho virtuálního pc).

V iptables jiná pravidla nejsou a politika je na ACCEPT:
Kód: [Vybrat]
root@JMENOPC:~# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
root@JMENOPC:~# iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         
DNAT       tcp  --  anywhere             anywhere            tcp dpt:www to:192.168.100.1:80

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
Routovací tabulka by taky snad měla být v pořádku:
Kód: [Vybrat]
root@NAZEVPC:~# route
Směrovací tabulka v jádru pro IP
Adresát         Brána           Maska           Přízn Metrik Odkaz  Užt Rozhraní
192.168.100.0   *               255.255.255.0   U     0      0        0 tap0
...
a předávání paketu (nebo jak se to jmenuje) je taky povoleno:
Kód: [Vybrat]
root@JMENOPC:~# cat /proc/sys/net/ipv4/ip_forward
1

Nemáte někdo ponětí kde dělám chybu? Mockrát díky za jakýkoliv tip.
« Poslední změna: 16 Března 2009, 13:37:53 od Petr Merlin Vaněček »
Dobré věci jsou drahé, ty nejlepší jsou zdarma....

Ubuntu 10.10, ntb: IBM ThinkPad T60  | (G)Vim, LaTeX, Python, Git, VLC, mpd + Sonata | Fotografování

Krtko

  • Stálý člen
  • **
  • Příspěvků: 540
Re: Iptables přesměrování portu (DNAT) v Ubuntu 8.10
« Odpověď #1 kdy: 12 Března 2009, 16:26:09 »
Ahoj, skus to takto:

iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 80 -j DNAT --to 192.168.100.1:80
iptables -A FORWARD -p tcp -i eth0 -d 192.168.100.1 --dport 80 -j ACCEPT

horada

  • Návštěvník
  • Příspěvků: 77
Re: Iptables přesměrování portu (DNAT) v Ubuntu 8.10
« Odpověď #2 kdy: 12 Března 2009, 16:43:41 »
Nefunguje :(
Dobré věci jsou drahé, ty nejlepší jsou zdarma....

Ubuntu 10.10, ntb: IBM ThinkPad T60  | (G)Vim, LaTeX, Python, Git, VLC, mpd + Sonata | Fotografování

Krtko

  • Stálý člen
  • **
  • Příspěvků: 540
Re: Iptables přesměrování portu (DNAT) v Ubuntu 8.10
« Odpověď #3 kdy: 12 Března 2009, 19:18:32 »
A mas ten preklad urcite nastaveny na spravnom interface? Resp. nemas nahodou este v tom virtualnom pc zapnuty dalsi firewall?

horada

  • Návštěvník
  • Příspěvků: 77
Re: Iptables přesměrování portu (DNAT) v Ubuntu 8.10
« Odpověď #4 kdy: 12 Března 2009, 19:25:26 »
No k internetu jsem připojen přes eth0 takže myslím že interface je správný (konkrétně myslím že ta část příkazu po -j funguje - když to pravidlo smažu tak se z venku dostanu na webserver který běží přímo v notebooku - když ho tam zadám tak už ne - problém tedy bude až někde při tom předávání dále. V tom routeru (virtualnim pc) jsou všechny tabulky taky prázdné a politika na ACCEPT. Když jsem toto zkusil nastavit na tom virtualnim pc (jen přesměrovat z jednoho portu na druhý) tak to funguje - když to zkusím přímo ve fyzickém pc (přesměrovat třeba jen na jiný port tak ne) (v routeru je Debian).
Dobré věci jsou drahé, ty nejlepší jsou zdarma....

Ubuntu 10.10, ntb: IBM ThinkPad T60  | (G)Vim, LaTeX, Python, Git, VLC, mpd + Sonata | Fotografování

Petr Merlin Vaněček

  • Moderátor
  • Závislák
  • ***
  • Příspěvků: 5057
    • Lomítkáři
Re: Iptables přesměrování portu (DNAT) v Ubuntu 8.10
« Odpověď #5 kdy: 13 Března 2009, 08:36:27 »
Je to trochu zamotané, nerozumím struktuře vaší sítě :)

V PC máte iface eth0 - na tom je veřejná IP, ze které chcete mapovat port?
Další adaptér je tap0 s nějakou IP (proč???), které je definováno jako host interface (nemělo by to býti spíše nějaké vbox0?) ?
Stiskni CTRL + W ...
80% mozku tvoří kapalina ... u některých brzdová

horada

  • Návštěvník
  • Příspěvků: 77
Re: Iptables přesměrování portu (DNAT) v Ubuntu 8.10
« Odpověď #6 kdy: 13 Března 2009, 11:40:02 »
Ona ta struktura je poněkud složitější - nevím jestli ji zde mam celou popisovat - ta část která se týká toho problému je snad vysvětlena dobře.
(nevím jestli to teť víc nezamotám - ale pro vysvětlení) Celkově je to tak že onen virtuální PC slouží jako testovací "router" (to asi neni to správné slovo - spíše proxy server) se Squidem a Dansguardianem - který má dvě virtuální rozhraní:
  • 1. je přes nat (nastaveno ve Virtualboxu) připojeno "přímo" k internetu
  • 2. jsem měl připojené do virtuální sítě s druhým virtuálním PC který tvořil testovací vnitřní síť - spouštění dvou virtuálních počítačů a práce s nimi je však na mém notebooku z důvodu rychlosti nemožná nebo alespoň komplikovaná, proto jsem vytvořil v notebooku virtuální síťové rozhraní (tap0) které jsem připojil do "virtuální vnitřní sítě" (192.168.100.0/24) abych mohl funkci Dansguardianu testovat jednoduchým nastavením proxy serveru ve svém prohlížeči v notebooku na adresu 192.168.100.1 (adresa druhého rozhraní virtuálního routeru) - se nám to zamotává co ;D. - Vše funguje k plné spokojenosti. K Dansguardianu však zároveň vytvářím webové konfigurační rozhraní a nyní bych k němu potřeboval přistupovat z internetu (=ukázat jej vedoucímu své bc práce) - abych s sebou nemusel nosit notebook nebo přenášet virtuální pc dokud to nebude nutné...
Dobré věci jsou drahé, ty nejlepší jsou zdarma....

Ubuntu 10.10, ntb: IBM ThinkPad T60  | (G)Vim, LaTeX, Python, Git, VLC, mpd + Sonata | Fotografování

Petr Merlin Vaněček

  • Moderátor
  • Závislák
  • ***
  • Příspěvků: 5057
    • Lomítkáři
Re: Iptables přesměrování portu (DNAT) v Ubuntu 8.10
« Odpověď #7 kdy: 13 Března 2009, 20:24:41 »
Hezky pěkně :)

Už je mi to trochu jasné, proč tap iface :)
Tj. port 80 je promapován na fyzickou mašinu na které jeden vbox s testovacím "routerem", který jej má promapovávat právě na ten virtuální stroj?

Možná by se mi zamlouval výpis ip route
Stiskni CTRL + W ...
80% mozku tvoří kapalina ... u některých brzdová

horada

  • Návštěvník
  • Příspěvků: 77
Re: Iptables přesměrování portu (DNAT) v Ubuntu 8.10
« Odpověď #8 kdy: 13 Března 2009, 21:07:08 »
Ještě jsem to zkusil malinko nakreslit (v příloze)...
výpis z ip route (v tuto chvíli jsem na domácí síti takže veřejná adresa je nahrazena síťí 192.168.1.0/24 - jinak by to mělo bý stejné):
Kód: [Vybrat]
root@JMENOPC:~# ip route
192.168.100.0/24 dev tap0  proto kernel  scope link  src 192.168.100.3
192.168.1.0/24 dev eth0  proto kernel  scope link  src 192.168.1.2  metric 1
169.254.0.0/16 dev eth0  scope link  metric 1000
default via 192.168.1.1 dev eth0  proto static

[attachment deleted by admin]
Dobré věci jsou drahé, ty nejlepší jsou zdarma....

Ubuntu 10.10, ntb: IBM ThinkPad T60  | (G)Vim, LaTeX, Python, Git, VLC, mpd + Sonata | Fotografování

Krtko

  • Stálý člen
  • **
  • Příspěvků: 540
Re: Iptables přesměrování portu (DNAT) v Ubuntu 8.10
« Odpověď #9 kdy: 16 Března 2009, 00:00:21 »
A neskusal si robit tcpdump na eth0 vo fyzickom PC a ethX vo virtualnom, na ktory by mal traffic dorazit? Uvidime ci to vobec prejde cez ten tap interface.

horada

  • Návštěvník
  • Příspěvků: 77
Re: Iptables přesměrování portu (DNAT) v Ubuntu 8.10
« Odpověď #10 kdy: 16 Března 2009, 11:21:16 »
Díky za tip - s tcpdumpem sice neumim - ale něco jsem zkusil.
Příkaz tcpdump -i eth1 -l port 80 ve virtualu (router) vypíše při jednom požadavku toto: (zkoušeno přes nějaký anonimizer (http://anonymouse.cz) - proto tam je takova IP
Kód: [Vybrat]
12:04:12.341424 IP 77.93.216.69.1730 > router.www: S 839762306:839762306(0) win 65535 <mss 1460,nop,nop,sackOK>
12:04:15.580852 IP 77.93.216.69.1730 > router.www: S 839762306:839762306(0) win 65535 <mss 1460,nop,nop,sackOK>
12:04:21.368968 IP 77.93.216.69.1730 > router.www: S 839762306:839762306(0) win 65535 <mss 1460,nop,nop,sackOK>
Takže až do routeru se "něco" dostane - ale už se mi nepodařilo najít nic co by lezlo zpátky (příkaz tcpdump -i eth1 -l not tcp port ssh vrátí na jeden požadavek to samé a nic jiného zpátky ... takže asi bude chyba někde v tom routeru - ještě na to kouknu více a kdyžtak dám vědět ... každopádně díky za postrčení.
Dobré věci jsou drahé, ty nejlepší jsou zdarma....

Ubuntu 10.10, ntb: IBM ThinkPad T60  | (G)Vim, LaTeX, Python, Git, VLC, mpd + Sonata | Fotografování

Krtko

  • Stálý člen
  • **
  • Příspěvků: 540
Re: Iptables přesměrování portu (DNAT) v Ubuntu 8.10
« Odpověď #11 kdy: 16 Března 2009, 11:50:08 »
Mozes poslat este routing z toho virtualu?

horada

  • Návštěvník
  • Příspěvků: 77
Re: Iptables přesměrování portu (DNAT) v Ubuntu 8.10
« Odpověď #12 kdy: 16 Března 2009, 12:08:57 »
Sem se nadtím zamyslel a ještě než jste napsal tak si myslím že jsme na správné stopě ...  on to v tom virtualu bude posílat na jiné rozhraní ... (nemůžu to nyní potvrdit ale myslím si to...)
Dobré věci jsou drahé, ty nejlepší jsou zdarma....

Ubuntu 10.10, ntb: IBM ThinkPad T60  | (G)Vim, LaTeX, Python, Git, VLC, mpd + Sonata | Fotografování

horada

  • Návštěvník
  • Příspěvků: 77
Re: Iptables přesměrování portu (DNAT) v Ubuntu 8.10
« Odpověď #13 kdy: 16 Března 2009, 13:16:03 »
Tak je to tak - chyba byla samozřejmě na mé straně protože virtuální PC měl defaultní cestu přes rozhraní eth0 a ne přes eth1. Díky všem co mi poradili a dostrkali k řešení... Jsem zase o chlup chytřejší...
Dobré věci jsou drahé, ty nejlepší jsou zdarma....

Ubuntu 10.10, ntb: IBM ThinkPad T60  | (G)Vim, LaTeX, Python, Git, VLC, mpd + Sonata | Fotografování

Petr Merlin Vaněček

  • Moderátor
  • Závislák
  • ***
  • Příspěvků: 5057
    • Lomítkáři
Re: Iptables přesměrování portu (DNAT) v Ubuntu 8.10 [vyřešeno]
« Odpověď #14 kdy: 16 Března 2009, 13:38:37 »
→ vyřešeno :)
Stiskni CTRL + W ...
80% mozku tvoří kapalina ... u některých brzdová

Krtko

  • Stálý člen
  • **
  • Příspěvků: 540
Re: Iptables přesměrování portu (DNAT) v Ubuntu 8.10 [vyřešeno]
« Odpověď #15 kdy: 16 Března 2009, 14:53:52 »
Tak hlavne, ze to uz frci. Ono routing je niekedy "svina" :)

OT: Nevadi, ze som tikal? Mne to pripada jednoduchsia ta komunikacia potom.

horada

  • Návštěvník
  • Příspěvků: 77
Re: Iptables přesměrování portu (DNAT) v Ubuntu 8.10 [vyřešeno]
« Odpověď #16 kdy: 16 Března 2009, 15:28:27 »
S tykáním nemám žádný problém, jen sem asi moc slušně vychován tak s tím sám nezačínám :).
Dobré věci jsou drahé, ty nejlepší jsou zdarma....

Ubuntu 10.10, ntb: IBM ThinkPad T60  | (G)Vim, LaTeX, Python, Git, VLC, mpd + Sonata | Fotografování

 

Provoz zaštiťuje spolek OpenAlt.