centos7之firewalld防火墙的配置与使用
Posted jkko123
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了centos7之firewalld防火墙的配置与使用相关的知识,希望对你有一定的参考价值。
firewalld是centos7开始提供的管理防火墙工具,提供了一个动态管理的防火墙,当然低层仍然调用的是 netfilter 。
一、区域(zone)
firewalld将网卡对应到不同的区域(zone),zone默认共有9个,block,dmz,drop,external,home,internal,public,trusted,work。
二、服务(services)
/usr/lib/firewalld/services目录中,保存了另一类配置文件,每个文件对应一项具体的网络服务,如 ssh 服务。
对应的配置文件中记录了各项服务所使用的 tcp/udp 端口,最新的 firewalld 中默认已经定义了 70 多种服务供我们使用。
修改服务的配置只需将/usr/lib/firewalld/services中的配置文件复制到/etc/firewalld/services中修改即可。
三、firewalld常用命令
安装
yum install firewalld
启动
systemctl start firewalld
停止
systemctl stop firewalld
查看版本
firewall-cmd --version
查看状态
firewall-cmd --state
重新载入
firewall-cmd --reload
查看firewalld支持的service
firewall-cmd --get-services
查看当前zone加载的service
firewall-cmd --list-services
查看区域信息
firewall-cmd --get-active-zone
查看活动的区域
firewall-cmd --get-active-zones
查看指定接口所属区域
firewall-cmd --get-zone-of-interface=ens33
查看默认区域
firewall-cmd --get-default-zone
设置默认区域
firewall-cmd --set-default-zone public
获取所有的区域
firewall-cmd --get-zones
拒绝所有包
firewall-cmd --panic-on
取消拒绝状态
firewall-cmd --panic-off
查看是否拒绝
firewall-cmd --query-panic
将接口添加到区域
firewall-cmd --zone=public --add-interface=eth0
将接口从区域中删除
firewall-cmd --zone=public --remove-interface=eth0
修改接口所属区域
firewall-cmd --zone=dmz --change-interface=eth0
查询区域中是否包含某接口
firewall-cmd --zone=public --query-interface=eth0
四、打开端口 (最常用)
查看区域打开的所有端口
firewall-cmd --zone=public --list-ports
加入一个端口到区域
firewall-cmd --zone=public --add-port=8080/tcp
从区域中删除一个端口
firewall-cmd --zone=public --remove-port=8080/tcp
永久生效加上 --permanent 然后 reload 防火墙
注意,如果加上 --permanent 参数后,会把该配置写入到指定的区域配置文件中,比如:/etc/firewalld/zones/public.xml
五、如何打开一个服务
打开一个服务,类似端口可视化,服务需要在配置文件中添加,/etc/firewalld/services目录下。
查询区域中启用的服务
firewall-cmd --zone=public --list-services
将ssh服务添加到public区域
firewall-cmd --zone=public --add-service=ssh
移除服务
firewall-cmd --zone=public --remove-service=ssh
六、如何设置端口转发
要使用端口转发,需开启防火墙伪装
firewall-cmd --add-masquerade --permanent
如:我们想把访问本机192.168.1.222的3306端口转发到192.168.1.111主机的3306端口上
1、先把本机的3306端口放开
firewall-cmd --permanent --zone=public --add-port=3306/tcp
2、把访问本地3306端口的请求转发到192.168.1.111主机的3306上
firewall-cmd --permanent --zone=public --add-forward-port=port=3306:proto=tcp:toaddr=192.168.1.111:toport=3306
这样当我们访问222主机的3306端口时,实际访问的是111主机的3306端口。
以上是关于centos7之firewalld防火墙的配置与使用的主要内容,如果未能解决你的问题,请参考以下文章
CentOS7的专属防火墙:Firewalld 之了解与使用
centos 7之firewalld防火墙配置IP伪装和端口转发案例详解