扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
系统缺省的表为filter,该表包含了INPUT链(输入链)、FORWARD链(转发链)和OUTPUT链(输出链)。每一条链中可以定义一条或数条规则,每一条规则都以如下格式定义:条件/处理方式。
当一个数据包到达一个链时,系统就会从第一条规则开始检查,看是否符合该规则所定义的条件。如果满足,系统将根据该条规则所定义的方法处理该数据包;如果不满足,则继续检查下一条规则。如果该数据包不符合该链中任一条规则,系统则会根据该链预先定义的策略(policy)来处理该数据包。
和前面介绍的两个软件包一样,Iptables及Netfilter也是内置在Linux内核中,可以将相应的软件包编译到内核中,从而完成 Iptables防火墙的安装。Netfilter框架能够在内核2.3.5及以上版本实现。在将软件包重新编译进内核时,要求选择和Netfilter 相关的项目。这些项目通常都是位于“Networking options”子项下。以2.4.0内核为例,应该选中的项目有:
[*] Kernel/User netlink socket
[ ] Routing messages
<*>Netlink device emulation
[*] Network packet filtering (replaces ipchains)
在“IP: Netfilter Configuration ---->”选中如下选项:
上面最后两个项目可以不选,如果将其选中,则可以在2.4内核中使用Ipchains或Ipfwadm。需要注意的是,Iptables和 Ipchains/Ipfwadm是相对立的,在使用Iptables时就不能同时使用Ipchains/Ipfwadm。选择完所需选项后,就可以执行编译操作了。编译成功后,这些模块文件都位于目录/lib/modules/2.4.0/kernel/net/ipv4/netfilter中。
编译2.4.0新内核时还应该注意,要在“Processor type and features”中选择与所用CPU相对应的、正确的CPU选项,否则新内核可能无法正常工作。
成功安装Iptables后,不能直接使用Iptables,还必须载入相关模块。使用以下命令载入相关模块:
#modprobe iptable_tables
modprobe命令会自动载入指定模块及其相关模块。iptables_filter模块会在运行时自动载入。
Iptables实际上是一个操作过滤规则的工具。利用Iptables工具,可以对Netfilter中的链和规则进行操作。Iptables使用与 IP链基本相同的语法和命令格式。除了对链和规则进行操作外,Iptables还提供其它一些操作。如通过--source/--src/-s指定源地址;通过--destination/--dst/-s指定目的地址;通过--protocol/-p选项指定协议,比如-p tcp;使用--in-interface/-i或--out-interface/-o)指定网络接口;指定IP碎片等。这里不一一介绍相关语法。读者可以从HOWTO文档获得相关内容。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者