在FreeBSD系统中用IP Filter进行桥过滤(3)

  我将xl0作为对外连接界面,把xl1作为内部连接界面。我的规则很简单:禁止所有从外部访问工作站的操作,允许一部分外部服务的对内访问(SSH,HTTP,MS Terminal Server connections),但是不对实验室的内部用户进行限制。

  pass in quick on xl0 proto tcp from any to 131.211.83.40 port = 22 flags S keep state
  pass in quick on xl0 proto tcp from any to 131.211.83.40 port = 80 flags S keep state
  pass in quick on xl1 proto tcp from any to any keep state
  pass in quick on xl1 proto udp from any to any keep state
  pass in quick on xl1 proto icmp from any to any keep state
  block in on xl0 from any to 131.211.83.40
  [more hosts go here]

  所有来自内网的通信都被允许通过(保持原有状态不变)。除了很少的几种连接(SSH和HTTP)以外,其他来自外部的通信都被禁止掉。我只允许那些带有SYN标记或者是已获允许的回话的一部分的数据包通过。

  除了我忘记把FTP放到允许回话的行列以外,几乎所有机制都运行得很好。FTP是一种十分危险的协议。FTP(至少变量被称作“active”)总是尝试在20端口(ftp-data)建立一个从服务器到客户端的连接。在上面的规则当中,开启FTP是不可能的。我们必须加入下面的规则:

  pass in quick on xl0 proto tcp from any to 131.211.83.40 port = 20 flags S keep state

  在一个“普通”的NAT设置中,你可以为FTP建立一个代理。但因为这不是NAT设置,因此,不可能使用代理。现在,除了WinAmp外,所有东西都工作得很好。

  应该考虑的问题

  在你开始使用ipfilter的带有过滤功能的网桥之前,必须考虑下面的问题:

  4-STABLE的补丁被作者标识为“风险自负”(Use At Your Own Risk)。我在FreeBSD 4.6上成功使用了,但是它可能在新版本上无法工作。

  不能进行NAT。请记住,这个网桥无论如何都没有自己的IP,因此它不能进行NAT。这也意味着你不能使用端口映射(Redirection of Ports)和代理(比如FTP代理)。

  我使用的“out”关键字并没有起作用。

  return-rst选项(它拒绝一个连接,而不是使它超时)也不起作用,return-icmp-as-dest也一样(这两个选项在ipfilter HOWTO 3.6节中有描述)

  结论

  我发现在FreeBSD和ipfilter上建立一个带有过滤功能的网桥。操作系统和过滤系统都被证实是十分稳定和通用的,并且带过滤功能的网桥是非常有用的增加安全性,或者临时堵住安全漏洞的方法。

linux

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wzgjzp.html