基本使用
启动:systemctl start firewalld
关闭:systemctl stop firewalld
查看状态:systemctl status firewalld
开机禁用:systemctl disable firewalld
开机启用:systemctl enable firewalld
配置firewalld-cmd
查看版本:firewall-cmd --version
查看帮助:firewall-cmd --help
显示状态:firewall-cmd --state
查看所有打开的端口:firewall-cmd --zone=public --list-ports
更新防火墙规则:firewall-cmd --reload
端口开放
添加:firewall-cmd --zone=public --add-port=80/tcp --permanent
重新载入:firewall-cmd --reload
删除:firewall-cmd --zone= public --remove-port=80/tcp --permanent
端口转发
添加(例如80-> 8080):
#端口转发
#开启系统路由模式功能
echo net.ipv4.ip_forward=1>>/etc/sysctl.conf
#运行这个命令会输出上面添加的那一行信息,意思是使内核修改生效
sysctl -p
#开启80端口的tcp请求
firewall-cmd --zone=public --add-port=80/tcp --permanent
#必须要设置IP地址伪装
firewall-cmd --add-masquerade --permanent
#设置端口映射
firewall-cmd --add-forward-port=port=80:proto=tcp:toaddr=192.168.6.10:toport=8080--permanent
删除:
firewall-cmd --permanent --remove-forward-port=port=3306:proto=tcp:toport=3336:toaddr=
查看转发的端口:
firewall-cmd --list-forward-ports
查看当前开了哪些端口
其实一个服务对应一个端口,每个服务对应/usr/lib/firewalld/services下面一个xml文件。
firewall-cmd –list-services
查看还有哪些服务可以打开
firewall-cmd –get-services
查看所有打开的端口:
firewall-cmd –zone=public –list-ports
更新防火墙规则:
firewall-cmd –reload
添加多个端口
firewall-cmd --permanent --zone=public --add-port=8080-8083/tcp
删除某个端口
firewall-cmd --permanent --zone=public --remove-port=81/tcp
针对某个 IP开放端口
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.6.10" port protocol="tcp" port="6379" accept"
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.6.10" accept"
删除某个IP
firewall-cmd --permanent --remove-rich-rule="rule family="ipv4" source address="192.168.6.10" accept"
针对一个ip段访问
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.6.0/16" accept"
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.8.0/24" port protocol="tcp" port="9200" accept"
添加操作后别忘了执行重载
firewall-cmd --reload
zone相关:
firewall-cmd --get-zones #显示支持的区域列表
firewall-cmd --get-active-zones #查看当前的区域
firewall-cmd --get-default-zone #查看默认区域
firewall-cmd --set-default-zone=home #设置默认区域为
home firewall-cmd --zone=public --list-interfaces #显示显示公共区域(public)所有接口
firewall-cmd --zone=public --list-all #显示公共区域(public)所有设置
firewall-cmd --get-zone-of-interface=ens33 #查看指定接口 ens33 所属区域
firewall-cmd --zone=internal --change-interface=ens33 #临时修改网络接口 ens33 为内部区域(internal),永久修改加上 --permanent 参数
firewall-cmd --zone=public --add-interface=ens37 #为公共区域(public)增加一个接口 ens37
service相关:
firewall-cmd --get-service #显示服务列表
firewall-cmd --list-service #显示当前服务
firewall-cmd --enable service=ssh #允许SSH服务通过
firewall-cmd --disable service=ssh #禁止SSH服务通过
firewall-cmd --enable service=samba --timeout=600 #临时允许 samba 服务通过 600 秒
firewall-cmd --permanent --zone=internal --add-service=http #添加 http 服务到内部区域(internal)
firewall-cmd --zone=work --add-service=smtp #把 smtp 服务加入工作区域(work)
firewall-cmd --zone=work --remove-service=smtp #从工作区域(work)移除 smtp 服务