linux下的防火墙工具TCP Wrappers|Netfilter简介

Linux下常用的防火墙有TCP Wrappers和Netfilter。


1.TCP Wrappers

TCP Wrappers是通过/etc/hosts.allow和/etc/hosts.deny这两个配置文件来实现一个类似防火墙的机制。控制的规则如下:

(a)先以/etc/hosts.allow进行检查,若规则符合就予以放行。

(b)再以/etc/hosts.deny进行检查,若规则符合就予以抵挡。

(c)若都不在这两个文件内,即规则都不符合,那么就会放行。         



2.Netfilter

(1)Netfilter的介绍

       Netfilter利用一些数据包过滤的规则设置,来定义出什么数据可以接收,什么数据需要过滤,来达到保护主机的目的。Netfiler提供了一个iptables这个工具软件来设置Netfilter的防火墙数据包过滤的规则。

       iptables在配置防火墙规则时,有表格(table)、链(chain)和规则(rule)三个维度。其中table包含多个chain,每个chain包括默认策略和规则,而且用户可以自定义表格,如下所示:

linux下的防火墙工具TCP Wrappers|Netfilter简介_第1张图片

数据包在iptable的复杂的规则图中的流向如下图所示:

linux下的防火墙工具TCP Wrappers|Netfilter简介_第2张图片

(2)Netfilter的注意点

  • iptables的各种规则的校验是有严格的先后顺序,如果数据包匹配到一条规则那么直接执行动作(丢弃?接收?...),否则继续进行下一条规则。当所有的规则都不匹配时,那么将执行默认的策略。
(3)常用iptables操作
重要的选项
#规则的查看
-t table —— 指定table的名称,如filter,nat,mangle等等。如果使用iptables不指定该参数的话,那么默认为filter
-L —— 列出指定table的所有chain以及chain下面的规则和默认策略
-n —— 显示ip和port,不反查主机名或服务
-v —— 列出更多信息

#规则的清理
-F —— 清除所有的规则
-X —— 清除所有用户“自定义”的chain
-Z —— 将所有的chain的计数与流量统计都归为零

#定义默认的策略
-P chain  —— 为指定的table的指定chain定义默认策略

#其他
-A chain  —— 为指定chain新增一条rule,作为该chain的最后一条规则
-I chain  —— 为指定chain新增一条rule,作为该chain的第一条规则
-i 网络接口 —— 数据包进入的网络接口
-o 网络接口 —— 数据包留出的网路接口
-s str —— 数据包来源src主机
-d str —— 数据包的目的dest主机
-j action —— 动作类型,包括接受(ACCEPT)、丢弃(DROP)、拒绝(REJECT)等
一些简单的操作举例:
(1)列出filter表格的所有chain和rule
iptables -L -n   #亦可以使用iptables-save [-t table]来查看
(2)列出nat表格的所有chain和rule
iptables -t nat -L -n
(3)清楚所有的已制定的规则(不包括自定义)
iptables -F  #默认为filter table
(4)清楚所有用户“自定义”的规则
iptables -X  #默认为filter table
(5)将所有的chain的计数和流量统计都归为零
iptables -Z  #默认为filter table
(6)定义默认的策略
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
(7)只要是来自内网的192.168.100.0/24的数据包都接收
iptables -A INPUT -i eth1 -s 192.168.100.0/24 -j ACCEPT
(8)将来自192.168.100.230的数据包丢弃
iptables -A INPUT -i eth1 -s 192.168.100.230 -j DROP

你可能感兴趣的:(linux下的防火墙工具TCP Wrappers|Netfilter简介)