VPN 和本地 Apache 端口转发

VPN 和本地 Apache 端口转发

我有以下配置,Apache Web 主机在我的本地 PC 的端口 4444 上运行。

我已经在 noip.com 注册了 DDNS,并且已正确完成设置。

我想知道,由于我在向客户端展示 Web 应用程序时有点担心将我的 IP 暴露给公众,所以我是否可以在本地运行 VPN,这样当 DDNS 解析 IP 时它会指向我的 VPN 连接?

我只具备 iptables 的基本知识,这对于完成这项任务来说还不够。目前使用 Debian 8。

感谢您的帮助!

答案1

如果你想使用 Web 服务器主机上的 VPN(openvpn)隐藏 Web 服务器的端口

在这种情况下,你可以

  • 配置一个 vpn 服务器,例如 openvpn,监听你主机的 ip,例如 192.168.1.1,端口 1194
  • 配置你的 Web 服务器只监听 192.168.1.1,端口 4444
  • 停止路由器中的端口转发,将流量从互联网转发到 Web 服务器
  • 在路由器中配置端口转发,将来自互联网的流量转发到端口 1194 上的 vpn 服务器(我个人在外部使用不同的端口,以便路由器将端口 11945 转发到主机上的端口 1194)
  • 通过互联网连接到你的 VPN
  • 将浏览器指向你的 Web 应用程序 192.168.1.1,端口 4444

在这种情况下,您可能甚至不需要 iptables。您的路由器只知道将一个端口 (1194) 转发到您的主机,并且只有使用正确的密钥和证书才能建立或连接该端口。所有其他端口都不需要关闭,因为它们无法通过路由器访问。

如果你想让你的 Web 服务器可连接仅有的来自 VPN IP 地址

不过,从您的评论中我推测您是从笔记本电脑上使用 VPN,并且您的 Web 服务器已连接到“普通”互联网。在这种情况下,您只为 VPN IP(例如 3.2.2.2)打开防火墙/iptables

iptables -A INPUT -s 3.2.2.2/32 -j ACCEPT

或者更细粒度 iptables -A INPUT -p tcp -s 3.2.2.2/32 --dport 4444 -j ACCEPT

注意:这一定不是唯一的规则。您可能希望从本地网络通过 SSH 访问主机,或者通常允许本地网络的所有内容:

iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT

此外,您想允许本地主机流量:

iptables -A INPUT -i lo -j ACCEPT

此后,您可以关闭所有其他传入端口:

iptables -P INPUT DROP

请务必根据您自己的 IP 地址范围和您自己的 VPN IP 地址进行彻底检查。

此外,您必须配置路由器/调制解调器以将任何端口(例如 4444 或 44444)转发到您的 Web 服务器端口 4444。

如果你想运行你的 VPN 服务(私人互联网接入)和你的网络服务器一样的主持人

查找 privateinternetaccess.com,我发现

  • 有适用于各种操作系统的客户端程序,其中包括 Linux。(看这里)
  • 不过,如果你总是想使用相同的 VPN IP 地址,PIA 建议使用 openVPN(看这里)

因此

在本地运行 VPN,因此当 DDNS 解析 IP 时,它将指向您的 VPN 连接

你会

  • 安装 openVPN
  • 编辑 PIA 提供的 ovpn 文件以始终连接到同一个 VPN 服务器
  • 启动与 PIA 的 openVPN 连接
  • 配置您的 DDNS 客户端,使其仅查找和更新 IP 地址VPN 连接已建立。DDNS 客户端现在应该找到3.2.2.2您的 IP 地址,在 DDNS 服务器中更新它,然后您的客户端就可以解析yourhost.yourddns.com3.2.2.2
  • 虽然 PIA 不建议这样做(看这里),您应该能够按照说明在 PIA 中启用端口转发这里对于端口 4444。

相关内容