Debian iptables

Debian iptables

在相当长的一段时间里,我试图在 VPN 内的 2 个设备之间转发端口或/和连接,但我无法弄清楚。我在 Debian 9.0 x64 上使用外部 IP 设置了 VPS。我基于 github 上的 hwdsl2/setup-ipsec-vpn 创建了 VPN。已安装,一切正常。我可以通过 VPN 连接到服务器,并且我的 IP 地址更改为ExternalIP。

现在的问题是,我想走另一条路。

IncommingIP -> (eth0)ExternalIP -转发到->(pppX) VPNIP

我当前的 iptables 看起来像这样:

# Generated by iptables-save v1.6.0 on Mon Jun 29 10:55:31 2020
*nat
:PREROUTING ACCEPT [21617:1100891]
:INPUT ACCEPT [17101:829091]
:OUTPUT ACCEPT [703:55681]
:POSTROUTING ACCEPT [703:55681]
-A PREROUTING -p udp -m udp --dport 53 -j DNAT --to-destination 8.8.8.8
-A PREROUTING -p tcp -m tcp --dport 53 -j DNAT --to-destination 8.8.8.8
-A POSTROUTING -s 192.168.42.0/24 -o eth0 -j MASQUERADE

#-A PREROUTING -i eth0 -p tcp --dport 8080 -j DNAT --to-destination 192.168.42.10:8080
#-A POSTROUTING -d 192.168.42.10 -o ppp0 -p tcp --dport 8080 -j SNAT --to-source 192.168.42.1
-A PREROUTING --src 0/0 --dst 192.168.42.10 -p tcp --dport 8080 -j REDIRECT --to-ports 8080


COMMIT
# Completed on Mon Jun 29 10:55:31 2020
# Generated by iptables-save v1.6.0 on Mon Jun 29 10:55:31 2020
*filter
:INPUT ACCEPT [16:676]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [221:33480]
:f2b-sshd - [0:0]
-A INPUT -p tcp -m multiport --dports 22 -j f2b-sshd
-A INPUT -p udp -m udp --dport 1701 -m policy --dir in --pol none -j DROP
-A INPUT -m conntrack --ctstate INVALID -j DROP
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p udp -m multiport --dports 500,4500 -j ACCEPT
-A INPUT -p udp -m udp --dport 1701 -m policy --dir in --pol ipsec -j ACCEPT
-A INPUT -p udp -m udp --dport 1701 -j DROP

在我尝试 PRE/POST 路由之后,有一些剩余的内容不起作用。

我应该更改什么才能使其作为转发工作(比如说用于测试的端口 8080)?另外为什么我无法在 VPN 网络内连接? (只有 ping 有效)括号里的数字到底是什么?:PREROUTING ACCEPT [21617:1100891]

请帮忙

答案1

您的 NAT 规则不正确。尝试以下操作(假设您刚刚安装了 IPSec/VPN 服务器)

查看现有 NAT 链规则(删除之前):

$ sudo iptables -t nat -L -n --line-numbers

删除现有 NAT 规则:

$ sudo iptables -t nat -D POSTROUTING 3

重复上述命令,直到剩下以下两个 NAT 规则:

1    MASQUERADE  all  --  192.168.42.0/24      0.0.0.0/0
2    MASQUERADE  all  --  192.168.43.0/24      0.0.0.0/0            policy match dir out pol none

现在是时候添加 DNAT 规则了,该规则TCP 8080将从互联网 IP ( 1.2.3.4) 转发到 VPN 客户端 IP ( 192.168.42.10)

$ sudo iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 8080 -j DNAT --to-destination 192.168.42.10:8080

这就是你所需要的。如果一切正常,您可以保存 iptables 规则。

相关内容