linux運維開發(四)---------- firewalld服務詳解

防火牆初識

防火牆是整個系統安全性最重要的方面,能夠有效的防止網絡攻擊。所以我們需要詳細瞭解防火牆的知識。從centos 7開始,使用了firewalld替代了centos 6中的iptables。之前在linux運維開發(一)----------防火牆使用過以下命令:

firewall-cmd --zone=public -add-port=9999/tcp --permanent
firewalld-cmd --reload
firewall-cmd --zone=public --list-ports | grep 9999

接下來我們就來好好講解這個命令的作用

通過了解以上命令,我們發現有一個–zone=public的參數設置,這是什麼意思呢?講到這裏,我們就需要了解一個概念:區域。定義如下:

區域是預定義的規則集,用於根據計算機連接到的網絡上的信任級別指定應允許的流量。您可以將網絡接口和源分配給區域。

Bellow是FirewallD提供的區域,根據區域的信任級別從不信任到可信:

  • drop:刪除所有傳入連接而不發出任何通知。僅允許傳出連接。
  • block:所有傳入連接都被拒絕,其中包含用於IPv4的icmp-host-prohibited消息和用於IPv6n的icmp6-adm-prohibited。僅允許傳出連接。
  • public:用於不受信任的公共場所。您不信任網絡上的其他計算機,但您可以允許選定的傳入連接。
  • external:用於在系統充當網關或路由器時啓用NAT僞裝的外部網絡。僅允許選定的傳入連接。
  • internal:用於在系統充當網關或路由器時在內部網絡上使用。網絡上的其他系統通常是可信的。僅允許選定的傳入連接。
  • dmz:用於位於非軍事區的計算機,該計算機對網絡其餘部分的訪問權限有限。僅允許選定的傳入連接。
  • work:用於工作機器。網絡上的其他計算機通常是可信的。僅允許選定的傳入連接。
  • home:用於家用機器。網絡上的其他計算機通常是可信的。僅允許選定的傳入連接。
  • trusted:接受所有網絡連接。信任網絡中的所有計算機。

打開/關閉防火牆

systemctl start firewalld
systemctl stop firewalld

啓用/禁用防火牆

systemctl enable firewalld
systemctl disable firewalld

防火牆區域的查看

查看可用區域:

firewall-cmd --get-zones

查看默認區域:

firewall-cmd --get-default-zone

查看被激活的的區域:

firewall-cmd --get-active-zones

查看指定區域信息

查看端口信息:

firewall-cmd --zone=public --list-ports

查看服務信息:

firewall-cmd --zone=public --list-services

查看協議信息:

firewall-cmd --zone=public --list-protocols

查看網絡接口信息:

firewall-cmd --zone=public --list-interfaces

查看所有信息:

firewall-cmd --zone=public --list-all

規則永久化

在進行修改操作後面使用 --permanment使命令永久化,–add-xxx、remove-xxx等命令

規則生效方式

–reload:重新載入配置信息,保持狀態信息

firewall-cmd --reload

–complete-reload:重新載入配置信息,會喪失狀態信息,相當於重啓

firewall-cmd --complete-reload

添加規則

添加端口:

firewall-cmd --zone=public --add-port=80/tcp --permanent

添加服務:

firewall-cmd --zone=public --add-service=mysql --permanent

添加協議:

firewall-cmd --zone=public -add=protocol=tcp --permanent

添加網絡接口(將會使ens33接口處於work區域):

firewall-cmd --zone=work --add-interface=ens33 --permanent

等同

firewall-cmd --zone=work --change-interface=ens33 --permanent

刪除規則

刪除端口:

firewall-cmd --zone=public --remove-port=8080/tcp --permanent

刪除服務:

firewall-cmd --zone=public --remove-service=mysql --permanent

刪除協議:

firewall-cmd --zone=public --remove-protocol=tcp --permanent

刪除接口:

firewall-cmd --zone=public --remove-interface=ens33 --permanent

驗證規則綁定

查詢端口信息:

firewall-cmd --zone=public --query-port=80/tcp

查詢服務信息:

firewall-cmd --zone=public --query-service=mysql

查詢協議信息:

firewall-cmd --zone=public --query-protocol=tcp

查詢接口信息:

firewall-cmd --zone=public --query-interface=ens33

端口轉發流量

1、爲所需區域開啓僞裝:

firewall-cmd --zone=external --add-masquerade --permanent

2、驗證是否開啓僞裝:

firewall-cmd --zone=external --query-masquerade --permanent

3、轉發流量:

  • 將流量從端口80轉發到同一服務器上的端口8080

firewall-cmd --zone=external --add-forward-port-80:proto=tcp:toport=8080 --permanent

  • 流量從端口80轉發到IP 192.168.1.2的服務器上的端口80:

firewall-cmd --zone=external --add-forward-port=80:proto=tcp:toaddr=192.1681.2 --permanent

  • 流量從端口80轉發到IP 192.168.1.2的服務器上的端口8080:

firewall-cmd --zone=external -add-forward-port=80:proto=tcp:toport=8080:toaddr=192.168.1.2 --permanent

4、爲指定區域去除僞裝:

firewall-cmd --zone=external --remove-masquerade --permanent

查看所有區域的所有信息:

firewall-cmd --list-all-zones

更多問題可以加公衆號:代碼小棧,期待爲您解決更多問題

代碼小棧

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章