时间:2020-02-23来源:电脑系统城作者:电脑系统城
防火墙作为公网和内网之间的保护屏障,对于保护服务器和数据的安全有着至关重要的作用,我们不能直接管理和修改服务器上的防火墙规则,只能通过管理工具去管理。在众多的管理工具中,iptables和firewalld只是启动的两个工具而已,在redhat7之前一直使用的是iptables工具去管理服务器上的防火墙,但是在redhat7之后舍弃了iptables,取而代之的是firewalld。这就是为什么要去学习使用firewalld。
firewalld拥有基于CLI(命令行界面)和GUI(图形化界面)两种管理方式。
和之前的iptables相比,firewalld支持动态更新技术并加入了区域(zone)的概念。区域就是firewalld提前准备好了几套防火墙的规则模板,用户可以根据不同的工作场景对模板进行动态切换,因为不同的工作场景对安全的要求是不一样的。避免了每次都手动去修改每一条防火墙的规则,这点确实是提高了效率。
fiewalld中常用的区域(模板):
区域(模板) | 默认的规则 |
---|---|
trusted | 允许所有的数据报 |
home | 拒绝流入的流量,除非与流出的流量有关;而如果流量与ssh mdns ipp-client amba-client dhcpv6-client服务有关,则允许流量 |
internal | 等同于home |
work | 拒绝流入的流量,除非与流出的流量有关;而如果流量与ssh ipp-client dhcpv6-client服务有关,则允许流量 |
public | 拒绝流入的流量,除非与流出的流量有关;而如果流量与ssh dhcpv6-client服务有关,则允许流量 |
external | 拒绝流入的流量,除非与流出的流量有关;而如果流量与ssh服务有关,则允许流量 |
dmz | 拒绝流入的流量,除非与流出的流量有关;而如果流量与ssh服务有关,则允许流量 |
block | 拒绝流入的流量,除非与流出的流量有关 |
drop | 拒绝流入的流量,除非与流出的流量有关 |
firewall-cmd是firewalld防火墙配置管理工具的CLI版本,参数支持tab补齐,firewalld配置有两种模式:
永久模式(Permanent),在添加规则是加上 --permanent参数,就可以配置到永久模式,但是永久模式的规则,需要下次重启系统时才会生效,如果想要是永久配置立即生效,可以手动执行 firewalld-cmd --reload 命令。
常用参数如下:
参数 | 作用 |
---|---|
--get-default-zone | 查询默认的区域名称 |
--set-default-zone=<区域名称> | 设置默认的区域,使其永久生效 |
--get-zones | 显示可用的区域 |
--get-services | 显示预先定义的服务 |
--get-active-zones | 显示当前正在使用的区域与网卡名称 |
--add-source= | 将源自此IP或者子网的流量导向指定的区域 |
--remove-source= | 将此IP从指定区域删除 |
--add-interface=<网卡名称> | 将源自这个网卡的所有流量都导向某个指定区域 |
--change-interface=<网卡名称> | 将某个网卡与区域进行关联 |
--list-all | 显示当前区域的网卡配置参数、资源、端口以及服务信息 |
--list-all-zones | 显示所有区域的网卡配置参数、资源、端口以及服务信息 |
--add-service=<服务名> | 设置默认区域允许该服务的流量 |
--add-port=<端口/协议> | 设置默认区域允许该端口的流量 |
--remove-service=<服务名> | 设置默认区域不允许该服务的流量 |
--remove-port=<端口/协议> | 设置默认区域不允许该端口的流量 |
--reload | 让“永久生效”的配置规则立即生效,并覆盖当前的配置规则 |
--panic-on | 开启应急状况模式 |
--panic-off | 关闭应急状况模式 |
查看当前所在的区域
[root@localhost Desktop]# firewall-cmd --get-default-zone
public
查询网卡eno16777736所在的区域
[root@localhost Desktop]# firewall-cmd --get-zone-of-interface=eno16777736
public
将网卡eno16777736的默认区域修改为external,并在系统重启后生效。分别查看网卡eno16777736 在当前模式和用户模式下的区域:
[root@localhost Desktop]# firewall-cmd --permanent --zone=external --change-interface=eno16777736
success
[root@localhost Desktop]# firewall-cmd --get-zone-of-interface=eno16777736
public
[root@localhost Desktop]# firewall-cmd --get-zone-of-interface=eno16777736 --permanent
external
把firewall服务的当前默认区域设置成public
[root@localhost Desktop]# firewall-cmd --set-default-zone=public
success
[root@localhost Desktop]# firewall-cmd --get-default-zone
public
启动、关闭firewalld防火墙的应急状况模式,阻断一些网络连接(当远程控制服务器时慎用、慎用、慎用)
[root@localhost Desktop]# firewall-cmd --panic-on
success
[root@localhost Desktop]# firewall-cmd --panic-off
success
查询public区域是否允须ssh和https协议的流量
[root@localhost Desktop]# firewall-cmd --zone=public --query-service=ssh
yes
[root@localhost Desktop]# firewall-cmd --zone=public --query-service=https
no
将https协议设置为永久允许,并立即生效
[root@localhost Desktop]# firewall-cmd --permanent --zone=public --add-service=https
success
[root@localhost Desktop]# firewall-cmd --reload
success
将http洗衣设置为永久拒绝,并立即生效
[root@localhost Desktop]# firewall-cmd --permanent --zone=public --remove-service=http
success
[root@localhost Desktop]# firewall-cmd --reload
success
将8080和8081端口设置为允许,仅当前生效
[root@localhost Desktop]# firewall-cmd --zone=public --add-port=8080/tcp
success
[root@localhost Desktop]# firewall-cmd --zone=public --add-port=8081/tcp
success
[root@localhost Desktop]# firewall-cmd --list-ports
8081/tcp 8080/tcp
将本机的888端口转发到222端口,当前和永久生效
端口转发的格式:
firewall-cmd --permanent --zone=<区域名> --add-forward-port=port=<源端口>:proto=<协议>:toport=<目标端口>:toaddr=<目标IP地址>
[root@localhost Desktop]# firewall-cmd --permanent --zone=public --add-forward-port=port=888:proto=tcp:toport=22:toadr=192.168.137.10
success
添加一条富规则,使其拒绝192.168.10.0/24网段访问本机的22端口
富规则表示更细致、更详细的防火墙策略配置,可以针对系统服务、端口、源地址和目标地址等多种信息进行配置,它的优先级在所有防火墙策略中也是最高的
[root@localhost Desktop]# firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.10.0/24" service name="ssh" reject"
success
打开图形界面的命令式firewall-config
[root@localhost Desktop]# firewall-config
图形界面比较简单,在runtime模式下,设置完立即生效,不用其他操作
如果是在permanent模式设置的,最后需要点击左上角菜单中的“Options”-“Reload Firewalld”,是永久配置立即生效。
这就是我对firwalld的简单了解和基本的操作
2024-07-18
Centos 7 二进制安装配置 MariaDB数据库2024-07-18
Centos7默认firewalld防火墙使用命令大全2024-07-07
四种执行python系统命令的方法常用权限linux系统内有档案有三种身份 u:拥有者 g:群组 o:其他人这些身份对于文档常用的有下面权限:r:读权限,用户可以读取文档的内容,如用cat,more查看w:写权限,用户可以编辑文档x...
2024-07-07
然而,如果我们遵循通常的 WordPress 最佳实践,这些安全问题可以避免。在本篇中,我们会向你展示如何使用 WPSeku,一个 Linux 中的 WordPress 漏洞扫描器,它可以被用来找出你安装...
2024-07-03