![安全打开端口](https://linux22.com/image/761003/%E5%AE%89%E5%85%A8%E6%89%93%E5%BC%80%E7%AB%AF%E5%8F%A3.png)
我正在运行一个 Web 应用程序,该应用程序应该只有少数配备平板电脑的人才能访问。它由位于 ISP 路由器后面的本地网络上的服务器的端口 80 提供服务。
问题是:如何确保授权用户能够访问,而其他用户无法访问?非授权用户应以连接重置结束,就像端口未打开一样。
我想过在路由器上打开一个端口,将其重定向到服务器并使用证书保护它,但这可能吗?
另一个解决方案可能是安装 VPN,但对于某些用户来说,这可能太难管理。
答案1
有很多方法可以解决此问题,但正确的方法取决于您已实施的其他安全机制。示例:
- 客户端证书。这非常有可能,除非您想使用端口 80,该端口通常未加密。您需要重新配置您的 Web 服务器或在其前面放置代理,但这当然是可能的。此处介绍了使用 Apache 执行此操作,https://httpd.apache.org/docs/2.4/ssl/ssl_howto.html#allclients
- 在网络级别(即防火墙)通过 IP 或 MAC 地址进行过滤。
- 使用您提到的 VPN。这可以为用户提供相当透明的服务。
- 检查 Web 服务器上或其前面的代理上的身份验证标头。
毫无疑问,还有更多。除非您有其他身份验证方法,否则其中一些方法并不适用,例如 MAC 地址很容易被欺骗。如果您放宽网络端口显示为关闭的要求,其他选项就会变得可用,因为许多身份验证方法只有在端口打开时才会起作用。
答案2
您的问题有点笼统。您可以执行以下一项或多项操作:
- 需要有效的用户名/密码才能访问您的 Web 应用。这可以在应用程序级别或 Web 服务器级别完成(例如:apache2)。
- 通过配置防火墙保护对此 IP/端口的访问。仅允许特定 IP。其他 IP 将被拒绝。这需要您获取用户 IP 列表。
- 将用户从 http(端口 80)重定向到 https(端口 443),以防止中间人攻击等攻击。
- 保持服务器访问的私密性并将用户流量隧道传输到您的网络(需要身份验证的 VPN 解决方案之一)。