10、iptables——Filter表
包过滤防火墙(Centos6由iptables工具控制)
一、Linux防火墙的发展
1、在初代Linux防火墙中,防火墙以ipfirewall的形式在内核中单独存在,防火墙规则也写在内核中。
2、二代Linux防火墙是ipchains(ip链),二代可以创建和定义规则。
3、三代Linux防火墙机制就是iptables(ip表),防火墙的主体在内核中,iptables是用户空间用于创建防火墙规则并与内核中的防火墙进行通信的实体。
二、iptables的四个功能(表)
1、raw表与mangle表(很少配置):数据流量的跟踪与整形。
2、NAT表(Network Address Translation)
3、Filter表(过滤表):通过对Filter表中规则编写,限制某些IP地址访问主机的某些服务、过滤主机IP数据包的转发、协议的过滤等。
三、iptables的基本命令
查看Filter表的信息:iptables -t filter -nvL
每隔1秒刷新显示一次Filter表信息:watch -n 1(秒数) -d(高亮) iptables -t filter -nvL
重启iptables服务:service iptables restart
重启iptables服务后,所有表的规则会按照默认的配置重置。
四、iptables规则的编写
iptables 四表五链:四个功能表、五个配置位置的链;
控制类型:ACCEPT允许、DROP直接丢弃、REJECT拒绝必要时有提示、LOG记录日志信息不处理
选项:
添加选项:-A 在链的末尾追加一条规则、-I 在链头插入规则、 -I 链名 n 指定序号n插入
查看选项:-L 列出所有的规则条目、 -n 以数字的形式显示地址、端口等信息、 -v 详细显示、 -line-numbers 显示规则的序号
删除选项:-D 链名 n, 删除链内指定序号n的规则; -F 清空所有规则(iptables -F或者iptables -t XXX -F)
默认策略选项:-P 链名 ACCEPT/DROP,修改某链中没规则匹配时默认执行的操作(缺省是ACCEPT)。
条件:
通用匹配:通用匹配是条件必须要有的
协议匹配:-p 协议名
地址匹配:-s 源地址、-d 目标地址
接口匹配:-i 入站网卡、-o 出站网卡
隐含匹配:隐含匹配非必须条件,用于配合通用匹配
端口匹配:–sport 源端口、–dport 目的端口
TCP标记匹配:–tcp-flags 检查TCP报文中被设置的标记(ACK、SYN…)
ICMP类型匹配:–icmp-type ICMP类型(0、3、8)
显示匹配:
多端口匹配:-m multiport –sports | –dports 多端口列表(23,80,443…)
IP范围匹配:-m iprange –src-range IP范围
MAC地址匹配:-m mac –mac-source MAC地址
状态匹配:-m state –state 连接状态(ESTABLISHED…)
1、Filter表规则的编写(Filter三个链):
1)INPUT链(入站链):
iptables -t filter -I(插入写到链头) INPUT -p tcp --dport 80 -j ACCEPT
#允许访问本机80服务
2)FORWARD链(转发规则链):当源地址和目标地址都不是本机IP地址时,遵循该链规则。
iptables -I FORWARD -s 0.0.0.0/0 -d 0.0.0.0/0 -j DROP
#丢弃所有数据包转发(默认filter表、默认所有协议、默认in out所有接口)
3)OUTPUT链(出站链):
五、防火墙规则的保存
将当前防火墙的规则配置信息保存到文件中:iptables-save > 目录/文件名
将配置信息导入到防火墙中:iptables-restore < 目录/文件名
将当前防火墙的规则信息存储到根防火墙配置中:service iptables save
即修改了iptables的最根本的配置文件/etc/sysconfig/iptables,此后每次重启iptables服务,都会来这个配置文件里面拿规则。
六、实验
环境:Centos6.9 Ftp服务器192.168.1.254; WindowsXP客户机192.168.1.1
1、Centos6.9安装FTP服务器:yum install -y vsftpd
2、开启FTP服务:service vsftpd start
3、设置防火墙规则:iptables -t filter -I INPUT -p tcp --dport 21 -j ACCEPT
4、客户机cmd尝试连接发现成功:ftp 192.168.1.254
,用户名:ftp
,密码空。ftp用户的家目录/共享目录是/var/ftp