按服务名放行的好处
firewalld 自带一批服务定义,把端口与协议打包成可读的名字,例如 ssh、http、https、samba。按服务名放行比逐个堆端口更清晰,也便于审计与交接。没有预置定义的应用可以复用一个服务 XML 文件,改成自己的端口后当成本地服务使用。
基本信息
| 适用平台 | RPM 系发行版,firewalld 服务 |
|---|---|
| 查看已放行 | firewall-cmd --list-services |
| 浏览预置 | firewall-cmd --get-services |
| 放行服务 | firewall-cmd --add-service=http --permanent |
| 自定义文件 | /etc/firewalld/services/*.xml |
典型使用场景
- 放行标准 Web 服务与数据库访问
- 批量开放同一组端口,避免逐条维护
- 把内部应用的端口集合固化成自定义服务
- 下线不再需要的服务,如 telnet
- 审计时用服务名说明放行目的
服务放行与查看
服务放行与查看
firewall-cmd --list-services # 查看当前放行的服务
firewall-cmd --get-services | tr ' ' '\n' | grep -E 'http|ssh' # 浏览预置服务名
firewall-cmd --add-service=http --permanent
firewall-cmd --add-service=https --permanent
firewall-cmd --remove-service=telnet --permanent
firewall-cmd --reload # 让永久规则立即生效
firewall-cmd --query-service=http # 单条确认自定义服务文件
自定义服务文件
cp /usr/lib/firewalld/services/http.xml /etc/firewalld/services/myapp.xml
# 编辑 myapp.xml 里的 port 与 protocol 字段,改成自己的端口
firewall-cmd --reload
firewall-cmd --add-service=myapp --permanent && firewall-cmd --reload
firewall-cmd --list-services | tr ' ' '\n' | grep myapp服务与端口怎么选
| 场景 | 推荐方式 | 理由 |
|---|---|---|
| 标准服务 | 预置服务名 | 可读性好,审计清晰 |
| 多个固定端口 | 自定义服务文件 | 统一维护,减少条目 |
| 临时联调 | 直接放行端口 | 用完即删,改动最小 |
| 端口段 | 端口段语法 | 适合连续端口范围 |
| 需要来源限制 | 富规则叠加 | 可指定网段与协议 |
常用预置服务名
- ssh:远程登录入口
- http 与 https:Web 服务
- mysql:数据库默认端口集合
- samba:Windows 文件共享
- ntp:时间同步
自定义服务文件的权限与属主需要与预置文件一致,改动后必须 reload 才能被识别;服务名拼错时命令不会给出可选列表,先 get-services 核对。
常用服务名含义
- ssh:远程登录入口
- http 与 https:网站访问
- mysql:数据库常用端口集合
- samba:Windows 文件共享
- nfs:网络文件系统