CentOS7安装firewall防火墙
CentOS7之后 , 系统已经推荐了firewall防火墙 , 而不是iptables
主要 : firewall 和 iptables冲突 , 需要禁用其中一个.
#停止iptables服务 systemctl stop iptables #禁用iptables服务 systemctl mask iptables
开启firewall服务
#重启firewalld服务(注意有个d) systemctl restart firewalld #设置开机自启动(注意有个d) systemctl enable firewalld
通用设置脚本
#设置脚本 firewall-cmd --permanent --zone=public --add-service=ftp firewall-cmd --permanent --zone=public --add-port=21/tcp firewall-cmd --permanent --zone=public --add-port=80/tcp firewall-cmd --permanent --zone=public --add-port=8080/tcp
firewall-cmd --reload
# 也可批量设置连续端口 firewall-cmd --permanent --zone=public --add-port=8210-8215/tcp # 删除用 --remove-port , 支持连续端口配置的删除 firewall-cmd --permanent --zone=public --remove-port=80/tcp firewall-cmd --permanent --zone=public --remove-port=8210-8215/tcp
命令说明 :
--permanent 永久生效 / 否则重启失效
--zone 作用域 一般都是public , 可以使用firewall-cmd --list-all-zones命令查看当前使用的域
--add-service 添加服务
--add-port 添加端口, 格式为 端口号/端口协议
查看端口开放情况
#查看某个端口 firewall-cmd --zone=public --query-port=80/tcp #查看所有端口开放情况 firewall-cmd --zone=public --list-ports
端口转发路由 :
# 将80端口的流量转发至8080 firewall-cmd --add-forward-port=port=80:proto=tcp:toport=8080 # 将80端口的流量转发至192.168.0.1 firewall-cmd --add-forward-port=proto=80:proto=tcp:toaddr=192.168.1.0.1 # 将80端口的流量转发至192.168.0.1的8080端口 firewall-cmd --add-forward-port=proto=80:proto=tcp:toaddr=192.168.0.1:toport=8080
扩展命令 :
# 检查是否允许伪装IP firewall-cmd --query-masquerade # 允许防火墙伪装IP firewall-cmd --add-masquerade # 禁止防火墙伪装IP firewall-cmd --remove-masquerade
#设置特定ip访问特定服务 firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.0.4/24" service name="http" accept'
删除命令为 : --remove-rich-rule