我需要通过互联网公开一个不安全的内部 Web 应用程序,该应用程序无法通过修改来提高其内在安全性。解决此问题的最常见方法是通过 VPN 访问 Web 应用程序。不幸的是,这在我的处境下是不可能的,所以我只能苦苦寻找其他解决方案。
在某些时候,我曾遇到过使用防火墙的情况,在用户通过 Web 表单通过身份验证后,防火墙会动态打开端口。表单位于防火墙设备提供服务的网站上,在后台,防火墙使用通过表单提供的凭据对 Active Directory 进行身份验证。身份验证通过后,防火墙会在一段有限的时间内为发起 Web 表单连接的 IP 打开一些端口。
我希望在我的场景中使用类似的东西,因为它可以为我的 Web 应用程序提供足够的安全性。不幸的是,我不知道要寻找的技术堆栈或这种防火墙身份验证的成熟名称。
有人能告诉我需要了解哪些技术吗?
谢谢,博格丹
答案1
如果您使用 Linux 作为防火墙,请查看iptables
防火墙的实现方式。Shorewall 文档将为您指明方向[Dynamic Zones][1]
。
当在日志文件中看到登录成功消息时,可能会fail2ban
添加适当的条目。
就我而言,我使用每个服务的身份验证:
- SMTP 提交和 IMAP 始终需要身份验证。
- 内部 Web 服务可通过经过身份验证的 HTTPS 获得。
- Squid 代理可以配置身份验证。(目前只能在本地或通过 VPN 使用。)
在您的情况下,具有身份验证的 Web 代理应提供必要的访问权限。 Apache 可以相对轻松地配置为执行此操作。
答案2
你的想法有一个缺陷,它暗示 IP 可以唯一地标识用户,但事实并非如此。
我认为你想描述的是Web 应用程序防火墙 这将执行一些通过身份验证 + 反向代理的操作。根据实现情况,它还可能过滤一些众所周知的攻击,但总体而言,您的计划还不够完善。
您不妨考虑将应用程序隔离在沙箱中。将明知存在漏洞的机器留在沙箱中绝不是一个好主意,因为它会以您未曾想到的方式被利用。