我已经浏览了所有可能的线索和答案,但仍然不确定如何实现这一目标。首先,以下情况是否可能?
我的 ubuntu 16.04 服务器已安装并运行 OpenVPN。我可以通过 Windows 客户端连接到此 VPN。服务器还托管一些我需要访问的文件,我想暂时使用 FTP(我知道 SFTP 更好)。我可以使 FTP 端口只能通过我的 VPN 连接访问吗?
因为我不确定,而且同样的问题已经被问了数百次,有人能指出我正确的方向吗?
答案1
您有多种选择。
将您的 FTP 服务器配置为仅侦听您的 OpenVPN 接口/地址。
使用 iptables 过滤来自 OpenVPN 接口以外的流量。如果您的默认策略是 DROP 并且您的 OpenVPN 接口名称是
tun0
接受来自 OpenVPN 接口的所有流量:iptables -A INPUT -i tun0 -j ACCEPT
或者接受 OpenVPN 网络的匹配,例如,如果您的 OpenVPN 配置使用 10.8.0.0/24 网络中的地址:
iptables -A INPUT -s 10.8.0.0/24 -j ACCEPT
如果您想要更具体的规则来限制仅适用于 FTP 的规则,则需要匹配 FTP 端口,并且对于被动 FTP 还可以使用
RELATED
目标。提供了相当好的解释这个答案关于服务器故障。对于 SSH(和 SFTP)来说,按端口号配置匹配规则更简单,因为它不使用任何其他传入端口。当 OUTPUT 链的默认策略是 DROP 时,您还需要有类似的规则来允许传出流量(分别为
-A OUTPUT -o tun0 -j ACCEPT
和-A OUTPUT -d 10.8.0.0/24 -j ACCEPT
)