前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >CentOS 防火墙 firewall-cmd 命令

CentOS 防火墙 firewall-cmd 命令

作者头像
I Teach You 我教你
发布于 2023-07-18 10:05:04
发布于 2023-07-18 10:05:04
64100
代码可运行
举报
运行总次数:0
代码可运行
防火墙状态及规则
  1. 查看防火墙状态:firewall-cmd --state
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1[root@localhost ~]# firewall-cmd --state 
2running
  1. 查看防火墙:firewall-cmd --list-all
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 1[root@localhost ~]# firewall-cmd --list-all
 2public (active)
 3  target: default
 4  icmp-block-inversion: no
 5  interfaces: eth0
 6  sources:
 7  services: dhcpv6-client http
 8  ports: 999/tcp
 9  protocols:
10  masquerade: no
11  forward-ports:
12  source-ports:
13  icmp-blocks:
14  rich rules:
  1. 更新防火墙规则:firewall-cmd --reload
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1[root@localhost ~]# firewall-cmd --reload
2success
端口
  1. 临时增加(reload之后消失):不需要reload
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1[root@localhost ~]# firewall-cmd --add-port=999/tcp
2success
3[root@localhost ~]# firewall-cmd --query-port=999/tcp
4yes
5[root@localhost ~]# firewall-cmd --reload
6success
7[root@localhost ~]# firewall-cmd --query-port=999/tcp
8no
  1. 永久增加:reload后生效
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1[root@localhost ~]# firewall-cmd --permanent --add-port=999/tcp
2success
3[root@localhost ~]# firewall-cmd --reload
4success
5[root@localhost ~]# firewall-cmd --query-port=999/tcp
6yes
  1. 临时删除端口:reload后消失
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1[root@localhost ~]# firewall-cmd --remove-port=999/tcp
2success
3[root@localhost ~]# firewall-cmd --query-port=999/tcp
4no
5[root@localhost ~]# firewall-cmd --reload
6success
7[root@localhost ~]# firewall-cmd --query-port=999/tcp
8yes
  1. 永久删除端口:reload后生效
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1[root@localhost ~]# firewall-cmd --permanent --remove-port=999/tcp
2success
3[root@localhost ~]# firewall-cmd --query-port=999/tcp
4yes
5[root@localhost ~]# firewall-cmd --reload
6success
7[root@localhost ~]# firewall-cmd --query-port=999/tcp
8no
  1. 查询端口
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1[root@localhost ~]# firewall-cmd --query-port=999/tcp
2yes
  1. 查看所有放行的端口
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1[root@localhost ~]# firewall-cmd --list-ports
2999/tcp
IP
  1. 防火墙添加允许访问的IP 注:添加允许访问的IP后,需要reload才能生效
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1[root@localhost logs]# firewall-cmd --zone=public --add-rich-rule 'rule family="ipv4" source address="10.45.2.35" accept' --permanent
2success
3[root@localhost logs]# firewall-cmd  --reload
4success
服务
  1. 防火墙服务的状态
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 1[root@localhost ~]# systemctl status firewalld.service
 2● firewalld.service - firewalld - dynamic firewall daemon
 3   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
 4   Active: active (running) since 五 2021-10-29 11:09:30 CST; 3 days ago
 5     Docs: man:firewalld(1)
 6 Main PID: 42215 (firewalld)
 7   CGroup: /system.slice/firewalld.service
 8           └─42215 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid
 9
101029 11:09:30 localhost.localdomain systemd[1]: Starting firewalld - dyna...
111029 11:09:30 localhost.localdomain systemd[1]: Started firewalld - dynam...
121102 10:22:44 localhost.localdomain firewalld[42215]: WARNING: ALREADY_EN...
131102 10:23:29 localhost.localdomain firewalld[42215]: WARNING: ALREADY_EN...
14Hint: Some lines were ellipsized, use -l to show in full.
  1. 启动/关闭防火墙
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1[root@localhost ~]# systemctl stop firewalld.service
2[root@localhost ~]# systemctl start firewalld.service
  1. 获取所有支持的服务
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1[root@localhost ~]# firewall-cmd --get-services
2RH-Satellite-6 amanda-client amanda-k5-client bacula bacula-client bgp bitcoin bitcoin-rpc bitcoin-testnet bitcoin-testnet-rpc ceph ceph-mon cfengine condor-collector ctdb dhcp dhcpv6 dhcpv6-client dns docker-registry docker-swarm dropbox-lansync elasticsearch freeipa-ldap freeipa-ldaps freeipa-replication freeipa-trust ftp ganglia-client ganglia-master git gre high-availability http https imap imaps ipp ipp-client ipsec irc ircs iscsi-target jenkins kadmin kerberos kibana klogin kpasswd kprop kshell ldap ldaps libvirt libvirt-tls managesieve mdns minidlna mongodb mosh mountd ms-wbt mssql murmur mysql nfs nfs3 nmea-0183 nrpe ntp openvpn ovirt-imageio ovirt-storageconsole ovirt-vmconsole pmcd pmproxy pmwebapi pmwebapis pop3 pop3s postgresql privoxy proxy-dhcp ptp pulseaudio puppetmaster quassel radius redis rpc-bind rsh rsyncd samba samba-client sane sip sips smtp smtp-submission smtps snmp snmptrap spideroak-lansync squid ssh syncthing syncthing-gui synergy syslog syslog-tls telnet tftp tftp-client tinc tor-socks transmission-client upnp-client vdsm vnc-server wbem-https xmpp-bosh xmpp-client xmpp-local xmpp-server zabbix-agent zabbix-server
  1. 增加服务(临时增加)
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1[root@localhost ~]# firewall-cmd --add-service=https
2success
3[root@localhost ~]# firewall-cmd --query-service=https
4yes
5[root@localhost ~]# firewall-cmd --reload
6success
7[root@localhost ~]# firewall-cmd --query-service=https
8no
  1. 删除服务(临时删除)
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 1[root@localhost ~]# firewall-cmd --query-service=https
 2yes
 3[root@localhost ~]# firewall-cmd --remove-service=https
 4success
 5[root@localhost ~]# firewall-cmd --query-service=https
 6no
 7[root@localhost ~]# firewall-cmd --reload
 8success
 9[root@localhost ~]# firewall-cmd --query-service=https
10no
  1. 查询服务
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1[root@localhost ~]# firewall-cmd --query-service=https
2yes
  1. 增加服务(永久)
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1[root@localhost bin]# firewall-cmd --permanent --add-service=http
2success
3[root@localhost bin]# firewall-cmd --reload
4success
5[root@localhost bin]# firewall-cmd --query-service=http
6yes
  1. 删除服务(永久)
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1[root@localhost bin]# firewall-cmd --permanent --remove-service=ssh
2success
3[root@localhost bin]# firewall-cmd --reload
4success
5[root@localhost bin]# firewall-cmd --query-servicessh
6no
封禁IP
  1. 查看所有的规则:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 1firewall-cmd --list-all-zones
 2# drop: 丢弃所有进入的包,而不给出任何响应
 3# block: 拒绝所有外部发起的连接,允许内部发起的连接
 4# public: 允许指定的进入连接
 5# external: 同上,对伪装的进入连接,一般用于路由转发
 6# dmz: 允许受限制的进入连接
 7# work: 允许受信任的计算机被限制的进入连接,类似 workgroup
 8# home: 同上,类似 homegroup
 9# internal: 同上,范围针对所有互联网用户
10# trusted: 信任所有连接
  1. 管理端口
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1#列出 dmz 级别的被允许的进入端口
2firewall-cmd --zone=dmz --list-ports
3# 允许 tcp 端口 8080 至 dmz 级别
4firewall-cmd --zone=dmz --add-port=8080/tcp
5# 允许某范围的 udp 端口至 public 级别,并永久生效
6firewall-cmd --zone=public --add-port=5060-5059/udp --permanent
  1. 网卡接口
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1# 列出 public zone 所有网卡
2firewall-cmd --zone=public --list-interfaces
3# 将 eth0 添加至 public zone,永久
4firewall-cmd --zone=public --permanent --add-interface=eth0
5# eth0 存在与 public zone,将该网卡添加至 work zone,并将之从 public zone 中删除
6firewall-cmd --zone=work --permanent --change-interface=eth0
7# 删除 public zone 中的 eth0,永久
8firewall-cmd --zone=public --permanent --remove-interface=eth0
  1. 管理服务
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1# 添加 smtp 服务至 work zone
2firewall-cmd --zone=work --add-service=smtp
3# 移除 work zone 中的 smtp 服务
4firewall-cmd --zone=work --remove-service=smtp
  1. 配置 external zone 中的 ip 地址伪装
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1# 查看
2firewall-cmd --zone=external --query-masquerade
3# 打开伪装
4firewall-cmd --zone=external --add-masquerade
5# 关闭伪装
6firewall-cmd --zone=external --remove-masquerade
  1. 配置 public zone 的端口转发
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1# 要打开端口转发,则需要先
2firewall-cmd --zone=public --add-masquerade
3# 然后转发 tcp 22 端口至 3753
4firewall-cmd --zone=public --add-forward-port=port=22:proto=tcp:toport=3753
5# 转发 22 端口数据至另一个 ip 的相同端口上
6firewall-cmd --zone=public --add-forward-port=port=22:proto=tcp:toaddr=192.168.1.100
7# 转发 22 端口数据至另一 ip 的 2055 端口上
8firewall-cmd --zone=public --add-forward-port=port=22:proto=tcp:toport=2055:toaddr=192.168.1.100
  1. 配置 public zone 的 icmp
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1# 查看所有支持的 icmp 类型
2firewall-cmd --get-icmptypes
3destination-unreachable echo-reply echo-request parameter-problem redirect router-advertisement router-solicitation source-quench time-exceeded
4# 列出
5firewall-cmd --zone=public --list-icmp-blocks
6# 添加 echo-request 屏蔽
7firewall-cmd --zone=public --add-icmp-block=echo-request [--timeout=seconds]
8# 移除 echo-reply 屏蔽
9firewall-cmd --zone=public --remove-icmp-block=echo-reply
  1. IP 封禁 (这个是我们平时用得最多的)
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 1# 单个IP
 2firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='222.222.222.222' reject"
 3# IP段
 4firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='222.222.222.0/24' reject" 
 5# 单个IP的某个端口
 6firewall-cmd --permanent --add-rich-rule="rule family=ipv4 source address=192.168.1.2 port port=80 protocol=tcp accept" 
 7# 这个是我们用得最多的,封一个IP和一个PORT。reject:拒绝;accept:允许。当然,我们仍然可以通过 ipset 来封禁 ip
 8# 封禁 ip
 9firewall-cmd --permanent --zone=public --new-ipset=blacklist --type=hash:ip
10firewall-cmd --permanent --zone=public --ipset=blacklist --add-entry=222.222.222.222
11# 封禁网段
12firewall-cmd --permanent --zone=public --new-ipset=blacklist --type=hash:net
13firewall-cmd --permanent --zone=public --ipset=blacklist --add-entry=222.222.222.0/24
14# 导入 ipset 规则
15firewall-cmd --permanent --zone=public --new-ipset-from-file=/path/blacklist.xml
16# 然后封禁 blacklist
17firewall-cmd --permanent --zone=public --add-rich-rule='rule source ipset=blacklist drop'
  1. IP封禁和端口
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1firewall-cmd --permanent --add-rich-rule="rule family=ipv4 source address=192.168.1.2 port port=80 protocol=tcp accept"
2# 只对192.168.1.2这个IP只能允许80端口访问  (拒绝访问只需把  accept 换成 reject、删除该规则把 –add-rich-rule 改成 –remove-rich-rule即可)
3----------------------------------------- 
4firewall-cmd --permanent --add-rich-rule="rule family=ipv4 source address=192.168.1.2/24 port port=80 protocol=tcp accept"
5# 只对192.168.1.2这个IP段只能允许80端口访问(拒绝访问只需把  accept 换成 reject、删除该规则把 –add-rich-rule 改成 –remove-rich-rule即可
  1. 双网卡内网网卡不受防火墙限制
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1# 公网网卡–zone=public默认区域
2firewall-cmd --permanent --zone=public --add-interface=eth1
3
4# 内网网卡–zone=trusted是受信任区域 可接受所有的网络连接
5firewall-cmd --permanent --zone=trusted --add-interface=eth2
  1. 重新载入以生效
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1firewall-cmd --reload
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022/08/27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
CentOS7防火墙firewall操作命令
firewalld的基本使用 systemctl start firewalld #启动 systemctl status firewalld #查看状态 systemctl disable firewalld #禁用,禁止开机启动 systemctl stop firewalld #停止运行 配置firewalld-cmd 查看版本 firewall-cmd --version 查看帮助 firewall-cmd --help 显示状态 firewall-cmd --state 查看所有打开
剧终
2020/08/26
5650
CentOS7-firewall防火墙使用 原
红帽RHEL7系统已经用firewalld服务替代了iptables服务,新的防火墙管理命令firewall-cmd与图形化工具firewall-config。特点是拥有运行时配置与永久配置选项且能够支持动态更新以及”zone”的区域功能概念,使用图形化工具firewall-config或文本管理工具firewall-cmd,下面实验中会讲到~
拓荒者
2019/03/11
2.1K0
CentOS7-firewall防火墙使用
                                                                            原
Linux - firewall-cmd 命令添加端口规则不生效排查
如果 firewall-cmd 命令添加端口规则后没有生效,有几个可能的原因,你可以检查以下步骤:
小小工匠
2023/10/28
2.8K0
Linux - firewall-cmd 命令添加端口规则不生效排查
Centos7 防火墙 firewalld 实用操作
Centos7以上的发行版都试自带了firewalld防火墙的,firewalld去带了iptables防火墙。其原因是iptables的防火墙策略是交由内核层面的netfilter网络过滤器来处理的,而firewalld则是交由内核层面的nftables包过滤框架来处理。 相较于iptables防火墙而言,firewalld支持动态更新技术并加入了区域(zone)的概念。简单来说,区域就是firewalld预先准备了几套防火墙策略集合(策略模板),用户可以根据生产场景的不同而选择合适的策略集合,从而实现防火墙策略之间的快速切换。
晓晨
2018/10/25
1K0
Firewall-cmd 为 MariaDB 数据库防火墙进行配置
当你完成安装数据库后,通常会迫不及待的进行访问和连接。但是防火墙会给你很大的麻烦,如果你不进行正确的配置的话。不管使用什么工具,可能就是一直连不上。
HoneyMoose
2020/10/29
8030
Firewall-cmd 为 MariaDB 数据库防火墙进行配置
firewalld防火墙配置IP伪装和端口转发
IP地址伪装: 1、通过地址伪装,NAT设备将经过设备的包转发到指定的接收方,同时将通过的数据包 2、源地址更改为其NAT设备自己的接口地址。当返回的数据包到达时,会将目的地址修改 3、为原始主机的地址并做路由。地址伪装可以实现局域网多个地址共享单一公网地址上网。 4、类似于NAT技术中的端口多路复用(PAT)。IP地址伪装仅支持ipv4,不支持ipv6。
小手冰凉
2019/09/10
3.2K0
firewalld防火墙配置IP伪装和端口转发
CentOS 7安装Firewalld防火墙与常用命令
firewalld是Linux操作系统的防火墙管理工具。它通过充当Linux内核的netfilter框架的前端来提供防火墙功能,就像iptables一样。
星哥玩云
2022/08/13
2.8K0
CentOS 7安装Firewalld防火墙与常用命令
CentOS 防火墙常用命令
CentOS中7以下防火墙是 iptables,7是 firewalld,两者不尽相同,一开始以为 firewalld 比 iptables会更麻烦,其实 firewalld 比 iptables 方便多了,这里简单描述下配置。
小唐同学.
2022/02/23
1.5K0
linux防火墙(firewall)对端口和IP开放与限制
启动: systemctl start firewalld 关闭: systemctl stop firewalld 查看状态: systemctl status firewalld 开机禁用 : systemctl disable firewalld 开机启用 : systemctl enable firewalld 重新加载配置 firewall-cmd --reload 重启防火墙 service firewalld restart 查看已经开放的端口 firewall-cmd --list
友儿
2022/09/11
9.6K0
Linux firewalld防火墙学习总结
Firewalld是一种简单的、有状态的、基于区域(zone-based)的防火墙。策略和区域用于组织防火墙规则。网络在逻辑上被划分为多个区域,它们之间的流量可以通过策略进行管理。
授客
2024/11/21
1650
Linux firewalld防火墙学习总结
Ubuntu ufw/firewall 防火墙规则设置
Panic Options –panic-on Enable panic mode –panic-off Disable panic mode –query-panic Query whether panic mode is enabled
何其不顾四月天
2023/03/10
4.2K0
搞它!!!Linux--深入介绍firewalld防火墙管理工具
firewall-cmd是firewalld防火墙自带的字符管理工具,可以用来设置firewalld防火墙的各种规则
不吃小白菜
2020/09/03
2.2K0
搞它!!!Linux--深入介绍firewalld防火墙管理工具
Centos7-Firewall防火墙基础讲解
(1)firewalld简介: 它是Linux上新用的防火墙软件它跟iptables防火墙是差不多的工具但比其更好使用与设置;
全栈工程师修炼指南
2020/10/13
1.8K0
修复MySQL漏洞防火墙策略(CentOS7)
文 | 编程随想曲 首发 | 编程随想曲 1. 开启防火墙 service firewalld start 2. 查看3306端口是否开放 firewall-cmd --query-port=3306/tcp 3. 关闭3306端口 firewall-cmd --permanent --remove-port=3306/tcp firewall-cmd --reload 4. 设置特定IP可以访问3306端口 firewall-cmd --permanent --add-
编程随想曲
2022/04/21
7080
firewall-cmd防火墙
前言:启动CentOS/RHEL 7后,防火墙规则设置由firewalld服务进程默认管理。一个叫做firewall-cmd的命令行客户端支持和这个守护进程通信以永久修改防火墙规则。
王念博客
2019/07/24
9240
Centos7设置防火墙相关命令
命令含义: --zone #作用域 --add-port=80/tcp #添加端口,格式为:端口/通讯协议 --permanent #永久生效,没有此参数重启后失效
用户7162790
2022/03/23
2.7K0
CentOS下firewalld的简单使用
记一次 firewall-cmd 的简单使用。 1.firewalld的基本使用 启动: systemctl start firewalld 关闭: systemctl stop firewalld 查看状态: systemctl status firewalld 开机禁用 : systemctl disable firewalld 开机启用 : systemctl enable firewalld 2.systemctl是CentOS7的服务管理工具中主要的工具,它融合之前service和chkco
染指流年
2023/03/13
2800
fedora 28 , firewalld 防火墙控制,firewall-cmd 管理防火墙规则
今天,在使用fedora时,需要修改防火墙规则,一时间忘记了命令是什么,这里进行记录一下。 目前 fedora 28/ centos 7 使用 firewalld 作为防火墙软件;下面我就怎么简单管理防火墙规则进行记录,网上的例子很多,这里我列举我经常使用的命令,来进行备忘:
西湖醋鱼
2020/12/30
1.1K0
Centos7 防火墙 firewalld 实用操作
这里需要首先说明的是,在执行命令时,如果没有带 --permanent 参数表示配置立即生效,但是不会对该配置进行存储,相当于重启服务器就会丢失。如果带上则会将配置存储到配置文件,,但是这种仅仅是将配置存储到文件,却并不会实时生效,需要执行 firewall-cmd --reload 命令重载配置才会生效。
用户9105998
2021/10/29
8150
CentOS 7上防火墙 firewalld 的常用命令
在 CentOs 7 中 firewalld,iptables,ebtables 这三种防火墙是共存的。 但是默认情况下使用 firewalld 来管理 netfilter 子系统。
求和小熊猫
2020/11/25
7K0
相关推荐
CentOS7防火墙firewall操作命令
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档