本文以CentOS7系统为例来讲述firewalld防火墙常用命令以及基础策略,主要记录博主日常维护系统常用防火墙命令操作,网络安全需求日益增长,需要大家共同努力维护绿色安全。
1.启动、开机自启防火墙并查看其运行状态
systemctl enable --now firewalld && systemctl status firewalld
2.查看所有规则
# prots:所开放、暴漏的端口(包括ipv4、ipv6)
# rich rules:自定义防火墙规则,灵活运用,非常的实用(可限制ipv4、ipv6、源地址等)
firewall-cmd --list-all
3.永久添加、删除一个端口
# 添加
firewall-cmd --zone=public --add-port=3306/tcp --permanent && firewall-cmd --reload
# 删除
firewall-cmd --zone=public --remove-port=3306/tcp --permanent && firewall-cmd --reload
# 查看
firewall-cmd --zone=public --query-port=3306/tcp
4.查看所有已开端口
firewall-cmd --list-ports
5.ipv4、ipv6双协议区分限制
# ipv4
# 默认是public域
# 添加端口
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" port protocol="tcp" port="3306" accept'
firewall-cmd --reload
# 删除端口
firewall-cmd --permanent --remove-rich-rule='rule family="ipv4" port protocol="tcp" port="3306" accept'
firewall-cmd --reload
# ipv6
# 添加端口
firewall-cmd --permanent --add-rich-rule='rule family="ipv6" port protocol="tcp" port="3306" accept'
firewall-cmd --reload
# 删除端口
firewall-cmd --permanent --remove-rich-rule='rule family="ipv6" port protocol="tcp" port="3306" accept'
firewall-cmd --reload
# 查看已经设置的规则
firewall-cmd --zone=public --list-rich-rules
6.对ip段开放所有端口
# 添加
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="172.17.0.0/24" accept'
firewall-cmd --reload
# 删除
firewall-cmd --permanent --remove-rich-rule='rule family="ipv4" source address="172.17.0.0/24" accept'
firewall-cmd --reload
7.限制访问源、访问端口
# 限制具体ip
# 添加
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.21.4" port protocol="tcp" port="3005-3007" accept"
firewall-cmd --reload
# 删除
firewall-cmd --permanent --remove-rich-rule="rule family="ipv4" source address="192.168.21.4" port protocol="tcp" port="3005-3007" accept"
firewall-cmd --reload
# 限制ip段
# 添加
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="10.254.0.0/16" accept'
firewall-cmd --reload
# 删除
firewall-cmd --permanent --remove-rich-rule='rule family="ipv4" source address="10.254.0.0/16" accept'
firewall-cmd --reload
8.信任docker、tunl0和calico卡(k8s常用)
# 需要注意的是如果使用了多个域例如trusted、public,加规则时需要加声明参数,否则会有提示
# 例如:--zone=public
firewall-cmd --permanent --zone=trusted --change-interface=docker0
firewall-cmd --permanent --zone=trusted --change-interface=tunl0
firewall-cmd --permanent --zone=trusted --change-interface=calixxx
firewall-cmd --reload
# 查看信任网卡
firewall-cmd --zone=trusted --list-interfaces
9.清空所有规则
firewall-cmd --permanent --list-all | grep ports | head -n 1 | \
cut -d: -f2 | tr ' ' '\n' | xargs -I {} firewall-cmd --permanent --remove-port={}
firewall-cmd --reload