专用networking的防火墙

这是我的设置:

所有节点都运行Ubuntu 10.04 LTS

我有一台机器node1 ,充当专用networking的代理服务器。 它将端口80和443上的所有传入连接转发到我的networking服务器node2 ,它具有10.182.33.141的私有IP并且没有公共IP。

我还有其他几个节点: node3是一个数据库服务器, node4是一个memcached服务器等,它们都有一个私有IP,没有公有IP。

我还希望node1充当防火墙,同时仍然将端口80和443转发到node2

configurationnode1开始充当防火墙的最佳方式是什么? 有什么办法来testing防火墙的安全性?

任何方向非常感谢! 对不起,如果之前已经询问过,我search了,没有find我要找的东西。

供参考:(iptables -t nat -L)

 Chain PREROUTING (policy ACCEPT) target prot opt source destination DNAT tcp -- anywhere node1 tcp dpt:www to:10.182.33.141:80 DNAT tcp -- anywhere node1 tcp dpt:https to:10.182.33.141:443 Chain OUTPUT (policy ACCEPT) target prot opt source destination Chain POSTROUTING (policy ACCEPT) target prot opt source destination MASQUERADE all -- anywhere anywhere 

iptables -L目前是空的。

几个月前,我试图build立一个类似的设置。 我最终放弃了这个想法,回到了之前我以前使用过的不太灵活的防火墙。 我可以给你一些指示,但是我不能很容易回答这样一个广泛的问题。

  • 了解masqurading,Source NAT和Destination NAT之间的区别。
  • 知道每个Netfilter表是什么,每个链是哪一个
  • 允许所有传出stream量(如果您信任您的用户)
  • 允许现有连接的数据包通过使用contrak或state模块来继续
  • DNAT将stream量传输到您想要公开的服务器/端口
  • 确保你的防火墙( node1 )允许数据包转发: echo >/proc/sys/net/ipv4/ip_forward 1

那就是我停下的地方。 我很难让这个盒子与我们networking上的另一台机器共存,这就是为什么我不能说我有解决scheme。