IPTables - przekierowanie subdomeny

Konfiguracja serwerów, usług, itp.
MaTyyy
Posty: 4
Rejestracja: 27 stycznia 2013, 00:00

IPTables - przekierowanie subdomeny

Post autor: MaTyyy »

Witam, wszystkich użytkowników Debiana.

Zaszła potrzeba przekierowania portu np. 9999 na inny serwer zewnętrzny np. onet.pl:1234.
Oczywiście, włączyłem przekierowania IPv4 poleceniem:

Kod: Zaznacz cały

echo 1 > /proc/sys/net/ipv4/ip_forward 
Użyłem więc magicznego podręcznika systemowego IPTables i wpisałem takie polecenia:

Kod: Zaznacz cały

iptables -t nat -A PREROUTING -p tcp --dport 9999 -j DNAT --to IP-ZEWNĘTRZNE:1234
iptables -t nat -A POSTROUTING -p tcp -d IP-ZEWNĘTRZNE --dport 1234 -j MASQUERADE
Niestety, to nie działa. Drugie polecenie wyświetla błąd:

Kod: Zaznacz cały

iptables: No chain/target/match by that name.
piroaa
Beginner
Posty: 324
Rejestracja: 11 kwietnia 2008, 14:46

Post autor: piroaa »

Witam.
Pytanie pomocnicze : to polecenie wydajesz oczywiście na routerze czy może na stacji klienckiej?
Pozdrawiam.
MaTyyy
Posty: 4
Rejestracja: 27 stycznia 2013, 00:00

Post autor: MaTyyy »

VPS z debianem 6.0
piroaa
Beginner
Posty: 324
Rejestracja: 11 kwietnia 2008, 14:46

Post autor: piroaa »

Dalej nie do końca wiem co chcesz zrobić.
Ten VPS jest jedyną maszyną jaką zarządzasz czy może pełni on funkcję routera ma dwie wirtualne karty jedna z zewnętrznym IP druga z jakąś prywatną siecią i do tej sieci prywatnej podłączone są jakieś inne serwery i to im chcesz przekierowywać pakiety.
Jeśli przypadek drugi to zrobisz to faktycznie za pomocą:

Kod: Zaznacz cały

iptables -t nat -A PREROUTING ... 

Maskarada też się przyda ale do udostępnienia łącza komputera w sieci z prywatnymi IP.
Natomiast jeśli chodzi o przypadek pierwszy i chcesz to robić dla lokalnego komputera to z tego co wiem to niestety nic z tego.
Popatrz tutaj:
http://zsk.wsti.pl/publikacje/iptables_przystepnie.htm
Jeśli by wierzyć w to co tam napisano to :
Pakiet stworzony na lokalnym komputerze przez jeden z procesów odbędzie swoją drogę kolejno przez:
  • łańcuch OUTPUT tablicy raw
  • łańcuch OUTPUT tablicy mangle
  • łańcuch OUTPUT tablicy nat (tylko jeśli jest pakietem nawiązującym nowe połączenie)
  • łańcuch OUTPUT tablicy filter
oraz
Pakiet, którego celem nie jest nasza lokalna maszyna, a otrzymany został z jednego z interfejsów sieciowych odbędzie swoją drogę przez:
  • łańcuch PREROUTING tablicy raw
  • łańcuch PREROUTING tablicy mangle
  • łańcuch PREROUTING tablicy nat (tylko pakiet tworzący nowe połączenie)
  • łańcuch FORWARD tablicy mangle
  • łańcuch FORWARD tablicy filter
  • łańcuch POSTROUTING tablicy mangle
  • łańcuch POSTROUTING tablicy nat (tylko pakiet tworzący nowe połączenie)
Czyli pakiety wyprodukowane przez nas samych nie przełarzą przez łańcuchy POSTROUTING tablicy nat i PREROUTING tablicy nat
czyli z forwardowania nici.
Możesz zmienić IP docelowe poprzez zabawę z plikiem /etc/hosts ale portu w ten sposób nie zmienisz.
Oczywiście mogę nie mieć racji w takim przypadku prosił bym by mnie ktoś poprawił.
Pozdrawiam.
MaTyyy
Posty: 4
Rejestracja: 27 stycznia 2013, 00:00

Post autor: MaTyyy »

Dziękuję, że w ogóle ktoś tutaj odpisał. VPS jest podłączony do sieci, uzyskuje IP publiczne, i chodzi mi o przekierowanie ruchu portu 9999 na inny host.

Ogólnie z podręcznika wynika, że polecenia, które podałem w pierwszej wiadomości są poprawne, tylko nie rozumiem czemu ta druga zwraca błąd. Chodzi konkretniej o serwer TeamSpeak3, gdy ktoś wpisze IP mojego VPS-a do TeamSpeak to przekieruje go na inny host, z innym portem.
ODPOWIEDZ