🏡作者主页:点击! 

🐧Linux基础知识(初学):点击!

🐧🐧Linux高级管理专栏:点击!

🔐Linux中firewalld防火墙:点击!

⏰️创作时间:2024年7月5日9点11分

🀄️文章质量:94分


前言

在现代Linux系统的管理中,防火墙的配置和管理是保障系统安全的关键任务之一。Firewalld作为一款动态管理工具,通过其提供的firewall-cmd命令,能够简化并强化防火墙的配置流程。对于每一位Linux运维工程师而言,掌握firewall-cmd的基本命令不仅能够提升系统的安全性,更能显著提高运维工作的效率。本篇文章将详细介绍firewall-cmd的基本命令及其应用场景,帮助您轻松掌握这项必备技能,从而更好地管理和保护您的Linux系统。

1.启动查看关闭

1.启动、停止、查看 firewalld 服务在安装cent0s7系统时,会自动安装irewelld 和图形化工具 firewal-config。执行以下命令。以启动 firewalld 并设置为开机自启动状态。

systemctl start firewalld    //启动firewalld
systemctl enable firewalld   //设置firewalld为开机自动启动
systemctl status firewalld   |  firewall-cmd --state   //查看状态

停止禁用防火墙

systemctl stop firewalld   //停止防火墙
systemctl disable  firewalld   //设置防火墙开机不自动启动

2.获取预定义信息

预定义信息主要包括三种:可用的区域,可用的服务以及可用的ICMP阻塞类型

可用的区域

firewall-cmd --get-zones
work drop internal external trusted home dmz public blo

可用的服务

firewall-cmd --get-service
RH-Satellite-6 amanda-client amanda-k5-client bacula bacula-client
 ceph ceph-mon dhcp dhcpv6 dhcpv6-client dns docker-registry dropbox-lansync 
freeipa-ldap freeipa-ldaps freeipa-replication ftp high-availability http https imap 
imaps ipp ipp-client ipsec iscsi-target kadmin kerberos kpasswd ldap 
ldaps libvirt libvirt-tls mdns mosh mountd ms-wbt mysql nfs ntp openvpn
 pmcd pmproxy pmwebapi pmwebapis pop3 pop3s postgresql privoxy proxy-dhcp
 ptp pulseaudio puppetmaster radius rpc-bind rsyncd samba samba-client 
sane smtp smtps snmp snmptrap squid ssh synergy syslog syslog-tls telnet 
tftp tftp-client tinc tor-socks transmission-client vdsm vnc-server 
wbem-https xmpp-bosh xmpp-client xmpp-local xmpp-server

ICMP阻塞类型

firewall-cmd --get-icmptypes
destination-unreachable echo-reply echo-request parameter-problem
 redirect router-advertisement router-solicitation source-quench 
time-exceeded timestamp-reply timestamp-request

3.区域管理

使用 firewall-cmd 命令可以实现获取和管理区域,为指定区域绑定网络接口等功能。

显示默认的zone区域

firewall-cmd --get-default-zone

public

显示区域内的所有制定的规则

firewall-cmd --list-all


public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens33 ens36 ens37
  sources: 
  services: dhcpv6-client ssh
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  sourceports: 
  icmp-blocks: 
  rich rules:

显示对应网卡所属的区域

firewall-cmd --get-zone-of-interface=ens33

将ens33网卡对应的区域改为internal内部区域

firewall-cmd --zone=public --change-interface=ens33
success
firewall-cmd --zone=internal --list-interfaces
ens33
firewall-cmd --get-zone-of-interface=ens33
ens33

显示所有激活区域

firewall-cmd --get-active-zones
public
  interfaces: ens36 ens37 ens33

为内部区域(internal) 设置允许访问的服务

以下只是部分实例

firewall-cmd --zone=internal --add-service=myqsl
设置internal 区域允许访问myql服务


firewall-cmd --zone=internal --remove-service=samba-client
设置internal 区域不允许访问samba-client


firewall-cmd --zone=internal --list-services
显示internal区域内允许访问的所有服务

4端口管理

实现在 internal区域打开 443/TCP 端口。

firewal1-cmd --zone=internal --add-port=443/tcp

若想实现在 inteal 区域禁止 443/TCP 端口访问,可执行以下命令

firewall-cmd --zone=internal --remove-port=443/tcp

4.两种配置模式

Firewalld 提供两种配置模式:运行时模式(Runtime mode)和永久模式(Permanent mode)。

运行时模式表示当前内存中运行的防火墙配置,在系统或 firewalld 服务重启、停止时配置将失效;

永久模式表示重启防火墙或重新加载防火墙时的规则配置,是永久存储在配置文件中的。

firewall-cmd 命令工具与配置模式相关的选项有三个:

  • --reload: 重新加载防火墙规则并保持状态信息,即将永久配置应用为运行时配置。
  • --permanent: 带有此选项的命令用于设置永久性规则,这些规则只有在重新启动 firewalld 或重新加载防火墙规则时才会生效;若不带有此选项,表示用于设置运行时规则。
  • --runtime-to-permanent: 将当前的运行时配置写入规则配置文件中,使之成为永久性配置。

通过本文,您将学会如何使用这些选项来有效管理防火墙配置,从而提升Linux系统的安全防护水平。

"成功的路上没有捷径,只有不断的努力与坚持。如果你和我一样,坚信努力会带来回报,请关注我,点个赞,一起迎接更加美好的明天!你的支持是我继续前行的动力!"

"每一次创作都是一次学习的过程,文章中若有不足之处,还请大家多多包容。你的关注和点赞是对我最大的支持,也欢迎大家提出宝贵的意见和建议,让我不断进步。"

神秘泣男子

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐