我正在尝试设置 VPN 服务器 (strognswan) 并允许远程用户仅通过 VPN 访问 redis、nginx、mongodb 等服务 - 用户不应该通过 VPN 访问互联网。
我可以连接到 VPN 服务器并发送 ping(iptables 允许这样做),但我无法分离 Internet(我的公共 IP)和 VPN 网络(10.10.10.0/24)。
当我打开端口 8080 时,我可以通过 VPN 访问服务,而且通过公共 IP 也可以看到它。
我的问题是,如何设置 iptables 以允许 VPN 用户访问服务器上的服务但阻止其他用户访问互联网?
#ipsec.conf - left
left=#myPublicIP
[email protected]
leftsubnet=#myPublicIP/32
leftfirewall=yes
lefthostaccess=yes
答案1
您需要添加用于配置iptables
允许端口的命令,因为我认为您缺少一些重要的选项。
例如,如果 VPN 接口名为tap0
,若要仅为 VPN 客户端打开一个端口,您可以使用以下形式的命令iptables
:
# iptables -A INPUT -i tap0 -m tcp -p tcp --dport 8080 -j ACCEPT
(注意每一个参数,特别-A
是规则的顺序,这非常重要iptables
)