(1). 前言
Centos7之后,防火墙就变成了,Firewall,特意抽时间学习下.
(2). firewall重要概念
阻塞区域(block) : 任何传入的网络数据包都将被阻止。
工作区域(work) : 相信网络上的其他计算机,不会损害你的计算机。
家庭区域(home) : 相信网络上的其他计算机,不会损害你的计算机。
公共区域(public) : 不相信网络上的任何计算机,只有选择接受传入的网络连接。
隔离区域(DMZ) : 隔离区域也称为非军事区域,内外网络之间增加的一层网络,起到缓冲作用。对于隔离区域,只有选择接受传入的网络连接。
信任区域(trusted) : 所有的网络连接都可以接受。
丢弃区域(drop) : 任何传入的网络连接都被拒绝。
内部区域(internal) : 信任网络上的其他计算机,不会损害你的计算机。只有选择接受传入的网络连接。
外部区域(external) : 不相信网络上的其他计算机,不会损害你的计算机。只有选择接受传入的网络连接。
(3). firewall配置文件
在/usr/lib/firewalld/zones/目录下:默认提供了九个zone配置文件:block.xml、dmz.xml、drop.xml、external.xml、 home.xml、internal.xml、public.xml、trusted.xml、work.xml.
在/etc/firewalld/zones目录下,默认只有一个public.xml.
如果给另外一个zone做一些改动,并永久保存,那么会自动生成对应的配置文件.
比如:给work zone增加一个端口:
firewall-cmd --permanent --zone=work --add-port=80/tcp
此时就会生成一个/etc/firewalld/zones/work.xml的配置文件
(4). 通过服务名称管理防火墙
在/usr/lib/firewalld/services/目录中,保存了另外一类配置文件,每个文件对应一项具体的网络服务,如http服务等.在配置文件中记录了项服务所使用的:tcp/udp端口.
我们可以手工管理firewall的规则:
1. 拷贝/usr/lib/firewalld/services/的xml到/etc/firewalld/services目录下(比如:http.xml,重命名为:http-8080.xml,修改配置文件内的端口为:8080).
2. 编缉:/etc/firewalld/zones/public.xml,添加一行:<service name="http-8080"/>
3. 重新加载防火墙配置:firewall-cmd --reload
4. 上面3步的操作,相当于这条命令:firewall-cmd --zone=public --add-service=http --permanent
(5). firewall常用命令
1.查看防火墙状态
firewall-cmd --state
如果显示 not running 表示已经关闭防火墙。
2.关闭防火墙:
systemctl stop firewalld.service
3.禁止开机自启动:
systemctl disable firewalld.service
4.开启防火墙:
systemctl start firewalld.service
5.设置开机自启动:
systemctl enable firewalld.service
6.重启防火墙:
systemctl restart firewalld.service
7.查看防火墙状态:
systemctl status firewalld.service
8.开放80端口对外开放
firewall-cmd --zone=public --add-port=80/tcp --permanent
9.删除开放的80端口开放
firewall-cmd --zone=public --remove-port=80/tcp --permanent
10.显示详细
firewall-cmd --list-all
11.查看public区加载的服务
firewall-cmd --zone=public --list-services
12.查看public区打开的端口
firewall-cmd --zone=public --list-ports
13.查看支持zones
firewall-cmd --get-zones
14.查询系统支持哪些服务
firewall-cmd --get-services
15.添加端口范围
firewall-cmd --zone=public --add-port=80-65535/tcp --permanent
16. 端口转发格式如下:
# firewalld-cmd --permanent --zone=<区域> --add-forward-port=port=<源端口号>:proto=<协议>:toport=<目标端口号>:toaddr=<目标IP地址>
17.端口转发(请求本机8080端口,转发到:80端口)
firewall-cmd --add-forward-port=port=8080:proto=tcp:toport=80 --permanent
firewall-cmd --remove-forward-port=port=8080:proto=tcp:toport=80 --permanent
18.端口转发(请求本机的8080端口,转发到:10.211.55.5的80端口)
firewall-cmd --add-forward-port=port=8080:proto=tcp:toport=80:toaddr=10.211.55.5 --permanent