文章目录
- 一、前言
- 二、 Linux软件防火墙作用
- 三、 Linux软件防火墙工具
- 四、Firewalld简介
- 4.1 firewalld防火墙区域介绍
- 4.2 firewalld防火墙的工作流程
- 五、Firewalld防火墙的配置方法
- 5.1 运行时配置
- 5.2 永久配置
- 六、 Firewall-config图形工具
- 七、firewall-cmd 字符工具
- 7.1 防火墙进程操作命令
- 7.2 防火墙区域操作命令
- 7.3 防火墙区域操作命令小结
- 7.4 防火墙端口操作命令
- 7.5 防火墙端口操作命令小结
- 7.6 防火墙阻塞ICMP操作命令
- 7.7 防火墙阻塞ICMP操作命令小结
一、前言
Linux的防火墙主要工作在网络层,针对TCP/IP数据包实施过滤和限制,属于典型的包过滤防火墙。
二、 Linux软件防火墙作用
防火墙可以单独/批量禁止/允许某个/多个端口的数据通过,也可以将某个端口的数据转发到另外一个端口/ip。
三、 Linux软件防火墙工具
在Centos 6中主要使用:
iptables(命令管理工具);操作较复杂。
在Centos 7中主要使用:
firewall-config(图形化管理工具);
firewall-cmd(命令管理工具),在生产环境中用的较多。
本文主要介绍Centos7 Firewalld防火墙。
四、Firewalld简介
(1)支持网络区域所定义的网络连接及接口安全等级的动态防火墙管理工具
(2)支持IPv4,IPv6防火墙设置
(3)支持服务或应用程序直接添加防火墙规则接口
(4)拥有两种配置模式,
运行时配置和永久配置。
4.1 firewalld防火墙区域介绍
为了简化管理,firewalld防火墙将所有的网络流量分为多个区域,每个区域都具有不同程度的规则,默认情况下,public公共区域是默认区域,包含所有接口网卡。
4.2 firewalld防火墙的工作流程
检查数据来源的源地址:
若源地址关联到特定的区域,则执行该区域所指定的规则;
若源地址未关联到特定的区域,则使用传入网络接口的区域并执行该区域所指定的规则;
若网络接口未关联到特定的区域,则使用默认区域并执行该区域所指定规则。
五、Firewalld防火墙的配置方法
5.1 运行时配置
实时生效,并持续至Firewalld重新启动或重新加载配置;
不中断现有连接;
不能修改服务配置。
5.2 永久配置
不立即生效,除非Firewalld重新启动或重新加载配置;
中断现有连接;
可以修改服务配置。
六、 Firewall-config图形工具
Firewal-config是firewalld防火墙自带的图形管理工具,可以直接使用命令firewall-config启动,可以简单的完成很多复杂的防火墙设置。
[root@localhost ~]# firewall-config
七、firewall-cmd 字符工具
firewall-cmd是firewalld防火墙自带的字符管理工具,可以用来设置防火墙的各种规则。
特点:
(1)支持全部防火墙特性;
(2)–permanent参数:携带该参数表示永久配置,否则表示运行时配置;
(3)[–zone=< zone >]选项:不携带此选项表示针对默认区域操作,否则针对指定区域。
7.1 防火墙进程操作命令
[root@localhost ~]# systemctl 选项 firewalld
选项:start stop restart status(开启,停止,重启,状态)
常用指令如下:
7.2 防火墙区域操作命令
(1)显示所有区域及其规则
[root@localhost ~]# firewall-cmd --list-all-zones
(2)显示internal区域的所有规则
[root@localhost ~]# firewall-cmd --zone=internal --list-all
(3)显示默认区域的所有规则
[root@localhost ~]# firewall-cmd --list-all
(4)显示网络连接或接口的默认区域
[root@localhost ~]# firewall-cmd --get-default-zone
public
(5)设置网络连接或接口的默认区域为internal
[root@localhost ~]# firewall-cmd --set-default-zone=internal
success
[root@localhost ~]# firewall-cmd --get-default-zone
internal '#默认区域已改为internal'
[root@localhost ~]#
(6)显示已激活的所有区域
激活条件:区域至少关联一个接口或一个源地址/网段
[root@localhost ~]# firewall-cmd --get-active-zones
internal
interfaces: ens33
[root@localhost ~]#
(7)显示ens33网卡接口绑定的区域
[root@localhost ~]# firewall-cmd --get-zone-of-interface=ens33
internal '#绑定在默认区域'
[root@localhost ~]#
(8)为work区域更改绑定的网络接口ens33
[root@localhost ~]# firewall-cmd --zone=work --change-interface=ens33 '#更改接口'
The interface is under control of NetworkManager, setting zone to work.
success
[root@localhost ~]# firewall-cmd --get-zone-of-interface=ens33 '#显示接口绑定区域'
work '#更改成功'
(9)为work区域删除绑定的接口ens33
[root@localhost ~]# firewall-cmd --zone=work --remove-interface=ens33 '#删除接口'
The interface is under control of NetworkManager, setting zone to default.
success
[root@localhost ~]# firewall-cmd --get-zone-of-interface=ens33 '#显示接口绑定区域'
internal '#解绑成功'
[root@localhost ~]#
(10)查询区域中是否包含ens33接口
[root@localhost ~]# firewall-cmd --zone=work --query-interface=ens33
no
[root@localhost ~]#
7.3 防火墙区域操作命令小结
7.4 防火墙端口操作命令
(1)启用internal区域22端口的TCP协议组合
[root@localhost ~]# firewall-cmd --zone=internal --add-port=22/tcp --timeout=5m
success
–timeout=5m:表示5分钟后删除该端口。
(2)显示internal区域内允许访问的端口号
[root@localhost ~]# firewall-cmd --zone=internal --list-ports
22/tcp
(3)禁用internal区域22端口的TCP协议组合
[root@localhost ~]# firewall-cmd --zone=internal --remove-port=22/tcp
success
(4)查询internal区域中是否启用了22端口TCP
[root@localhost ~]# firewall-cmd --zone=internal --query-port=22/tcp
no
7.5 防火墙端口操作命令小结
7.6 防火墙阻塞ICMP操作命令
(1)为work区域设置阻塞echo-request类型的ICMP
[root@localhost ~]# firewall-cmd --zone=work --add-icmp-block=echo-request
success
(2)显示work区域内阻塞的所有ICMP类型
[root@localhost ~]# firewall-cmd --zone=work --list-icmp-blocks
echo-request
[root@localhost ~]#
(3)删除work区域已阻塞的echo-request类型的ICMP
[root@localhost ~]# firewall-cmd --zone=work --remove-icmp-block=echo-request
success
(4)查询work区域的echo-request类型的ICMP是否阻塞
[root@localhost ~]# firewall-cmd --zone=work --query-icmp-block=echo-request
no
7.7 防火墙阻塞ICMP操作命令小结