以前用習慣了centos6,設置防火牆的時候都是用iptables,
最近在用centos7,發現防火牆默認使用firewall,然後一臉懵逼,
後來蒐集了一些資料,大致操作如下:
1、如果你機器上沒有安裝firewall的話,我們可以採用yum的方式安裝
yum install firewalld
2、開啓服務
systemctl start firewalld.service
3、關閉防火牆
systemctl stop firewalld.service
4、開啓自動啓動
systemctl enable firewalld.service
5、關閉開機制動啓動
systemctl disable firewalld.service
6、查看狀態
systemctl status firewalld
7、使用firewall-cmd 命令
查看狀態
firewall-cmd --state
獲取活動的區域
firewall-cmd --get-active-zones
獲取所有支持的服務
firewall-cmd --get-service
獲取永久選項所支持的服務 就是重啓後也支出的
firewall-cmd --get-service --permanent
開啓應急模式阻斷所有網絡連接
firewall-cmd --panic-on
關閉應急模式
firewall-cmd --panic-off
查看應急模式的狀態
firewall-cmd --query-panic
在不改變狀態的條件下重新加載防火牆
firewall-cmd --reload
修改配置文件後 使用命令重新加載
firewall-cmd --reload
啓用某個服務
firewall-cmd --zone=public --add-service=https //臨時
firewall-cmd --permanent --zone=public --add-service=https //永久
開啓某個端口
firewall-cmd --permanent --zone=public --add-port=8080-8081/tcp //永久
firewall-cmd --zone=public --add-port=8080-8081/tcp //臨時
查看開啓的端口和服務
firewall-cmd --permanent --zone=public --list-services //服務空格隔開
firewall-cmd --permanent --zone=public --list-ports //端口空格隔開
設置某個ip 訪問某個服務
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.0.4/24" service name="http" accept"
刪除上面設置的規則
firewall-cmd --permanent --zone=public --remove-rich-rule="rule family="ipv4" source address="192.168.0.4/24" service name="http" accept"
端口轉發先開啓允許僞裝IP
firewall-cmd --query-masquerade # 檢查是否允許僞裝IP
firewall-cmd --add-masquerade # 允許防火牆僞裝IP
firewall-cmd --remove-masquerade# 禁止防火牆僞裝IP
設置轉發
轉發 tcp 22 端口至 3753
firewall-cmd --zone=public --add-forward-port=port=22:proto=tcp:toport=3753
轉發 22 端口數據至另一個 ip 的相同端口上
firewall-cmd --zone=public --add-forward-port=port=22:proto=tcp:toaddr=192.168.1.100
轉發 22 端口數據至另一 ip 的 2055 端口上firewall-cmd --zone=public --add-forward-port=port=22:proto=tcp:toport=2055:toaddr=192.168.1.100