firewalld常用基本命令

# 开放8080端口
firewall-cmd --permanent --add-port=8080/tcp
# 移除8080端口
firewall-cmd --permanent --remove-port=8080/tcp
#查看开放端口
firewall-cmd --zone=public --list-ports

firewalld白名单模式

本次示例,是先设置trusted域的规则,然后将默认区域从public切换到drop。

# 给trusted域,添加IP白名单,单个ip或者ip段
firewall-cmd --permanent --zone=trusted --add-source=123.123.56.0/24
firewall-cmd --permanent --zone=trusted --add-source=123.123.56.56
firewall-cmd --reload
# 确认是否设置正确
firewall-cmd --zone=trusted --list-all
# 切换默认区域从 public 到 drop
firewall-cmd --set-default-zone=drop
# 将默认网卡 eth0 分配给 drop 区域
firewall-cmd --permanent --zone=drop --change-interface=eth0
# 使白名单生效
firewall-cmd --reload

# 查看trusted域的规则
firewall-cmd --list-all --zone=trusted
# trusted域,从白名单删除ip
firewall-cmd --permanent --remove-source=123.123.56.56 --zone=trusted

firewalld设置端口只允许白名单ip访问

# 切换到trusted域
firewall-cmd --set-default-zone=trusted

新建一个zone,起名newzone,将想要访问本机22端口的ip,如:123.123.123.123等,添加的这个zone中,同时在这个zone中放行22端口:

firewall-cmd --permanent --new-zone=newzone
firewall-cmd --permanent --zone=newzone --add-source=123.123.123.123
firewall-cmd --permanent --zone=newzone --add-source=123.123.56.56
firewall-cmd --permanent --zone=newzone --add-port=22/tcp

除123.123.123.123、123.123.56.56这个俩ip,其他ip地址访问本机时会使用当前默认的trusted这个zone里的规则,即禁止访问本机的22端口:

firewall-cmd --permanent --zone=trusted --add-rich-rule="rule family="ipv4" port protocol="tcp" port="22" drop"

重启firewalld:

systemctl restart firewalld

查看firewalld配置规则是否生效:

firewall-cmd --list-all-zone
firewall-cmd --list-all