服務器之家:專注于服務器技術及軟件下載分享
分類導航

Linux|Centos|Ubuntu|系統進程|Fedora|注冊表|Bios|Solaris|Windows7|Windows10|Windows11|windows server|

服務器之家 - 服務器系統 - Linux - Linux下雙網卡Firewalld的配置流程(推薦)

Linux下雙網卡Firewalld的配置流程(推薦)

2022-03-08 17:39HappenLee Linux

firewalld提供了一個 動態管理的防火墻,用以支持不同網絡區域的規則,分配對一個網絡及其相關鏈接和界面一定程度的信任。這篇文章給大家介紹了Linux下雙網卡Firewalld的配置流程,需要的朋友參考下吧

實驗室擬態存儲的項目需要通過lvs-nat模式通過lvs服務器來區隔內外網的服務,所以安全防護的重心則落在了lvs服務器之上。筆者最終選擇通過firewalld放行端口的方式來實現需求,由于firewall與傳統linux使用的iptable工具有不小的區別,接下來通過博客來記錄一下firewalld的配置流程。

1.firewall服務的簡介:

firewalld提供了一個 動態管理的防火墻,用以支持不同網絡區域的規則,分配對一個網絡及其相關鏈接和界面一定程度的信任。它具備對 ipv4 和 ipv6 防火墻設置的支持。它支持以太網橋,并有分離運行時間和永久性配置選擇。它還具備一個通向服務或者應用程序以直接增加防火墻規則的接口。

上述內容是來自rethat官方文檔的說明,看起來不知所云。所以筆者在這里簡單介紹一下firewalld的定位與傳統的iptable存在什么樣的不同:

  • 動態防火墻

firewalld 提供的是動態的防火墻服務。配置的改變可以隨時隨地立刻執行,不再需要保存或者執行這些改變。而iptable的部分,每一個單獨更改意味著要清除所有舊有的規則和從 里讀取所有新的規則,相對來說firewalld的方式會更加靈活。

  • 區域隔離

firewalld 提供了區域隔離的服務,也就是說類似于window之中的公共網絡與內部網絡的區別,可以通過不同的區域的配置對應的規則來實現不同的網絡規則服務。通過區域規則的方式,可以讓防火墻的工作更加的靈活。

如圖所示,firewalld的防火墻本質上是建立在原生的iptable防火墻之上的抽象層,通過定制規則的方式來利用iptable的功能,所以兩個防火墻是上下級并行工作的關系,最終都需要落地到內核之中的netfilter來實現網絡包的過濾,來簡化防火墻的工作流程。(傳統iptable的“四表五鏈”實在是有夠復雜~~囧rz)


Linux下雙網卡Firewalld的配置流程(推薦)

2.系統環境:

如下圖所示,這里需要在lvs的服務器需要部署firewall的防火墻,這里筆者僅簡要梳理一下一臺lvs服務器的工作:


Linux下雙網卡Firewalld的配置流程(推薦)

系統平臺:centos 7

lvs服務器: 雙網卡

  • 外網地址:219.223.199.154
  • 內網地址:192.168.1.17

對外服務器:

  • 服務器a:192.168.1.11
  • 服務器b:192.168.1.14

在這里,外網地址之上需要開放的端口為10086端口,通過該端口進行轉發。而內網地址之上并不設置限制,我們認為是安全的網絡環境。

3.配置流程:

firewalld的配置可通過三種方式:

  • firewall-config

一個圖形化的用戶接口的配置工具

  • firewall-cmd

一個命令行的用戶接口的配置工具

  • 靜態xml文件配置

firewalld 的配置設定存儲在/etc/firewalld/ 目錄下的 xml 文件里??梢酝ㄟ^查看和編輯這些 xml 文件,來實現firewall的配置。

之后筆者的配置流程主要是基于firewall-cmd命令展開,首先啟動firewall服務:

?
1
systemctl start firewalld.service //啟動firewalld服務

接下來,開放外網網卡的對應的tcp端口,這里筆者選擇public區域,也就是雙網卡同時開放端口。

?
1
firewall-cmd --zone=public --add-port=10086/tcp --permanent

該命令的配置了public區域添加10086的端口,后續的參數--permannet則代表永久添加。也就是一次寫入,后續重啟之后依然生效。在firewall之中支持如下不同的區域區隔與過濾規則,之后不同的配置可以參考下面的內容:

區域

?
1
2
3
4
5
6
7
8
9
drop: 丟棄所有進入的包,而不給出任何響應
block: 拒絕所有外部發起的連接,允許內部發起的連接
public: 允許指定的進入連接
external: 同上,對偽裝的進入連接,一般用于路由轉發
dmz: 允許受限制的進入連接
work: 允許受信任的計算機被限制的進入連接,類似 workgroup
home: 同上,類似 homegroup
internal: 同上,范圍針對所有互聯網用戶
trusted: 信任所有連接

過濾規則

?
1
2
3
4
5
6
7
8
source: 根據源地址過濾
interface: 根據網卡過濾
service: 根據服務名過濾
port: 根據端口過濾
icmp-block: icmp 報文過濾,按照 icmp 類型配置
masquerade: ip 地址偽裝
forward-port: 端口轉發
rule: 自定義規則

之后通過lvs配置好下圖是通過ipvsadm配置好的轉發機制:
Linux下雙網卡Firewalld的配置流程(推薦)

通過外網嘗試連接外網的ip地址,219.223.199.154:10086,發現并無法聯通后端服務器的服務,也就是運行在192.168.1.11與192.168.1.14的服務器。

調用ipvsadm -lcn命令之后,發現內網的轉發出現了問題:

Linux下雙網卡Firewalld的配置流程(推薦)

通過抓包發現lvs服務器在內網網卡192.168.1.17上的通信包被攔截,于是繼續通過firewalld-cmd命令開發內網網卡的端口,將內網網卡加入trusted區域:

?
1
firewall-cmd --zone=trusted --add-interface=enp3s0

接下來可以看到開放了對應內網網卡到trusted,trusted區域允許所有通信包放行,因為內網是相對安全的環境,所以并不存在很大的影響,調用:

?
1
firewall-cmd --list-all-zones

命令展示firewall的配置結果,public與trusted區域都出于active狀態,外網服務能夠正常連接內網的端口服務了。

Linux下雙網卡Firewalld的配置流程(推薦)

可以看到上述public的設置之中涉及到了對應的ssh服務于dhcpv6-client的服務,在firewalld之中是可以直接通過服務來放行對應的內容,也就是上文參數service,詳細的配置參數需要在目錄/usr/lib/firewalld/services之中進行配置,我們嘗試打開上文ssh服務的內容:


Linux下雙網卡Firewalld的配置流程(推薦)

由上文的配置內容可見:所謂的服務配置防火墻,本身也是通過標注協議與端口的方式進行的,只不過是用服務的邏輯進行包裝了。至于使用哪種形式,各位見仁見智了。

小結

梳理了一下在lvs下雙網卡firewalld的配置流程。debian系列的發行版也是大同小異,只不過firewalld工具需要自行使用apt-get進行安裝。上述內容若有疏漏,望各位指點斧正。

原文鏈接:https://www.cnblogs.com/happenlee/archive/2018/04/24/8928843.html

延伸 · 閱讀

精彩推薦
欧美日韩色另类综合|亚洲中文字幕无码一区|99国产真实露脸精彩对白|d专干日本老太婆|欧美狂野可乐视频在线观看