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
命令說明 :
--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
