firewalld(基礎(chǔ))
CentOS7 之后,使用 firewalld 代替了原來的 iptables
防火墻信息
firewall-cmd --list-all
防火墻狀態(tài)
二選其一
- systemctl status firewalld.service
- firewall-cmd --state
查看開放的服務(wù)
firewall-cmd --list-services #一個服務(wù)對應(yīng)一個端口,每個服務(wù)對應(yīng)/usr/lib/firewalld/services 下面一個 xml 文件。
查看有效的服務(wù)列表
firewall-cmd --get-services
查看開放的端口
firewall-cmd --list-ports
開放端口
可以通過兩種方式控制端口的開放,一種是指定端口號另一種是指定服務(wù)名。雖然開放 http 服務(wù)就是開放了 80 端口,但是還是不能通過端口號來關(guān)閉,也就是說通過指定服務(wù)名開放的就要通過指定服務(wù)名關(guān)閉;通過指定端口號開放的就要通過指定端口號關(guān)閉。
- 指定端口號
- firewall-cmd --zone=public --add-port=80/tcp --permanent
- 命令含義
- zone #作用域
- add-prot=80/tcp #添加端口,格式為:端口/通訊協(xié)議
- permanent #永久生效,沒有此參數(shù)重啟后失效
- 指定服務(wù)名
- firewall-cmd --add-service=http --permanent//http 換成想要開放的 service
關(guān)閉端口
firewall-cmd --zone=public --remove-port=80/tcp --permanent #關(guān)閉開放的端口
查詢端口是否開放
firewall-cmd --zone=public --query-port=81/tcp
啟動防火墻
systemctl start firewalld
停止防火墻
systemctl disable firewalld
禁用防火墻
systemctl stop firewalld
重啟防火墻
二選一
- firewall-cmd --reload
- systemctl restart firewalld.service
禁止開機(jī)啟動
systemctl disable firewalld.service
開機(jī)啟動防火墻
systemctl enable firewalld.service
firewalld(進(jìn)階)
應(yīng)急模式
- firewall-cmd --query-panic # 查詢應(yīng)急模式
- firewall-cmd --panic-on # 啟用應(yīng)急模式阻斷所有網(wǎng)絡(luò)連接,以防出現(xiàn)緊急狀況
- firewall-cmd --panic-off # 禁用應(yīng)急模式
偽裝 IP
- firewall-cmd --query-masquerade # 檢查是否允許偽裝 IP
- firewall-cmd --add-masquerade # 允許防火墻偽裝 IP
- firewall-cmd --remove-masquerade# 禁止防火墻偽裝 IP
端口轉(zhuǎn)發(fā)
端口轉(zhuǎn)發(fā)可以將指定地址訪問指定的端口時,將流量轉(zhuǎn)發(fā)至指定地址的指定端口。轉(zhuǎn)發(fā)的目的如果不指定 ip 的話就默認(rèn)為本機(jī),如果指定了 ip 卻沒指定端口,則默認(rèn)使用來源端口。
- firewall-cmd --add-forward-port=port=80:proto=tcp:toport=8080 # 將 80 端口的流量轉(zhuǎn)發(fā)至本機(jī) 8080
- firewall-cmd --add-forward-port=proto=80:proto=tcp:toaddr=192.168.0.1 # 將 80 端口的流量轉(zhuǎn)發(fā)至 192.168.0.1
- firewall-cmd --add-forward-port=proto=80:proto=tcp:toaddr=192.168.0.1:toport=8080 # 將 80 端口的流量轉(zhuǎn)發(fā)至 192.168.0.1 的 8080 端口
問題
- 如果配置好端口轉(zhuǎn)發(fā)之后不能用,可以檢查下面兩個問題:
- 比如我將 80 端口轉(zhuǎn)發(fā)至 8080 端口,首先檢查本地的 80 端口和目標(biāo)的 8080 端口是否開放監(jiān)聽了
- 其次檢查是否允許偽裝 IP,沒允許的話要開啟偽裝 IP
作用
- 當(dāng)我們想把某個端口隱藏起來的時候,就可以在防火墻上阻止那個端口訪問,然后再開一個不規(guī)則的端口,之后配置防火墻的端口轉(zhuǎn)發(fā),將流量轉(zhuǎn)發(fā)過去。
- 端口轉(zhuǎn)發(fā)還可以做流量分發(fā),一個防火墻拖著好多臺運(yùn)行著不同服務(wù)的機(jī)器,然后用防火墻將不同端口的流量轉(zhuǎn)發(fā)至不同機(jī)器。