windows/Linux 防火牆安裝配置規則

Aidy發表於2024-03-26

現階段常見的防火牆屬於具有安全作業系統的防火牆,例如:NETEYE、NETSVREEN、TALENTIT等。
防火牆的基本型別
一、 網路層防火牆←網路層防火牆可視為一種 IP 封包過濾器,運作在底層的 TCP/IP 協議堆疊上。可以以列舉的方式只允許符合特定規則的封包透過,其餘的一概禁止穿越防火牆(病毒除外,防火牆不能防止病毒侵入)。這些規則通常可以經由管理員定義或修改,不過某些防火牆裝置可能只能套用內建的規則。


二、 應用層防火牆
應用層防火牆是在 TCP/IP 堆疊的“應用運作,您使用瀏覽器時所產生的資料流或是使用FTP 時的資料流都是屬於這一層。應用層防火牆可以攔截進出某應用程式的所有封包,並且封鎖其他的封包(通常是直接將封包丟棄)。理論上,這一類的防火可以完全阻絕外部的資料流進到受保護的機器裡。


三、資料庫防火牆
資料庫防火牆是一款基於資料庫協議分析與控制技術的資料庫安全防護系統。基於主動防禦機制,實現資料庫的訪問行為控制、危險操作阻斷、可疑行為審計。資料庫防火牆透過 SQL協議分析,根據預定義的禁止和許可策略讓合法的 SQL操作透過,阻斷非法違規操作,形成資料庫的外圍防禦圈,實現 SQL危險操作的主動預防、實時審計。“資料庫防火牆面對來自於外部的入侵行為,提供SQL隱碼攻擊禁止和資料庫虛擬補丁包功能。


四、Linux 防火牆
Linux 防火牆在企業應用中非常有用,舉例如下:e中小企業與網咖裡有 iptables 作為企業的 NAT路由器,可以用來代替傳統路由器,而節約成本。“IDC機房一般沒有硬體防火牆,IDC機房的伺服器可以用Linux 防火牆代替硬體防火牆。“iptables 可以結合squid 作為企業內部上網的透明代理。傳統代理需要在瀏覽器裡配置代理伺服器資訊,而 iprablestsquig 的透明代理則可以把客戶端的請求重定向到代理伺服器的埠。客戶端不要作任何設定,而感覺不到代理的存在。“將 iptables 作為企業 NAT 路由器時,可以使用 iptables 的擴充套件模組遮蔽 P2P 流量,還可以禁止非法網頁。
iptables 可以用於外網 IP 向內網 IP 對映。

iptables 可以輕鬆防止輕量級 DOS 攻擊,比如 ping 攻擊及 SYN 洪水攻擊。

綜述,Iptables 有兩種應用模式:主機防火,NAT路由器。


五、防火牆的基本原理←對應下圖的位元組傳輸流程,可以分為以下幾層:“包過濾(Packet filtering):工作在網路層,僅根據資料包頭中的 IP 地址、埠號、協議型別等標誌確定是否允許資料包透過。
應用代理(Application Proxy):工作在應用層,透過編寫不同的應用代理程式,實現對應用層資料的檢測和分析。
狀態檢測(StatefulInspection):工作在 2~4層,訪問控制方式與1同,但處理的物件不是單個資料包,而是整個連線,透過規則表和連線狀態表,綜合判斷是否允許資料包透過。“完全內容檢測(Cqmpelete.ContentInspection):工作在 2~7層,不僅分析資料包頭資訊、狀態資訊,而且對應用層協議進行還原和內容分析,有效防範混合型安全威脅。

FTP是基於TCP協議的21埠和20都那口,檔案共享是基於TCP協議的445埠,遠端桌面連線是基於TCP學醫的3389埠

很多 Linux 發行版本已經自帶了防火牆,通常是 iptables。它很強大並可以自定義,但配置起來有點複雜。幸運的是,有開發者寫出了一些前端程式來幫助使用者控制防火牆,而不需要寫冗長的iptables 規則。←
frewalld.與iptables 關係與區別e
1、firewalld,與 ipables,都不是真正的防火牆,只是用來定義防火牆規則功能的管理工具,將定義好的規則交由核心中的 netflter,來實現真正的防火牆功能。“2、在 RHEL7 裡有幾種防火牆共存:firewalld、iptables、ektables,預設是使用 firewalld,來管理netfler子系統,不過底層呼叫的命令仍然是iptables等。
與直接控制 iptables 相比,使用 fewalld,有兩個主要區別:←
1、firewalld,使用區域和服務而不是鏈式規則。←2、frewalld,預設是拒絕的,需要設定以後才能放行。而 iptables 預設是允許的,需要拒絕的才去限制。←
3、firewald,可以動態修改單條規則,而不需要像 iptables 那樣,在修改了規則後必須得全部重新整理才可以生效。
4、iptables service 在/etc/sysconfig/iptables 中儲存配置,而 firewalld 將配置儲存在/usr/lib/firewalld/和/etc/firewalld/中的各種 XML檔案裡。←

不管你的發行版是哪個,都要先啟用防火牆才能讓它生效,而且需要在啟動時載入:$ sude systemctl enable --now firewallde
1、域(zone)←
Firewalld 旨在讓防火牆的配置工作儘可能簡單。它透過建立域 zone 來實現這個目標。一個域是一組的合理、通用的規則,這些規則適配大部分使用者的日常需求。預設況下有九個域。“trusted:接受所有的連線。這是最不偏執的防火牆設定,只能用在一個完全信任的環境中如測試實驗室或網路中相互都認識的家庭網路中。“
home、work、internal:在這三個域中,接受大部分進來的連線。它們各自排除了預期不活躍的埠進來的流量。這三個都適合用於家庭環境中,因為在家庭環境中不會出現埠不確定的網路流量,在家庭網路中你一般可以信任其他的使用者。
public:用於公共區域內。這是個偏執的設定,當你不信任網路中的其他計算機時使用。只能接收選定的常見和最安全的進入連線。“dmz:DMZ 表示隔離區。這個域多用於可公開訪問的、位於機構的外部網路、對內網訪問受限的計算機。對於個人計算機,它沒什麼用,但是對某類伺服器來說它是個很重要的選項。external:用於外部網路,會開啟偽裝(你的私有網路的地址被對映到一個外網IP 地址,並隱藏起來)。跟 DMZ 類似,僅接受經過選擇的傳入連線,包括SSH。block:僅接收在本系統中初始化的網路連線。接收到的任何網路連線都會被mR-host-prohibited 資訊拒絕。這個一個極度偏執的設定,對於某類伺服器或處於不信任或不安全的環境中的個人計算機來說很重要。"drop:接收的所有網路包都被丟棄,沒有任何回覆。僅能有傳送出去的網路連線。比這個設定更極端的辦法,唯有關閉 WiEi 和拔掉網線。

# 命令獲得當前所有域
可以透過firewall-cmd --get-zonese

說明:frewalld.的預設區域是 public,firewalld,預設提供了九個 zone 配置檔案:block.xml、dmz.xml、drop.xml、external.xml、home.xml、 internal.xml、 public.xml、 trusted.xml、 work.xml.如下圖所示:
2、firewalld 基本指令引數←
1、zone 區域相關指令

2、services服務相關指令

實操演示:

3.2、使用 frewalld,各個區域規則結合配置,調整預設 public 區域拒絕所有流量,但如果來源IP是 192.168.1.0/24 網段則允許
臨時移除預設區域的規則策略:

firewall-cmd --remove-service=ssh --remove-service=dhcpv6-client

新增來源是 192.168.1.0/24 網段,臨時將其加入白名單(更精細化控制使用富規則):

firewall-cmd --add source=192.168.1.0/24 --zone=trusted

檢查當前活動的區域:

firewall-cmd --get-active-zones

查詢 public 區域是否允許請求ssh、dhcpv6-client 服務的流量:

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

firewall-cmd --zone=public --query-service=dhcpv6.client

上述配置均為臨時配置,使用 frewall-cmd --reload 臨時配置會被清空:

firewall-cmd --get-active-zones 再次檢視當前的活動域

1、編輯配置mysql服務

# cp /usr/lib/firewall/services/mysql.xml /etc/firewall/services/

# vim /etc/firewall/services/

修改埠號為53000(在此只是修改防火牆的mysql埠,具體修改應該還在mysql哦欸之中修改埠號,再來firewall修改)

2、配置前檢視 public 區域內允許訪問的服務

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

3、為 public 區域設定允許訪問的 mySQL服務

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

4、重新載入配置

firewall-cmd --reload

5、配置後檢視 public 區域內允許訪問的服務

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

6、移除 mysQL服務防火牆規則

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

firewall-cmd --reload

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

5、frewalld.端日配置策略。
在進行服務配置時,預定義的網路服務可以使用服務名配置,服務所涉及的埠就會自動開啟但是,對於非預定義的服務只能手動為指定的區域新增埠。


使用 frewalld.允許客戶請求的伺服器的 80/tcp,埠,僅臨時生效,如新增-permanent 重啟後則永久生效

1、臨時新增允許放行單個埠

firewall-cmd --add-port=80/tcp

2、臨時新增放行多個埠

firewall-cmd --add-port={80/tcp,8080/tcp}

firewall-cmd --list-ports

3、永久新增多個埠,需要新增-permanent,並且需要過載 firewalld

firewall-cmd --add-port={80/tcp,8080/tcp} --permanent

firewall-cmd --reload

firewall-cmd --list-ports

4、移除臨時新增的埠規則

firewall-cmd --remove-port={80/tcp,8080/tcp}

5、移除永久新增的埠規則

firewall-cmd --remove-port={80/tcp,8080/tcp} --permanent

firewall-cmd --reload

6、firewalld 富規則配置策略

進入/ekg/firewalld/zones/public.xml 檔案檢視配置的規則,如下圖所示:

相關文章