防火墙分类:
主机防火墙
针对单个主机进行防护
网络防火墙
处于网络入口或者边缘,针对网络入口进行防护,服务于防火墙背后的本地局域网
四表五链
表 | 说明 |
---|---|
filter表 | 负责过滤功能,防火墙;内核模块:iptables_filter |
nat表 | network address translation,网络地址转换功能;内核模块:iptables_nat |
mangle表 | 拆解报文,做出修改,并重新封装的功能;iptables_mangle |
raw表 | 关闭nat表启用的连接追踪机制;iptables_raw |
链 | 说明 |
---|---|
INPUT | 输入 |
OUTPUT | 输出 |
PREROUTING | 路由前 |
FORWARD | 转发后 |
POSTROUTING | 路由后 |
链和表的关系
链 | 表 |
---|---|
INPUT | mangle表 , filter表,(CentOS7中有nat表,CentOS6中没有) |
OUTPUT | raw表,mangle表 ,nat表,filter表 |
PREROUTING | raw表,mangle表 ,nat表 |
FORWARD | mangle表 , filter表 |
POSTROUTING | mangle表 ,nat表 |
优先级次序(由高到低):raw -->mangle -->nat -->filter
防火墙配置
处理动作
动作 | 含义 |
---|---|
ACCEPT | 允许数据包通过 |
DROP | 直接丢弃数据包,不给任何回应信息,这时候客户端会感觉自己的请求泥牛入海了,过了超时时间才会有反应。 |
REJECT | 拒绝数据包通过,必要时会给数据发送端一个响应的信息,客户端刚请求就会收到拒绝的信息 |
SNAT | 源地址转换,解决内网用户用同一个公网地址上网的问题 |
MASQUERADE | 是SNAT的一种特殊形式,适用于动态的、临时会变的ip 上 |
DNAT | 目标地址转换 |
REDIRECT | 在本机做端口映射 |
LOG | 在/var/log/messages文件中记录日志信息,然后将数据包传递给下一条规则, 也就是说除了记录以外不对数据包做任何其他操作,仍然让下一条规则去匹配 |
iptables常用命令
iptables -A 将一个规则添加到链末尾
iptables -D 将指定的链中删除规则
iptables -F 将指定的链中删除所有规则
iptables -I将在指定链的指定编号位置插入一个规则
iptables -L 列出指定链中所有规则
iptables -t nat -L列出所有NAT链中所有规则iptables -N 建立用户定义链
iptables -X 删除用户定义链
iptables -P 修改链的默认设置,如将iptables -P INPUT DROP (将INPUT链设置 为DROP)
例:
添加规则将192.168.138.8接受的数据丢弃掉,并查看
用192.168.138.8 ping 192.168.138.11 ,ping不通,138.11将138.8的数据全部丢弃了
清空规则再添加规则拒绝接受192.168.138.8的数据,并查看
用192.168.138.8 ping 192.168.138.11 ,ping不通,138.11拒绝了138.8的所有数据
设置源地址到192.168.138.8的数据都被丢弃
设置源地址到192.168.138.8的数据都被拒绝
设置将192.168.138.8的数据都丢弃,并指定协议ICMP ,并查看
结果能curl通,却ping不通
设置将192.168.138.8的数据都拒绝,并指定协议TCP,目标TCP端口为80 ,并查看
结果能ping通,但curl不通
增加
增加规则
增加规则到指定的行
删除
删除规则
删除规则到指定行
修改
修改规则
查找
查看规则
-L:表示列出规则,在-L后加上链名时表示查看指定表的指定链中的规则
-v: verbose, 列出详细信息
-n:表示不解析IP地址,直接显示出IP地址