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

第一条规则来自指南,运作良好。第二个规则允许我从互联网连接到端口80上的VPN客户端,但是从客户端到互联网的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

我猜你正在执行这个规则的linux是通往互联网的门户,对吧?第一条路线是好的,因为你在NAT后面。如果我没有以一种糟糕的方式理解你的第二个......你想从互联网上到达你的内部服务器,这是正确的吗?无论如何,我们需要知道你所有的iptables规则...使用 iptables -L 和“ptables -t nat -L”来显示它们......是带有ACCEPT策略的FORWARD链吗?
OscarAkaElvis

是的,VPS是网关。我编辑了我的帖子以显示它的配置。
user47122

我看到你编辑了帖子......很好。我们需要更多数据......如果你执行,你会有什么 cat /proc/sys/net/ipv4/ip_forward 0或1?因为我认为你需要1。
OscarAkaElvis

从Internet客户端连接到openvpn需要哪些端口?只有80 tcp?我在你放在链接上的手册中看到,他们使用的是udp 1194.对于80 tcp端口,映射似乎是正确的。确保openvpn主机有正确的网关(带有iptables机器的linux)
OscarAkaElvis

我有opevpn设置连接udp 1194.从wpn客户端启动的http wget不连接到互联网。
user47122

Answers:


1

预先路由规则未指定接口或目标,因此来自VPN客户端的http请求将通过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

太好了!所以你可以将自己的答案标记为已解决。我希望我的任何评论能帮到你。干杯!
OscarAkaElvis
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.