首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iptables只允许通过VPN传输FTP

iptables只允许通过VPN传输FTP
EN

Server Fault用户
提问于 2017-03-07 13:22:43
回答 1查看 1.3K关注 0票数 0

我已经定义了这个iptable链:

代码语言:javascript
复制
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,如下所示:

代码语言:javascript
复制
iptables -t nat -A POSTROUTING -s 192.168.223.0/24 -o venet0 -j MASQUERADE

现在,当我通过192.168.223.1连接到VPN时,对服务器的FTP访问工作得很好,但是它不能通过服务器IP或域名工作。

如果我通过以下方式暂时取消对21端口的限制:

代码语言:javascript
复制
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。

EN

回答 1

Server Fault用户

发布于 2017-03-07 19:04:48

  1. 所有FTP服务器都有两种模式。被动模式和主动模式。
  2. 当您处于活动模式时,这意味着由您的客户端发起的所有连接都将从您的服务器接收回一个高端口范围的1024-65535到数据流。
  3. 当您处于被动模式时,您必须允许客户端回答它能够连接21和数据流的端口,因为客户端将确定端口范围xxxx-yyyyyy。因此,考虑到这一点,当您定义端口21限制时,所有高端口都停止工作,用于您的客户端在VPN之外选择的数据流,否则您允许端口21和其他来自lan的客户端的任何范围运行良好。
  4. 您必须在您的链上定义端口范围到数据流事件后,修复后,初始连接开始端口21。
  5. FTP使用两个与工作相同的连接:连接和数据流。必须为VPN服务器动态创建的正确网络接口定义连接和流。
    1. ip路由命令将确定每个接口的路由和ip地址范围(公共或私有),例如: ip路由添加192.168.99.0/24 dev ppp0
    2. sysctl -w net.ipv4.ip_forward=1将允许您通过这些接口路由和发送数据。
    3. 假设您的VPN服务器是基于Linux的服务,请检查proxyarp选项。
票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/836782

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档