目录

1. 防火墙介绍

2. iptables和firewalld的关系

3. iptables和firewalld的区别

4. 四表五链

4.1 四表

4.2 五链

5. 对应关系

6. 在处理各种数据包时,5种默认规则链的应用时间点

7. iptables 命令的管理控制选项

8. iptables举例

8. iptables和firewalld的应用场景及总结


1. 防火墙介绍

● 防火墙是位于内外网之间的一组软硬件部件的组合,主要目的是保护内外网的数据流通的安全,当外网访问内网的时候发送的数据包必须经过内网的防火墙检验是否符合规则。
● 能够指定火墙策略的两个工具包: iptables和firewalld
● Linux的防火墙体系主要工作在网络层,针对TCP/IP数据包实时过滤和限制,属于典型的包过滤防火墙或称作网络层防火墙(iptables)
● Firewalld:只用于管理Linux防火墙的命令程序,属于“用户态”(User Space。又称为用户空间)的防火墙管理体系。支持网络区域所定义的网络链接以及接口安全等级的动态防火墙管理工具。

2. iptables和firewalld的关系

iptables和firewall区别_IP


3. iptables和firewalld的区别

对比项

Firewalld

Iptables

创建规则

允许更新规则而不破坏现有会话和连接

在修改了规则后必须得全部刷新才可以生效


使用区域和服务而不是链式规则

默认策略

默认是拒绝的

默认是允许的

相同

firewalld和iptables一样,它们的作用都用于维护规则,而真正使用规则干活的是内核的netfilter。

4. 四表五链

  • 常说防火墙三表五链,其实应该说四表五链比较合适,不过raw表应用较少,因此也常用“三表五链”来描述防火墙

4.1 四表

iptables和firewall区别_网络_02

优先级:

  • 当数据包抵达防火墙时,将依次应用raw、mangle、nat和filter表中对应链内的规则(如果有)如下图所示

iptables和firewall区别_服务器_03

 

4.2 五链

iptables和firewall区别_服务器_04

 图示:

iptables和firewall区别_linux_05

5. 对应关系

● filter表,包含三个规则链:INPUT,FORWARD,OUTPUT。
● nat表,包含三个规则链:PREROUTING,POSTROUTING,OUTPUT。
● mangle表,包含五个规则链:PREROUTING,POSTROUTING,INPUT,OUTPUT,FORWARD。
● raw表,包含两条规则链:OUTPUT、PREROUTING。

注:在iptables的四个规则表中,mangle表和raw的表应用相对较少

6. 在处理各种数据包时,5种默认规则链的应用时间点

● INPUT链:当接收到防火墙本机地址的数据包(入站)时,应用此链中的规则。
● OUTPUT链:当防火墙本机向外发送数据包(出战)时,应用次链中的规则。
● FORWARD链:当接收到需要通过防火墙发送给其他地址的数据包(转发)时,应用次链中的规则。
● PREROUTING链:在对数据包作路由选择之前,应用次链中的规则。
● POSTROUTING链:在对数据包作路由选择之后,应用次链中的规则。

注:INPUT、OUTPUT链更多的应用在“主机防火墙”中,即主要针对服务器本机进出数据的安全控制;而FORWARD、PREROUTING、POSTROUTING链更多的应用在“网络防火墙”中,特别是防火墙服务器作为网关使用时的情况。

7. iptables 命令的管理控制选项

iptables和firewall区别_linux_06

8. iptables举例

常用指令:

Iptables [-t table] command [match] [target允许拒绝等]

iptables -t 表名 <-A/I/D/R> 规则链名 [规则号] <-i/o 网卡名> -p 协议名 <-s 源IP/源子网> --sport 源端口 <-d 目标IP/目标子网> --dport 目标端口 -j 动作

iptables -L -n -t nat

查看表的规则

Iptables -P forward drop

移除

Iptables -A forwad -p tcp –dport 22 -j accept

Forward 添加规则。允许22端口访问

iptables -A OUTPUT -j ACCEPT

#允许所有本机向外的访问

Iptables -R forwad -s 192.168.229.1 -j accept

-s 指定源头 -R修改,将ip更改为接收

Iptables -D forwad 1

-D 删除forwad 第1条策略

增删改查

指令commend

动作

-A #添加策略

-L #查看

-D 删除规则

-I #插入规则

-R #更改规则

-P #更改默认规则

-t 选择表(默认filter)

-n  ##不做解析,显示IP地址

-L ##查看

-I 选择链

-i 选择设备

-s指定源头 表示192.168.132.0/24

-j动作策略,DROP表示丢弃

-p 选择协议(如tcp、udp)

–dport  ##目的地端口


ACCEPT#允许

DROP#丢弃

REJECT#拒绝

SNAT#源地址转换

DNAT#目的地地址转换


Iptables –t filter –I INPUT –i eht0 –s 192.168.132.0/24 –j DROP	源地址是192.168.132.0/24 的禁止连接

8. iptables和firewalld的应用场景及总结

  1. firewalld可以动态修改单条规则,动态管理规则集,允许更新规则而不破坏现有会话和连接。而iptables,在修改了规则后必须得全部刷新才可以生效;
  2. firewalld使用区域和服务而不是链式规则;
  3. firewalld默认是拒绝的,需要设置以后才能放行。而iptables默认是允许的,需要拒绝的才去限制;
  4. firewalld自身并不具备防火墙的功能,而是和iptables一样需要通过内核的netfilter来实现。也就是说,firewalld和iptables一样,它们的作用都用于维护规则,而真正使用规则干活的是内核的netfilter。只不过firewalld和iptables的结果以及使用方法不一样!
  5. firewalld是iptables的一个封装,可以让你更容易地管理iptables规则。它并不是iptables的替代品,虽然iptables命令仍可用于firewalld,但建议firewalld时仅使用firewalld命令。