Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2016-07-16 12:51:02

  manmartin - Użytkownik

manmartin
Użytkownik
Zarejestrowany: 2016-07-09

Przekierowywanie portów przez NAT IPTABLES POSTROUTING

Witam

Mam serwer z 2 portami ppp0 (wan adres 95.171.197.XX) i eth3 (lan adres 10.0.0.1) - miedzy ppp0 i eth3 jest nat, do tego dochodzi tunel (tun0 sieć za tunelem 192.168.1.0/24). Z sieci LAN mam dostęp do sieci za tunelem 192.168.1.0/24, lecz problem pojawia się gdy chcę sobie porty przekierować z zewnątrz przez interfejs ppp0. Winny jest temu routing na bramie 192.168.1.1 ponieważ ma trasę tylko do 10.0.0.1, a nie ma możliwości dodania trasy do 95.171.197.XX. Po prostu pakiet po forewardingu ma adres źródłowy 95.171.197.XX i dociera do sieci 192.168.1.0/24, ale odpowiedź jest wysyłana interfejsem WAN zamiast tun0. Znalazłem opis POSTROUTING https://www.digitalocean.com/community/tutorials/ho … with-iptables ale po zastosowaniu tego i tak nie działa.

zrobiłem to tak:

Kod:

iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 25544 -j DNAT --to-destination 10.0.0.1:25544
iptables -t nat -A POSTROUTING -o tun0 -p tcp --dport 80 -d 192.168.1.1 -j SNAT --to-source 10.0.0.1:25544

Dobrze mam wpisane adresy?

Cel jest taki: Pakiet wchodzący przez ppp0 portem 25544 ma zmieniane IP źródłowe na 10.0.0.1 i jest wysyłany do 192.168.1.1 po porcie 80
192.168.1.1 odpowiada na żądanie HTTP i wysyła pakiet do 10.0.0.1
10.0.0.1 przekazuje pakiet do 95.171.197.81

Ma ktoś pomysł jak zrobić IPTABLES żeby pakiet po forewardingu nie miał źródłowego adresu tylko lokalny?

Offline

 

#2  2016-07-17 14:06:27

  manmartin - Użytkownik

manmartin
Użytkownik
Zarejestrowany: 2016-07-09

Re: Przekierowywanie portów przez NAT IPTABLES POSTROUTING

Udało się znaleźć rozwiązanie taki jak chciałem - po forewardingu docelowe urządzenie dostaje pakiet w którym źródło to adres lokalny, a nie sieci globalnej.

Kod:

#foreward z interfejsu zewnętrznego ppp0 do adresu lokalnego 192.168.1.1:80
iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 25544 -j DNAT --to-destination 192.168.1.1:80
#zmiana źródła w pakiecie do adresu 192.168.1.1 wychodzącego interfejsem tun0
iptables -t nat -A POSTROUTING -o tun0 -p tcp --dport 80 -d 192.168.1.1 -j SNAT --to-source 10.0.0.1

Tylko jest taki problem dla innych urządzeń w sieci to działa, ale dla sieci za tunelem nie działa chociaż istnieje połączenie miedzy tymi sieciami.

Jakieś sugestie?

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
To nie jest tylko forum, to nasza mała ojczyzna ;-)