在大多数现代Linux发行版(如CentOS 7+和Fedora 18+)中,Firewalld通常预装在系统中。firewalld基础操作如下:
1.安装firewalld服务
sudo yum install firewalld
2.firewalld服务 版本信息
sudo firewall-cmd --version
3.查询firewalld服务状态
sudo systemctl status firewalld
Active: inactive (dead) 已经停止
Active: active (running) 正在运行
3.启动firewalld服务
sudo systemctl start firewalld
4.关闭firewalld服务
sudo systemctl stop firewalld
5.设置firewalld开机自启
sudo systemctl enable firewalld
6.设置firewalld取消开机自启
sudo systemctl disable firewalld
7.列出所有规则
sudo firewall-cmd --list-all
public (active): 表示公共区域的防火墙配置处于活动状态。
target: default: 确定了默认的防火墙目标。
icmp-block-inversion: no: 表示没有启用 ICMP 阻塞的反转。
interfaces: eth0: 列出了防火墙正在监控和保护的网络接口。
sources: : 这里列出了允许通过防火墙的流量来源。
services: dhcpv6-client ssh cockpit: 列出了已经在防火墙中允许通过的服务,包括 DHCPv6 客户端、SSH 和 Cockpit。
ports: : 如果有特定的端口允许通过防火墙,将会在这里列出。
protocols: : 列出了防火墙允许通过的特定协议。
forward: no: 表示未启用转发。
masquerade: no: 表示未启用伪装。
forward-ports: : 这里列出了已经配置的端口转发规则。
source-ports: : 列出了允许通过的源端口。
icmp-blocks: : 如果有出被阻止的 ICMP 类型,将会在这里显示。
rich rules: : 这里可以包含更为复杂和精细的防火墙规则设置。
8.重新加载配置
sudo firewall-cmd --reload
9.永久增加999端口访问
firewall-cmd --permanent --add-port=999/tcp
firewall-cmd --reload
firewall-cmd --query-port=999/tcp
10.临时增加999端口访问
firewall-cmd --add-port=999/tcp
firewall-cmd --reload
firewall-cmd --query-port=999/tcp
11.永久删除999端口访问
firewall-cmd --permanent --remove-port=999/tcp
firewall-cmd --reload
firewall-cmd --query-port=999/tcp
12.临时删除999端口访问
firewall-cmd --remove-port=999/tcp
firewall-cmd --reload
firewall-cmd --query-port=999/tcp
13.查询所有开放的端口
firewall-cmd --list-ports
14.增加22端口访问示例
firewall-cmd --zone=public --add-port=22/tcp --permanent
firewall-cmd --reload
15.对特定ip开放特定的端口:
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.151·.22" port protocol="tcp" port="3309" accept'
firewall-cmd --reload