仅允许本地主机 VPN 上的端口 22

仅允许本地主机 VPN 上的端口 22

我租用了一个远程服务器,并在该服务器上运行 OpenVPN 服务。我试图保护我的防火墙 (iptables),以便唯一可以访问 SSH 的人是连接到 VPN (localhost) 的人。但是,每当我执行 DROP 命令时,我都无法再访问 SSH,除非我重新启动服务器,因为在我被踢出 SSH 之前防火墙设置尚未保存。

下面是我尝试用来实现此目的的代码。

iptables -A INPUT -p tcp -s localhost --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j DROP

非常感谢您的帮助,谢谢。

答案1

连接到 OpenVPN 服务会为连接的计算机提供一个新 IP 地址,该地址可用于与服务器通信。根据您的配置,此新 IP 地址可能会桥接到服务器实际接口,或在新的虚拟“隧道”设备中创建,该设备通常称为 tun0。无论如何,使用 VPN 与服务器通信不会通过 localhost 接口。检查主机中是否存在 tun0 接口,如果存在,请尝试使用:

iptables -A INPUT -p tcp -i tun0 --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j DROP

相关内容