我有一个很好的openvpn设置。 有大约50个客户连接,一切都方便丹迪。 我需要这些客户端之一通过vpn路由所有stream量。 我为该特定的客户端设置了一个ccd ,并添加了push "redirect-gateway def1" 。 路由表似乎在客户端更新。 我可以访问vpn中的所有主机,但不能访问vpn以外的其他任何东西。 当从客户端tracerouting,一切都进入VPN网关,但之后没有更进一步。 我相信罪魁祸首是在服务器上的iptablesconfiguration。
这是设置
从10.171.0.1(CLIENT)我可以ping通10.170.0.1(VPNGATEWAY)。 事实上,我可以ping 10.170.xx和10.171.xx中的所有主机,但不能ping 8.8.8.8。
这是iptables conf
有一些规则,我拿出来使其更简单。
*filter :INPUT DROP [1000:900000] :FORWARD DROP [0:0] :OUTPUT DROP [0:0] -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -s 127.0.0.1 -j ACCEPT # here were some rules accepting certain ports 22, 80, etc -A INPUT -p icmp -m icmp --icmp-type 8 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT -A INPUT -p icmp -m icmp --icmp-type 13 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT -A INPUT -p icmp -m icmp --icmp-type 30 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT # this is the client that needs internet thru the gateway # i've tried to make as permissive as possible but still to no avail -A INPUT -s 10.171.0.1 -j ACCEPT -A FORWARD -s 10.171.0.1 -j ACCEPT -A FORWARD -j REJECT --reject-with icmp-port-unreachable -A OUTPUT -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT COMMIT
我已经additionaly尝试添加
iptables -t nat -A POSTROUTING -s 10.171.0.1 -o eth0 -j MASQUERADE
但仍然没有工作。 有任何想法吗?
你有这两个允许你的stream量的规则。 但是这些规则可能不是你想要的。
或者至less不仅仅是你想要的。
-A INPUT -s 10.171.0.1 -j ACCEPT -A FORWARD -s 10.171.0.1 -j ACCEPT
您的防火墙规则集似乎被devise为有状态,但这两个规则是无状态的。 您需要添加两条规则来处理另一方向的stream量,或添加一些状态匹配。