我已经定义了这个iptable链:
iptables -N VPNonly # create a new chain "VPNonly"
iptables -A VPNonly -i lo -j ACCEPT # allow localhost
iptables -A VPNonly --src xxx.xxx.xxx.xxx -j ACCEPT # allow Server IP
iptables -A VPNonly --src 192.168.223.0/24 -j ACCEPT # allow VPN
iptables -A VPNonly --src 10.8.0.0/24 -j ACCEPT # allow VPN
iptables -A VPNonly --src 10.8.1.0/24 -j ACCEPT # allow VPN
iptables -A VPNonly -j DROP # drop everyone else
iptables -I INPUT -m tcp -p tcp --dport 21 -j VPNonly # use chain VPNonly on port 21我通过OPENVPN进行连接,服务器的点到点地址是192.168.223.1,并得到一个相应的IP,比如说192.168.223.6
我还有一条规则,允许nat通过VPN访问web,如下所示:
iptables -t nat -A POSTROUTING -s 192.168.223.0/24 -o venet0 -j MASQUERADE现在,当我通过192.168.223.1连接到VPN时,对服务器的FTP访问工作得很好,但是它不能通过服务器IP或域名工作。
如果我通过以下方式暂时取消对21端口的限制:
iptables -D INPUT -m tcp -p tcp --dport 21 -j VPNonly 通过VPN连接时,所有IP和域名都适用于FTP。
问:如何修改iptables链以允许通过VPN连接(可能使用nat),在VPN中,FTP客户端连接到服务器IP /域名,而不是VPN上的服务器IP?
注意:对于外部世界,我的IP是服务器的ip xxx.xxx,然后通过nat进行翻译。我本来希望服务器知道它在与自己对话,并希望流量通过回循环接口127.0.0.1 / localhost,但我不确定,因为我的规则链仍然把我锁在门外。
注2:通过SSH连接到服务器并在外壳上使用FTP允许连接到服务器的ip xxx.xxx/域名/ 127.0.0.1 / localhost。只有当我通过VPN连接并且我的IP似乎是服务器的,因为nat规则,我的iptables阻止我连接到端口21。
发布于 2017-03-07 19:04:48
https://serverfault.com/questions/836782
复制相似问题