VPN маскарад и NAT

0

Я пытаюсь настроить VPS для пересылки трафика от клиента openvpn в Интернет, а также пересылать входящий трафик порта 80 обратно клиенту. Я следовал этому руководству, чтобы настроить сервер и создать конфигурацию клиента. На VPS у меня есть правила iptables:

-t nat -A POSTROUTING -s 10.0.0.0/8 -o eth0 -j MASQUERADE

а также

-t nat -A PREROUTING -p tcp -m tcp --dport 80 -j DNAT --to-destination 10.8.0.6

Первое правило из руководства, и работает хорошо. Второе правило позволяет мне подключаться к VPN-клиенту через порт 80 из Интернета, но http-запросы от клиента к Интернету не выполняются (https по-прежнему работает и проходит через VPN). Кто-нибудь может порекомендовать рабочую конфигурацию для этой проблемы, или объяснить, почему эта не работает?

Изменить: конфигурация VPS

# iptables -L -n
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  

# iptables -L -n -t nat
Chain PREROUTING (policy ACCEPT)
target     prot opt source        destination  
DNAT       tcp  --  0.0.0.0/0     0.0.0.0/0    tcp dpt:80 to:10.8.0.6

Chain INPUT (policy ACCEPT)
target     prot opt source        destination  

Chain OUTPUT (policy ACCEPT)
target     prot opt source        destination  

Chain POSTROUTING (policy ACCEPT)
target     prot opt source        destination  
MASQUERADE  all  --  10.0.0.0/8    0.0.0.0/0   

# cat /proc/sys/net/ipv4/ip_forward
1
user47122
источник
Я полагаю, что Linux, на котором вы выполняете эти правила, является воротами в Интернет, верно? Первый маршрут в порядке, потому что вы находитесь за NAT. А со вторым, если я плохо понял ... вы хотите получить доступ к своему внутреннему серверу из интернета, правильно? в любом случае, нам нужно знать все ваши правила iptables ... используйте iptables -Lи «ptables -t nat -L`, чтобы показать их ... цепочка FORWARD с политикой ACCEPT?
ОскарАкаЭлвис
Да, VPS - это шлюз. Я отредактировал свой пост, чтобы показать его конфиг.
user47122
Я видел, как вы редактировали сообщение ... приятно. Нам нужно больше данных ... что у вас есть, если вы выполняете cat /proc/sys/net/ipv4/ip_forward0 или 1? потому что я думаю, что вам нужна 1 здесь.
ОскарАкаЭлвис
Какие порты необходимы для подключения к openvpn из интернет-клиента? только 80 тср? Я видел в руководстве, которое вы поставили на ссылку, они используют UDP 1194. Отображение кажется правильным для порта 80 TCP. Убедитесь, что у хоста openvpn есть правильный шлюз (linux с машиной iptables)
OscarAkaElvis
У меня есть opevpn, настроенный для подключения по udp 1194. http wget, инициированный из клиента vpn, не подключается к Интернету.
user47122

Ответы:

1

Правило предварительной маршрутизации не указывало интерфейс или назначение, поэтому запросы HTTP, поступающие от VPN-клиента через tun0, отправлялись обратно самому себе.

Рабочий конфиг есть

iptables -t nat -A POSTROUTING -s 10.0.0.0/8 -o eth0 -j MASQUERADE
iptables -t nat -A PREROUTING -p tcp -i eth0 -d $eth0_addr --dport 80 -j DNAT --to 10.8.0.6
user47122
источник
отлично! так что вы можете пометить свой ответ как решенный. Я надеюсь, что любой из моих комментариев помог вам. Ура!
ОскарАкаЭлвис