NAT防火墙,通过DNS查找自动添加到白名单?

我有兴趣设置防火墙。 这将包括您通常的NAT,以及传入连接的端口转发。

不过,我希望传出连接使用主机名的白名单。 我也希望同一台设备充当我的电脑使用的DNS服务器,所以当电脑试图连接时,它总是知道白名单上任何主机名的最新IP。

这可以是推荐的Cisco IOS,也可以是Illumos或Linux服务器。 我在想,使用服务器会给我更多的灵活性,但我愿意提供build议。

这是我想要发生的事情:(从我的networking上的用户传出的连接)

  1. 用户的PC为给定站点执行DNS查询(即serverfault.com)

  2. 防火墙服务器将其与主机名的白名单进行比较,如果允许,则将得到的IP地址传回PC。

  3. 如果允许DNS查找,那么IP访问列表将立即用来自DNS的最新结果更新。 (合理到期)

    • 如果一台PC发起一个任意IP地址的连接,而这个IP地址没有在任何被批准的DNS响应中列出,那么可以拒绝任意的数据包。
  4. (可选,但更可取)嗅探TCP连接以validationHTTP或HTTPS连接的主机名。 通过这种方式,我们可以阻止访问可能存在于共享的白名单IP上的非白名单站点。

我认为我可以用ipfilter来完成项目1-3,并结合自定义的DNS服务器来处理白名单,并触发ipfilter的添加。 这听起来是否合理,还是会有不可避免的问题与ipfilter没有立即认识到变化? 我很确定ipfilter将与Linux / Illumos NAT一起工作。

Linux或Illumos的应用程序是否已经实现了DNS触发的IP白名单? (阻止我重新发明车轮)

我还没有听说过运行DNS服务器的IOS。 在Cisco IOS中有解决办法吗? 有一个明显的解决scheme,我应该知道,或者这只是一个不寻常的防火墙设置?

根据我们在评论中的讨论,听起来好像你可能会混淆防火墙的angular色和透明代理的angular色。

  • 防火墙不依赖于DNSparsing来实现访问策略。 以前我已经介绍了几个原因。 最重要的原因是:

    1. 依赖一个容易被欺骗的协议
    2. 从给定的input集增加了软件复杂性和非确定性function(今天通过filter的可能不是明天通过filter的)
    3. 将防火墙策略的pipe理有效地委托给不同的设备和协议。
  • 透明代理通常拦截HTTP + DNSstream量,并根据请求的主机名应用访问控制。 在这一层IP地址不是一个考虑因素。 如果请求的实体与允许的名称不匹配,则直接从透明代理本身返回错误页面,而不将请求路由到预期的资源。

主要区别在于这些设备的运行层。 由于透明代理只需要关注名称,而不是这些名称parsing的IP地址,所以不会遇到与防火墙相同的逻辑问题。