扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
防火墙
我们都知道,出于安全性的考虑,只要主机连接在Internet上,就应该有一个防火墙阻止恶意的信息访问主机。设置防火墙时,首先决定哪一些服务可以通过Internet访问,然后关闭所有其它的服务。当然并不是说运行了防火墙就万事大吉了,事实上,任何一个你允许通过防火墙来访问的服务都可能有自己安全上的漏洞,所以你必须经常注意更新你的应用程序,以使其具有最新的补丁。
大部分防火墙只支持外部网和内部网有单一的连接。因此,要支持多个外部网接口,就必须要自己写一些防火墙脚本。第一个用于编写脚本的工具是基于数据包的ipchains,它随Linux 2.2内核一起发行。第二个工具是基于数据包的iptables,它随2.4版的内核一起发行。
Iptables是ipchains的下一代,因其支持连接跟踪,所以功能更加强大。Iptables的可扩展性也非常不错,我们可以在不更改基本的源代码的前提下为它增加一些新功能(比如字符串匹配)。Ipchains和iptables都会把信息通过一系列的规则链,以决定是否接受或者拒绝接受该数据包。
Iptables 中使用了三个规则(或者称“链”)表(filter、nat和mangle)来过滤数据包。在ipchains中,三个对应的规则分别为INPUT、FORWARD和OUTPUT。INPUT分析刚到达网络接口的数据包,FORWARD分析经过伪装的数据包。而OUTPUT分析即将流出网络接口的数据包。图2描述的是ipchains防火墙中数据包通过不同的规则链的过程。
在iptables的nat表中,增加了两个规则,它们是PREROUTING和POSTROUTING。这些规则用于实现伪装以及网络地址翻译。所有流入或者流出的数据包都必须通过这些规则链。在iptables中INPUT和OUTPUT规则链用于处理去往防火墙的数据包,而FORWARD规则链则只用于处理数据包伪装。图3描述了数据包在iptables防火墙的不同规则链的过程。
在iptables中,magle表使用PREROUTING和OUPUT链来让用户修改数据包中的IP标识,比如TTL或者TOS(服务类型)。
防火墙内核配置
要想建立起一个基于Linux 2.2内核的ipchains防火墙,必须在内核配置文件中配置以下的功能:
|
而要建立一个基于Linux 2.4内核的iptables防火墙,就必须在内核配置文件中配置以下功能:
|
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者