firewalld 基本操作
安装firewalld
# yum install firewalld firewall-config
firewalld启动,停止,开机启动与否,查看状态
# systemctl start firewalld.service 启动
# systemctl enable firewalld.service 开机自启
# systemctl stop firewalld.service 停止
# systemctl disable firewalld.service 开机禁止启动
# systemctl status firewalld.service 查看状态
firewall-cmd命令
基本命令
# firewall-cmd --version 查看版本
# firewall-cmd --help 查看帮助
# firewall-cmd --state 显示状态
# firewall-cmd --panic-on 拒绝所有包
# firewall-cmd --panic-off 取消拒绝状态
# firewall-cmd --query-panic 查看是否拒绝
# firewall-cmd --reload 重新加载防火墙,并不中断用户连接(firewalld特性之一动态添加规则)
# firewall-cmd --complete-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 服务
跟port相关的
# firewall-cmd --zone=internal --add-port=443/tcp 在内部区域(internal)打开 443/tcp 端口
# firewall-cmd --zone=external --add-forward-port=port=22:proto=tcp:toport=52222:toaddr=192.168.1.20
把外部区域(external)的 22 端口转发到 192.168.1.20 的 52222 端口
跟地址伪装相关的
# firewall-cmd --zone=external --query-masquerade 查询外部区域(external)是否能伪装ip,结果为yes
# firewall-cmd --zone=external --add-masquerade 外部区域(external)启用IP伪装(masquerade)
# firewall-cmd --zone=external --remove-masquerade 外部区域(external)禁用用IP伪装