防火墙介绍
- 防火墙是位于内外网之间的一组软硬件部件的组合,
主要目的是保护内外网的数据流通的安全
,当外网访问内网的时候发送的数据包必须经过内网的防火墙检验是否符合规则。 - 能够指定火墙策略的两个工具包:
iptables和firewalld
- Linux的防火墙体系主要工作在网络层,针对TCP/IP数据包实时过滤和限制,属于典型的
包过滤防火墙或称作网络层防火墙
(iptables) - Firewalld:只用于管理Linux防火墙的命令程序,属于
“用户态”
(User Space。又称为用户空间)的防火墙管理体系。支持网络区域所定义的网络链接以及接口安全等级的动态防火墙管理工具
四表五链
常说防火墙三表五链,其实应该说四表五链比较合适,不过raw表应用较少,因此也常用“三表五链”
来描述防火墙
四表
优先级:
- 当数据包抵达防火墙时,将依次应用raw、mangle、nat和filter表中对应链内的规则(如果有)如下图所示
五表
INPUT链用于处理访问防火墙本机的数据,OUTPUT链用于处理防火墙本机访问其他主机的数据
FORWARD链用于处理需要经过防火墙转发的数据包,源地址、目标地址均不是防火墙本机
POSTROUTING、PREROUTING链分别用于在确定路由后、确定路由前对数据包进行处理
对应关系
- filter表,包含三个规则链:INPUT,FORWARD,OUTPUT。
- nat表,包含三个规则链:PREROUTING,POSTROUTING,OUTPUT。
- mangle表,包含五个规则链:PREROUTING,POSTROUTING,INPUT,OUTPUT,FORWARD。
- raw表,包含两条规则链:OUTPUT、PREROUTING。
在处理各种数据包时,5种默认规则链的应用时间点
- INPUT链:当接收到防火墙本机地址的数据包(入站)时,应用此链中的规则。
- OUTPUT链:当防火墙本机向外发送数据包(出战)时,应用此链中的规则。
- FORWARD链:当接收到需要通过防火墙发送给其他地址的数据包(转发)时,应用此链中的规则。
- PREROUTING链:在对数据包作路由选择之前,应用此链中的规则。
- POSTROUTING链:在对数据包作路由选择之后,应用此链中的规则。
注:INPUT、OUTPUT链更多的应用在“主机防火墙”
中,即主要针对服务器本机进出数据的安全控制;而FORWARD、PREROUTING、POSTROUTING链更多的应用在“网络防火墙”
中,特别是防火墙服务器作为网关使用时的情况。
举例如下:
- 增
- 追加:iptables -A INPUT/OUTPUT(链名) -p (协议) tcp/udp 可以指定网卡(用-i 和-o 参数),可以指定源地址/目标地址(-d -s ) --dport (指定端口号) -j ACCEPT
- 插入:iptables -I(默认第一)可以指定序号。实例:iptables -I INPUT -p tcp --dport 80 -j ACCEPT
- 删
- 表名默认是fitler可以省略,但是链名一定要加(如:INPUT )
- iptables -t 表名(可以省略不计) -D链序号 (第几条策略,从上往下 )
- 改
- iptables -R INPUT/OUTPUT 7(一定要跟对应链的序号) -p tcp --dport 80 -j ACCEPT
- 查
- service iptables status
- iptables -t 接想要查询的表名(有四个) -L
- iptables -L -v -n
- iptables -vnL (有参数顺序的要求)
注: drop是丢弃;reject是拒绝