linux防火墙 netfilter
防火墙类别
- 软件防护墙 iptables ISA
- 硬件防火墙 思科 华为
按范围分
- 主机防火墙
- 网络防火墙
防火墙原理
根据数据包的源IP、目的IP、源端口(port)、目的端口(port)、协议、状态、资源、内容,如果数据包符合预定的规则,则放行,如果不符合,则丢弃数据包 协议类型TCP/UDP
TCP数据包
- source port 源端口
- destintation 目的端口
- sequence number 请求序列号
- asknowledgment number 应答序列号
- 状态标志位
- FIN 标志位是fin的包,表示要断开链接
- 如果请求断开 fin值为1 不断开为0
- SYN 表示要请求建立链接的包
- 1表示请求链接 0表示不请求
- ACK 表示响应的包
- 相应为1 不响应为0
- URP 紧急标志
- PSH 推送标志
- RST 重置标志
- FIN 标志位是fin的包,表示要断开链接
iptables防火墙
作用:可以对数据包进行过滤,也可以实现地址、端口的转换
iptables的基本组成【四表五链】
链
- PREROUTING 在对数据包进行路径选择之前所应用的链
- FORWARD 将数据包从一个网络转发到另一个网络中所有应用的链
- POSTROTING 在数据包进行选择之后所应用的链
- INPUT 对数据包的目的是防火墙的上层应用情况下所应用的链
- OUTPUT 对防火墙主机上层应用向外产生的数据所用的链
表
- filter 过滤数据包
- 三个链 INPUT OUTPUT FORWARD
- nat 不能过滤数据包,仅仅能修改数据包中的ip和端口
- 四个链 INPUT OUTPUT PREROUTING POSTROUTING
- mangle 修改数据包的报文,比如修改ttl值
- 五个链 PREROUTING POSTROUNTING INPUT OUTPUT FORWRD
- raw 决定是否对被追踪到的状态进行处理
- 两个链 PREROUTING OUTPUT
centos不同版本防火墙区别
- centos6 只有iptables
- centos7 支持iptables和firewalld 默认使用firewalld
iptables和firewalld本质相同,使用firewalld时,实际上是调用iptables来完成工作
启动防火墙
systemctl start iptables
安装组件
yum install iptables-services
实现iptables的操作管理,如启动(start)、关闭(stop)、重启(restart)等
iptables命令格式
iptables [-t 表名] command 链名 [匹配内容] -j [操作]
如果省略 -t 表名 ,则默认是对 filter 进行操作
command 是要执行的命令,包括添加规则、删除规则、修改规则
操作 对数据包进行处理,是放行还是阻止 DROP 阻止 ACCEPT 通过
选项
- -F 清除表中的规则
- -L 显示指定表中规则
- -n 以数字方式显示
- --line 在显示规则的时候在规则前面显示一个序号
- -A 链名 在指定的链中添加规则
- -I(大写 i ) 链名 指定的链中插入规则
通用的匹配
- -s 匹配数据包中的源IP
- -d 匹配数据包中的目的IP
案例
清除fliter表中的规则
iptables -t fliter -F
保存表中的规则
service iptables save
查看nat表中的规则
iptables -t nat -L -n --line
禁止192.168.200.1来访问主机
iptables -t filter -A INPUT -s 192.168.200.1 -j DROP