NAT不是用来解决网络安全的问题的,NAT是为了解决IP地址枯竭的问题而设计的,当然NAT也有一定的安全性,同时在配置NAT的时候,都会同时配置端口过滤,这样安全性将会大大提高,如果要把NAT和FW做比较(其实无法作比较,两个不同的东东),那么我们下面所说的NAT是一个没有做任何过滤的单纯的NAT。
从原理上来说,有很多方法绕过NAT进入内部网络:
1) 象木马等方式可以使得内部网络一台机器作为攻击内部网络的跳板,微软类似这样被搞过很多次了;
2) 某些NAT无法阻挡源路由协议的攻击,攻击者可以由此进入内部网络(可以通过Windows下的tracert命令的-j参数进行测试, -j host-list Loose source route along host-list.)
3) NAT如果不加过滤,一些伪造源IP地址的包也可能侵入内部网络
4) 如果内部有台符合RFC标准的能够提供PASV方式的FTP服务器的话,外部用户可以通过这台FTP服务器进行FTP PASV方式的端口扫描。
5) more and more...
有太多方式可以透过NAT进入内部网络,而且还有一堆人都在研究怎么透过NAT甚至NAT+FW
FW在很多方面可以加强整个内部网络的安全性:
1) 端口过滤,端口过滤是加强安全的最基础的方式,可以防止想当一部分攻击;
2) 地址过滤,可以防止一些伪造源IP地址的攻击和源路由攻击
3) 会话过滤,好的FW可以做到会话级别的过滤
4) 应用过滤,能够实现应用级别的过滤是FW的比较高级的功能了,过滤颗粒比较细
5) more and more...
结论是仅仅用NAT来实现网络安全是不够的,FW有很多NAT实现不了的功能,完整的网络安全解决方案还应该包括网络防毒、IDS以及专家扫描系统等等,我认为最重要的还是管理员的水平和尽不尽职。