firewalld 详细介绍配置(二)

本文涉及的产品
云防火墙,500元 1000GB
简介: 【8月更文挑战第10天】配置`firewalld`涉及安装、启动与管理防火墙规则。首先通过`yum install firewalld`安装,然后使用`systemctl`命令进行启动、停止及禁用服务。`firewall-cmd`命令用于管理防火墙状态、查看版本与帮助信息、设置默认区域及接口所属区域。可通过添加或移除端口和服务来控制网络流量,并利用丰富规则进行更细粒度的控制。此外,`firewalld`支持动态规则更新,无需重启服务即可生效。可以通过配置文件持久化规则设置,适用于长期维护场景。

配置firewalld

安装firewalld:# yum install firewalld

启动:# systemctl start firewalld
查看状态:# systemctl status firewalld 或者 firewall-cmd --state
停止:# systemctl  stop  firewalld
禁用:# systemctl  disable  firewalld



查看版本:# firewall-cmd --version
查看帮助:# firewall-cmd --help
显示状态:# firewall-cmd --state
查看区域信息:# firewall-cmd --get-active-zones
查看指定接口所属区域:$ firewall-cmd --get-zone-of-interface=ens33
拒绝所有包:# firewall-cmd --panic-on
取消拒绝状态:# firewall-cmd --panic-off
查看是否拒绝:# firewall-cmd --query-panic

更新防火墙规则:

 # firewall-cmd --reload
# firewall-cmd --complete-reload
两者的区别就是第一个无需断开连接,就是firewalld特性之一动态添加规则,第二个需要断开连接,类似重启服务

使用下面的命令分别列出所有支持的 zone 和查看当前的默认 zone:

[root@xuegod63 ~]# firewall-cmd --get-zones

block dmz drop external home internal public trusted work

[root@xuegod63 ~]# firewall-cmd --get-default-zone

public

 

设置默认接口区域
# firewall-cmd --set-default-zone=public
立即生效无需重启

 

将接口添加到区域,默认接口都在public
# firewall-cmd --zone=public --add-interface=ens33
永久生效再加上 --permanent 然后reload防火墙

打开端口(貌似这个才最常用)
查看所有打开的端口:
# firewall-cmd --zone=dmz --list-ports
加入一个端口到区域:
# firewall-cmd --zone=dmz --add-port=8080/tcp
若要永久生效方法同上

打开一个服务,类似于将端口可视化,服务需要在配置文件中添加,/etc/firewalld 目录下有services文件夹

# firewall-cmd --zone=work --add-service=smtp
移除服务
# firewall-cmd --zone=work --remove-service=smtp

 

# 输出区域  全部启用的特性。如果省略区域,将显示默认区域的信息。
firewall-cmd [–zone=] –list-all

[root@xuegod63 ~]# firewall-cmd --list-all

public (default, active)

interfaces: eno16777736

sources:

services: dhcpv6-client ssh

ports:

masquerade: no

forward-ports:

icmp-blocks:

rich rules:

 

[root@xuegod63 ~]# firewall-cmd --zone=work --list-all

work

interfaces:

sources:

services: dhcpv6-client ipp-client ssh

ports:

masquerade: no

forward-ports:

icmp-blocks:

rich rules:

 

# 获取活动的区域

[root@xuegod63 ~]# firewall-cmd --get-active-zones

work

interfaces: ens33

 

# 根据接口获取区域
firewall-cmd -get-zone-of-interface=

[root@xuegod63 ~]# firewall-cmd --get-zone-of-interface=ens33

# 以下关于区域和接口的操作,就不一一举例了,可以根据实际情况修改.
# 将接口增加到区域

firewall-cmd [--zone=] --add-interface=

# 如果接口不属于区域,接口将被增加到区域。如果区域被省略了,将使用默认区域。接口在重新加载后将重新应用。

# 修改接口所属区域

firewall-cmd [--zone=] --change-interface=

# 这个选项与 –add-interface 选项相似,但是当接口已经存在于另一个区域的时候,该接口将被添加到新的区域。

# 从区域中删除一个接口

firewall-cmd [--zone=] --remove-interface=

# 查询区域中是否包含某接口

firewall-cmd [--zone=] --query-interface=

# 注意:返回接口是否存在于该区域。没有输出。

# 列举区域中启用的服务

firewall-cmd [ --zone= ] --list-services

# 这两条简单点说,就是断网和连网.

firewall-cmd --panic-on

# 启用应急模式阻断所有网络连接,以防出现紧急状况

firewall-cmd --panic-off

# 查询应急模式

firewall-cmd --query-panic

 

#####通过配置文件来使用Firewalld的方法#####

系统本身已经内置了一些常用服务的防火墙规则,存放在/usr/lib/firewalld/services/

注意!

请勿编辑/usr/lib/firewalld/services/ ,只有 /etc/firewalld/services 的文件可以被编辑。

[root@xuegod63 ~]# ls /usr/lib/firewalld/services/

amanda-client.xml dhcpv6.xml high-availability.xml ipp-client.xml kpasswd.xml libvirt.xml

mysql.xml pmcd.xml pop3s.xml RH-Satellite-6.xml smtp.xml tftp.xml

bacula-client.xml dhcp.xml https.xml ipp.xml ldaps.xml mdns.xml nfs.xml pmproxy.xml

postgresql.xml rpc-bind.xml ssh.xml transmission-client.xml

bacula.xml dns.xml http.xml ipsec.xml ldap.xml mountd.xml ntp.xml pmwebapis.xml

proxy-dhcp.xml samba-client.xml telnet.xml vnc-server.xml

dhcpv6-client.xml ftp.xml imaps.xml kerberos.xml libvirt-tls.xml ms-wbt.xml openvpn.xml

pmwebapi.xml radius.xml samba.xml tftp-client.xml wbem-https.xml

动态添加一条防火墙规则如下:

以下例子均以系统自带的public zone 为例子.


假设自定义的 ssh 端口号为 12222,使用下面的命令来添加新端口的防火墙规则:

 

如果需要使规则保存到 zone 配置文件,则需要加参数 –permanent
举例如下:

[root@xuegod63 ~]# firewall-cmd --add-port=12222/tcp

success

[root@xuegod63 ~]# vim  /etc/firewalld/zones/public.xml



Public

For use in public areas. You do not trust the other computers on networks to

not harm your computer. Only selected incoming connections are accepted.




发现没有写到配置文件里


[root@xuegod63 ~]# firewall-cmd --add-port=12222/tcp --permanent

success

[root@xuegod63 ~]# cat /etc/firewalld/zones/public.xml



Public

For use in public areas. You do not trust the other computers on networks to

not harm your computer. Only selected incoming connections are accepted.





已经写到配置文件里

 

# 注意:防火墙配置文件也可以手动修改,修改后记得重载

9.3.2  firewalld配置

如果想开放80端口供外网访问http服务,例子如下

1. 将 http.xml复制到/etc/firewalld/services/下面,以服务形式管理防火墙,

# 这个cp命令其实是可以省略的,系统会优先去读取 /etc/firewalld 里面的文件,读取完毕后,会去/usr/lib/firewalld/services/ 再次读取.为了方便修改和管理,建议复制到/etc/firewalld

[root@xuegod63 ~]# cp /usr/lib/firewalld/services/http.xml /etc/firewalld/services/

[root@xuegod63 ~]# ls /etc/firewalld/services/

http.xml

[root@xuegod63 ~]# ls /etc/firewalld/zones/

public.xml public.xml.old

 

(1) 修改public.xml,加入http服务

[root@xuegod63 ~]# cat /etc/firewalld/zones/public.xml



Public

For use in public areas. You do not trust the other computers on networks to

not harm your computer. Only selected incoming connections are accepted.



    #这行是后加的,要匹配 /etc/firewalld/services/目录下的文件名


 

(2) 重新载入 两条命令都可以的

以 root 身份输入以下命令,重新加载防火墙,并不中断用户连接,即不丢失状态信息:

[root@xuegod63 ~]# firewall-cmd --reload

success

 

2. 修改防火墙ssh的端口方法

(1) 复制ssh.xml文件到/etc/firewalld/services/

[root@xuegod63 ~]# cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/

 

(2) 修改ssh.xml文件 12222为ssh端口

[root@xuegod63 ~]# vim /etc/firewalld/services/ssh.xml



SSH

Secure Shell (SSH) is a protocol for logging into and executing commands on

remote machines. It provides secure encrypted communications. If you plan on accessing

your machine remotely via SSH over a firewalled interface, enable this option. You need the

openssh-server package installed for this option to be useful.



 

(3) 重新载入 两条命令都可以的

以 root 身份输入以下命令,重新加载防火墙,并不中断用户连接,即不丢失状态信息:

[root@xuegod63 ~]# firewall-cmd --reload

success

 

3. 指定ip访问ssh端口

修改/etc/firewalld/zones/

# rule字段内为要限制的ip和使用的服务

[root@xuegod63 ~]# vim /etc/firewalld/zones/public.xml



Public

For use in public areas. You do not trust the other computers on networks to

not harm your computer. Only selected incoming connections are accepted.








[root@xuegod63 ~]# firewall-cmd --reload

success

 

4. 添加自定义服务

举例添加8080端口为新的Service
(1) 添加新文件 8080.xml

vim /etc/firewalld/services/8080.xml

8080 Test

此处为文字说明

 

(2)编辑public.xml 文件,加入相应的Server

vim /etc/firewalld/zones/public.xml

Public

For use in public areas. You do not trust the other computers on networks to

not harm your computer. Only selected incoming connections are accepted.


# 这行是后加的,要匹配 /etc/firewalld/services/8080.xml 文件名

重新载入

[root@xuegod63 ~]# firewall-cmd --reload

success

  

SNAT

firewall-cmd --permanent --direct --passthrough ipv4 -t nat -A POSTROUTING -s 192.168.10.0/24 -j SNAT --to-source 你的公网ip

 

DNAT

firewall-cmd --permanent --direct --passthrough ipv4 -t nat -A PREROUTING -d 173.16.16.1 -p tcp--dport 2346 -j DNAT --to-destination 192.168.10.2:22


 

目录
相关文章
|
2月前
|
安全 网络协议 关系型数据库
firewalld 详细介绍配置(一)
【8月更文挑战第10天】FirewallD是一款动态防火墙管理工具,通过网络区域(zone)定义接口的安全级别。与iptables需重载全部规则相比,FirewallD仅更新变动部分,更高效。它利用iptables作为规则管理入口,自身不具防火墙功能,依赖内核的netfilter实现。区域(zone)代表一组过滤规则,不同区域默认行为各异,如public、work等。服务配置则以人性化名称管理端口,简化规则管理。常用命令包括安装、启动、停止及查询状态等。
46 4
|
5月前
|
安全 网络协议 Linux
firewalld服务 具体介绍
firewalld服务 具体介绍
|
网络协议 安全 Linux
firewalld防火墙(二)
firewalld防火墙(二)
297 0
|
存储 网络协议 安全
firewalld防火墙(一)
firewalld防火墙(一)
221 0
|
网络协议 Linux 应用服务中间件
Firewalld防火墙(二。1)
⭐本文介绍⭐ 上一章介绍了Linux防火墙,并简单的编写了防火墙规则。Liunx防火墙在很多时候承担着连接企业内、外网的重任,除了提供数据包过滤功能以外,还提供了一些基本的网关应用。本文将介绍Linux防火墙的地址转换策略,分别掌握两个典型的应用:局域网共享一个公网IP地址接入Internet发布位于内网的应用服务器。
Firewalld防火墙(二。1)
|
网络安全 网络架构
|
Linux 应用服务中间件 网络安全
Firewalld防火墙(二。2)
⭐本文介绍⭐ 上一章介绍了Linux防火墙,并简单的编写了防火墙规则。Liunx防火墙在很多时候承担着连接企业内、外网的重任,除了提供数据包过滤功能以外,还提供了一些基本的网关应用。本文将介绍Linux防火墙的地址转换策略,分别掌握两个典型的应用:局域网共享一个公网IP地址接入Internet发布位于内网的应用服务器。
Firewalld防火墙(二。2)
|
网络协议 安全 Linux
Firewalld防火墙
⭐本文介绍⭐ 在Internet中,企业通过架设各种应用系统来为用户提供各种网站服务,如Wevb网站、电子邮件系统、FTP服务器、数据库系统等。那么,如何来保护这服务器,过滤企业非授权的访问,甚至是恶意的入侵呢?本文将介绍Linux系统中的防火墙——net filter和firewalld,包括防火墙的结构与匹配流程,以及如何编写防火墙规则。
Firewalld防火墙
|
存储 网络协议 网络安全
firewalld详解
firewalld详解
firewalld详解
|
网络安全
firewalld防火墙服务
firewalld防火墙服务
277 1