CentOS7-防火墻

firewalld(基礎(chǔ))

CentOS7 之后,使用 firewalld 代替了原來的 iptables

防火墻信息

firewall-cmd --list-all

防火墻狀態(tài)

二選其一

  1. systemctl status firewalld.service
  2. 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

重啟防火墻

二選一

  1. firewall-cmd --reload
  2. 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

作用

  1. 當(dāng)我們想把某個端口隱藏起來的時候,就可以在防火墻上阻止那個端口訪問,然后再開一個不規(guī)則的端口,之后配置防火墻的端口轉(zhuǎn)發(fā),將流量轉(zhuǎn)發(fā)過去。
  2. 端口轉(zhuǎn)發(fā)還可以做流量分發(fā),一個防火墻拖著好多臺運(yùn)行著不同服務(wù)的機(jī)器,然后用防火墻將不同端口的流量轉(zhuǎn)發(fā)至不同機(jī)器。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容