CentOS 7 firewall-cmd 防火墙常用命令
本文最后更新于:2025年8月22日 晚上
1、firewalld的基本使用
- 启动: systemctl start firewalld
- 查看状态: systemctl status firewalld
- 停止: systemctl disable firewalld
- 禁用: systemctl stop firewalld
2.systemctl是CentOS7的服务管理工具中主要的工具,它融合之前service和chkconfig的功能于一体。
- 启动一个服务:systemctl start firewalld.service
- 关闭一个服务:systemctl stop firewalld.service
- 重启一个服务:systemctl restart firewalld.service
- 显示一个服务的状态:systemctl status firewalld.service
- 在开机时启用一个服务:systemctl enable firewalld.service
- 在开机时禁用一个服务:systemctl disable firewalld.service
- 查看服务是否开机启动:systemctl is-enabled firewalld.service
- 查看已启动的服务列表:systemctl list-unit-files|grep enabled
- 查看启动失败的服务列表:systemctl –failed
3.配置firewalld-cmd
- 查看版本: firewall-cmd –version
- 查看帮助: firewall-cmd –help
- 显示状态: firewall-cmd –state
- 查看所有打开的端口: firewall-cmd –zone=public –list-ports
- 更新防火墙规则: firewall-cmd –reload
- 查看区域信息: firewall-cmd –get-active-zones
- 查看指定接口所属区域: firewall-cmd –get-zone-of-interface=eth0
- 拒绝所有包:firewall-cmd –panic-on
- 取消拒绝状态: firewall-cmd –panic-off
- 查看是否拒绝: firewall-cmd –query-panic
那怎么开启一个端口呢
添加
#(–permanent永久生效,没有此参数重启后失效)
firewall-cmd –zone=public –add-port=80/tcp –permanent #tcp
firewall-cmd –zone=public –add-port=80/udp –permanent #udp
firewall-cmd –zone=public –add-port=80-443/udp –permanent #区间添加重新载入
firewall-cmd –reload
查看
firewall-cmd –zone= public –query-port=80/tcp
删除
firewall-cmd –zone= public –remove-port=80/tcp –permanent
将接口添加到区域,默认接口都在public,永久生效再加上
--permanent
然后reload防火墙firewall-cmd –zone=public –add-interface=eth0
打开一个服务,类似于将端口可视化,服务需要在配置文件中添加,/etc/firewalld 目录下有services文件夹,这个不详细说了,详情参考文档
firewall-cmd –zone=work –add-service=smtp
移除服务
firewall-cmd –zone=work –remove-service=smtp
一、管理端口
列出 dmz 级别的被允许的进入端口
1 |
|
允许 tcp 端口 8080 至 dmz 级别
1 |
|
允许某范围的 udp 端口至 public 级别,并永久生效
1 |
|
二、 网卡接口
列出 public zone 所有网卡
1 |
|
将 eth0 添加至 public zone,永久
1 |
|
eth0 存在与 public zone,将该网卡添加至 work zone,并将之从 public zone 中删除
1 |
|
删除 public zone 中的 eth0,永久
1 |
|
三、 管理服务
添加 smtp 服务至 work zone
1 |
|
移除 work zone 中的 smtp 服务
1 |
|
四、 配置 external zone 中的 ip 地址伪装
查看
1 |
|
打开伪装
1 |
|
关闭伪装
1 |
|
五、 配置 public zone 的端口转发
要打开端口转发,则需要先
1 |
|
然后转发 tcp 22 端口至 3753
1 |
|
转发 22 端口数据至另一个 ip 的相同端口上
1 |
|
转发 22 端口数据至另一 ip 的 2055 端口上
1 |
|
六 、配置 public zone 的 icmp
查看所有支持的 icmp 类型
1 |
|
列出
1 |
|
添加 echo-request 屏蔽
1 |
|
移除 echo-reply 屏蔽
1 |
|
七、 IP 封禁 (这个是我们平时用得最多的)
1 |
|
这个是我们用得最多的。封一个IP,和一个端口 reject 拒绝 accept 允许
当然,我们仍然可以通过 ipset 来封禁 ip
封禁 ip
1 |
|
封禁网段
1 |
|
倒入 ipset 规则
1 |
|
然后封禁 blacklist
1 |
|
七、IP封禁和端口
1 |
|
只对192.168.1.2这个IP只能允许80端口访问 (拒绝访问只需把 accept 换成 reject
、删除该规则把 –add-rich-rule 改成 –remove-rich-rule即可)
1 |
|
只对192.168.1.2这个IP段只能允许80端口访问(拒绝访问只需把 accept 换成 reject
、删除该规则把 –add-rich-rule 改成 –remove-rich-rule即可)
八、双网卡内网网卡不受防火墙限制
1 |
|
公网网卡–zone=public默认区域
1 |
|
内网网卡–zone=trusted是受信任区域 可接受所有的网络连接
九、重新载入以生效
1 |
|
本文参考链接: