Linux基礎(iptables與firewalld防火墻)

iptables

在早期的Linux系統中,默認使用的是iptables防火墻管理服務來配置防火墻。盡管新型的fierwalld防火墻管理服務已經被投入使用多年,但是大量的企業在生產環境中依然出于各種原因而繼續使用iptables。

策略與規則鏈

防火墻會從上至下的順序來讀取配置的策略規則,在找到匹配項后就立即結束匹配工作并去執行匹配項中定義的行為(即放行或阻止)。如果在讀取完所有的策略規則之后沒有匹配項,就去執行默認的策略。

一般而言,防火墻策略規則的設置有兩種:

一種是“通”(即放行),

一種是 “堵”(即阻止)。

當防火墻的默認策略為拒絕時(堵),就要設置允許規則 (通),否則誰都進不來;如果防火墻的默認策略為允許時,就要設置拒絕規則,否則誰都能進來,防火墻也就失去了防范的作用。

iptables 服務把用于處理或過濾流量的策略條目稱之為規則,多條規則可以組成一個規則鏈,而規則鏈則依據數據包處理位置的不同進行分類,具體如下:
?在進行路由選擇前處理數據包( PREROUTING);
?處理流入的數據包( INPUT );
?處理流出的數據包( OUTPUT );
?處理轉發的數據包( FORWARD );
?在進行路由選擇后處理數據包( POSTROUTING )。

一般來說, 從內網向外網發送的流量一般都是可控且良性的,因此我們使用最多的就是INPUT規則鏈,該規則鏈可以增大黑客人員從外網人侵內網的難度。比如在您居住的社區內,物業管理公司有兩條規定:禁止小商小販進入社區;各種車輛在進人社區時都要登記。顯而易見,這兩條規定應該是用于社區的正門的(流量必須經過的地方),而不是每家每戶的防盜門上。根據前面提到的防火墻策略的匹配順序,可能會存在多種情況。比如,來訪人員是小商小販,則直接會被物業公司的保安拒之門外,也就需再對車輛進行登記。如果來訪人員乘坐輛汽車進人社區正門,則“禁止小商小販進人社區”的第一條規則就沒有被匹配到,因此按照順序匹配第二條策略, 即需要對車輛進行登記。如果是社區居民要進入正門,則這兩條規定都不會匹配到,因此會執行默認的放行策略。

但是,僅有策略規則還不能保證社區的安全,保安還應該知道采用什么樣的動作來處理這些匹配的流量,比如“允許”、“拒絕”、“登記”、“不理它”。

這些動作對應到iptables服務的術語中分別是ACCEPT(允許流量通過)、REJECT(拒絕流量通過)、LOG(記錄日志信息)、DROP (拒絕流量通過)。

“允許流量通過”和“記錄日志信息”都比較好理解,這里需要著重講解的是REJECT和DROP的不同點。

就DROP來說,它是直接將流量丟棄而且不響應;

REJECT則會在拒絕流量后再回復條“您的信息已經收到, 但是被扔掉了”信息,從而讓流量發送方清晰地看到數據被拒絕的響應信息。

iptables是一款基于命令行的防火墻策略工具,具有大量參數,學習難度大。

不過大家無須深入了解眾多的理論概念,只需要掌握常用的參數并做到靈活搭配就好。

iptables命令可以根據流量的源地址、目的地址、傳輸協議、服務類型等信息進行匹配,一旦匹配成功。iptables就會根據策略規則所預設的動作來處理這些流量。另外,防火墻策略規則的匹配順序是從上至下的,因此要把控嚴格,優先級越高的策略規則放在前面,以免發生錯誤。

以下是iptables的參數,無須死記硬背,慢慢使用理解

參數作用
-P設置默認策略
-F清空規則鏈
-L查看規則鏈
-A在規則鏈的末尾加入新規則
-I num在規則鏈的頭部加入新規則
-D num刪除某一條規則
-s匹配來源地址IP/MASK,加嘆號“!”表示除這個IP外
-d匹配目標地址

-i 網卡名稱

匹配從這塊網卡流入的數據
-o 網卡名稱匹配從這塊網卡流出的數據
-p匹配協議
--dport num匹配目標端口號
--sport num匹配來源端口號

在iptables命令后加 -L 參數查看已有的防火墻規則鏈

在iptables命令后加 -F 參數清空已有的防火墻規則鏈

把INPUT規則鏈的默認策略設置為拒絕

把INPUT規則鏈改為默認策略設置

?前面提到,防火墻策略規則的設置有兩種:通 和 堵

當把INPUT鏈設置為默認拒絕后,就要在防火墻策略中寫入允許策略了,否則所有到來的流量都會被拒接掉。另外。需要注意的是,規則鏈的默認拒絕動作只能是DROP,而不是REJECT

向INPUT鏈中添加ICMP流量進入的策略規則:

在日常運維工作中,經常會使用ping命令來檢查對方主機是否在線,而向防火墻的INPUT規則鏈中添加一條允許ICMP流量進入的策略規則就默認允許了這種ping命令檢測行為:

刪除INPUT規則鏈中剛剛加入的那條策略(允許ICMP流量),并把默認策略設置為允許:

將INPUT規則鏈設置為只允許指定網段的主機訪問本機的22端口,拒絕來自其他所有主機的流量

?再次重申,防火墻策略規則是按照從上到下的順序匹配的,因此一定要把允許動作放到拒絕動作前面,否則所有的流量就將被拒絕掉,從而導致任何主機都無法訪問我們的服務。

另外,這里提到的22號端口是ssh服務使用的(有關ssh服務,后續會介紹)

在設置完上述INPUT規則鏈之后,我們使用192.168.203.0/24網段內主機訪問服務器的22端口,效果如下

?然后,我們再使用ip地址在192.168.20.0/24,網段內的主機訪問服務器的22端口,效果如下

?向INPUT規則鏈中添加拒絕所有人訪問本機12345端口的策略規則:

向INPUT規則鏈中添加拒絕192.168.203.100主機訪問本機的80端口(Web服務)的策略:

向INPUT規則鏈中添加拒絕所有主機訪問本機1000-1024端口的規則:

使用iptables命令配置的防火墻規則默認會在下次重啟時失效,如果想讓配置的防火墻策略永久生效,還需要執行保存命令:

firewalld

RHEL7系統中集成了多款防火墻管理工具,其中firewalld服務是默認的防火墻配置管理工具,它擁有基于CLI(命令行界面)和基于GUI(圖形用戶界面)的兩種管理方式。

相較于傳統的防火墻管理配置工具,firewalld支持動態更新技術并加入了區域(zone)的概念。

簡單來說,區域就是firewalld預先準備了幾套防火墻策略集合(策略模板),用戶可以根據生產場景的不同而選擇合適的策略集合,從而實現防火墻策略之間的加速切換。

例如,有臺筆記本電腦,每天都要在辦公室,咖啡廳和家里使用,按照常理來說,這三者的安全性由高到低的順序排序,應該是家庭,公司辦公室,咖啡廳。當前,我們希望為這臺筆記本指定如下防火墻策略規則:

在家中允許訪問所有服務;

在辦公室僅允許訪問文件共享服務;

在咖啡廳僅允許上網瀏覽。

在以往,我們需要頻繁地手動設置防火墻策略規則,而現在只需要預設好區域集合,然后只需輕點鼠標可以自動切換了,從而極大地提升了防火墻策略的應用效率。

firewalld中常見的區域名稱(默認為public)以及相應的策略規則

如圖

區域默認策略規則
trusted允許所有的數據包
home拒絕流入的流量,除非與流出的流量相關;而如果流量與ssh、mdns、ipp-client、dhcpv6-client、amba-client服務相關,則允許流量
internal等同于home區域
work拒絕流入的流量,除非與流出的流量相關;而如果流量與ssh、ipp-client、dhcpv6-client服務相關,則允許流量
public拒絕流入的流量,除非與流出的流量相關;而如果流量與ssh、ipp-client服務相關,則允許流量
external拒絕流入的流量,除非與流出的流量相關;而如果流量與ssh服務相關,則允許流量
dmz拒絕流入的流量,除非與流出的流量相關;而如果流量與ssh服務相關,則允許流量
block拒絕流入的流量,除非與流出的流量相關
drop拒絕流入的流量,除非與流出的流量相關

終端管理工具

firewall-cmd是firewalld防火墻配置管理工具的CLI(命令行界面)版本。它的參數一般都是以長格式來提供的。(Tab自動補齊)

參數作用
--get-default-zone查詢默認的區域名稱
--get-default-zone=<區域名稱>設置默認的區域,使其永久生效
--get-zones顯示可用的區域
--get-services顯示預先定義的服務
--get-active-zones顯示當前正在使用的區域與網卡名稱
--add-source=將源自此IP或子網的流量導向指定的區域
--remove-source=不再將源自此IP或子網的流量導向某個指定區域
--add-interface=<網卡名稱>將源自該網卡的所有流量都導向某個指定區域
--change-interface=<網卡名稱>將某個網卡與區域進行關聯
--list-all顯示當前區域的網卡配置參數,資源,端口以及服務等信息
--list-all-zones顯示所有區域的網卡配置參數,資源、端口以及服務等信息
--add-service=<服務名>設置默認區域允許該服務的流量
--add-port=<端口號/協議>設置默認區域允許該端口的流量

--remove-service=<服務名>

設置默認區域不再允許該服務的流量
--remove-port=<端口號/協議>設置默認區域不再允許該端口的流量
--reload讓“永久生效”的配置立即生效,并覆蓋當前的配置規則
--panic-on開啟應急狀況模式
--panic-off關閉應急狀況模式

與Linux系統中其他的防火墻策略配置一樣,使用firewalld配置的防火墻策略默認為運行時(Runtime)模式,又稱為當前生效模式,而且隨著系統的重啟會失效。如果想讓配置策略一直存在,就需要使用永久模式了。方法就是在用firewall-cmd命令正常設置防火墻策略時添加 --permanent 參數,這樣配置的防火墻策略就可永久生效了。但是。永久生效有一個特點,就是使用它設置的策略只有在系統重啟之后才能生效。如果想讓配置的策略立即生效,需要手動執行firewall-cmd --reload命令。

查看firewalld服務當前所使用的區域

查看ens160網卡在firewalld服務中的區域

把firewalld服務中ens160網卡的默認區域修改為external,并在系統重啟后生效。分別查看當前永久模式下的區域名稱:

把firewalld服務的當前默認區域設置為public

啟動/關閉firewalld防火墻服務的應急狀況模式,阻斷一切網絡連接:

firewall-cmd --panic-on

firewall-cmd --panic-off

查詢public區域是否允許請求SSH和HTTPS協議流量:

?把firewalld服務中請求HTTPS協議的流量設置為永久允許,并立即生效:

? 把firewalld服務中請求HTTPS協議的流量設置為永久NO,并立即生效:

把在firewalld服務中訪問8080和8081端口的流量策略設置為允許,但僅限當前生效:

把原本訪問本機888端口的流量轉發到22端口,要且求當前和長期有效:

下一篇我們介紹圖形管理工具

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/534305.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/534305.shtml
英文地址,請注明出處:http://en.pswp.cn/news/534305.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

虛擬跳線軟件干什么用的_瘋狂刷單!用違法軟件生成虛擬手機號,“騎手”半年“刷單”牟利60余萬,百米內竟有萬筆訂單 | 申晨間...

來源&#xff1a;新聞晨報 記者&#xff1a;吳藝璇借助違法軟件生成虛擬手機號碼&#xff0c;利用平臺審核漏洞大量注冊用戶&#xff0c;大量“刷單”騙取平臺的返現和購物補貼&#xff0c;半年內瘋狂刷1.8萬余單&#xff0c;累計牟利60余萬元。近日&#xff0c;在市公安局刑偵…

軟件工程(總體設計①設計過程)

經過需求分析&#xff08;https://blog.csdn.net/weixin_45626468/article/details/115324885&#xff09;階段的工作&#xff0c;系統必選“做什么”已經清楚了&#xff0c;現在是決定“怎樣做”的時候了。 總體設計的基本目的就是回答“概況地說&#xff0c;系統應該如何實現…

ygo游戲王卡組_ACG大科普(7)游戲王

大家是否在小時候接觸過一種卡片類似這種的 這就是今天的主角游戲王。 背景 1996年&#xff0c;《游戲王》漫畫開始在集英社《周刊少年Jump》連載。 1998年&#xff0c;Bandai推出以《游戲王》原作中登場的集換卡牌游戲“M&W”為題材的集換卡牌。 采用Bandai的卡片自動販賣…

Qt圖形界面編程入門(基本窗口及控件)

基本窗口類QWidget QWidget是所有窗體部件的基類&#xff0c;例如對話框類&#xff0c;主窗體類&#xff0c;以及其他諸如按鈕&#xff0c;編輯框&#xff0c;標簽等等都是由QWidget派生得到&#xff0c;QWidget擁有的方法往往都可以在其他子類中使用。 窗體的幾何尺寸分為包…

背景se_盤點那些RPG手游中主角的背景故事,越悲情越強大

RPG游戲一直以代入感超強的游戲方式來吸引玩家&#xff0c;用超越現實的藝術手段把玩家帶入到虛擬的游戲世界&#xff0c;讓玩家擔任不同的社會角色來去經歷不同的虛擬故事&#xff0c;體驗多種人生經歷&#xff0c;想要扮演任何角色都是有可能的。當然在RPG游戲中也有好壞之分…

TensorFlow構建二維數據擬合模型(2)

變量的定義和使用 變量的定義與初始化 TensorFlow中&#xff0c;變量是一種特殊的張量&#xff0c;其值可以是一個任意類型的形狀的張量。 與其他張量不同&#xff0c;變量存在于單個回話調用的上下文之外&#xff0c;主要作用是保存和更新模型中的參數。 聲明變量通常使用…

c++用牛頓法開多次根_望遠鏡的歷史之三:大神出世,改變望遠鏡歷史的竟然是牛頓...

上次我們說到格里高利望遠鏡有點畫蛇添足&#xff0c;那么格里高利望遠鏡添了什么呢&#xff1f;格里高利望遠鏡格里高利望遠鏡觀測的圖像都是正立的&#xff0c;這就意味著要采用多個凹面反射鏡&#xff0c;而當時凹面反射鏡磨制不易&#xff0c;無論是多大的科學家都要親自動…

python浮點型精度損失問題_解決float型數據精度損失問題

問題&#xff1a;浮點型數據存儲方式會導致數據精度損失&#xff0c;增大計算誤差。float fval 0.45;  // 單步調試發現其真實值為&#xff1a;0.449999988double dval 0.45; // 單步調試發現其真實值為&#xff1a;0.45000000000000001當很多個這樣的單精度浮點型數據進行…

Linux配置本地yum源(RHEL8)

https://www.cnblogs.com/itwangqiang/p/13391401.html

如何把照片正面變成反面_各國簽證照片要求大全 (含模板)

對于不是很熟悉簽證的小伙伴來說&#xff0c;面對全球那么多國家的簽證而且每張簽證照片的規格不同為此我們為您整理了各國簽證照片要求大全 東南亞國家的簽證照要求基本相同&#xff0c;就以泰國為例&#xff0c;告訴大家簽證照的注意事項。“泰國&#xff0c;新加坡&#xff…

TensorFlow實驗(3)

模型的保存與恢復 我們來簡單實現一下模型的保存與恢復 訓練完TensorFlow模型后&#xff0c;可將其保存為文件&#xff0c;以便于預測新數據時直接加載使用。 TensorFlow模型主要包含網絡的設計或者圖以及已經訓練好的網絡參數的值。 TensorFlow提供的tf.train.Saver()函數…

ad域 禁用賬號_IST-AD域信息同步平臺來襲

IST的AD域信息同步系統是能幫助域管理員簡化日常的一些管理工作&#xff0c;可以讓AD域系統與其他的業務系統進行用戶信息同步&#xff0c;實現自動的新舊用戶帳戶信息的同步修改、組織架構同步調整&#xff0c;并有簡單易操作的配置頁面系統與操作日志查詢等。通過ODBC、Web S…

Linux基礎(firewalld防火墻配置管理工具的圖形用戶界面)

firewall-config的界面如圖所示 我們先將當前區域中請求http服務的流量設置為允許&#xff0c;但僅限當前生效。具體配置如圖 嘗試添加一條防火墻策略規則&#xff0c;使其放行訪問8080-8088端口&#xff08;TCP協議&#xff09;的流量&#xff0c;并將其設置為永久生效&#x…

ios 請求失敗封裝_vue_axios請求封裝、異常攔截統一處理

1、前端網絡請求封裝、異常統一處理vue中采用axios處理網絡請求&#xff0c;避免請求接口重復代碼&#xff0c;以及各種網絡情況造成的異常情況的判斷&#xff0c;采用axios請求封裝和異常攔截操作&#xff1b;axios 請求封裝// 引入axios文件包import axios from axios// POST…

Linux基礎(使用ssh服務管理遠程主機1)

配置網絡參數 使用nmtui命令配置網絡參數&#xff0c;以及通過nmcli命令查看網絡信息并管理網絡會話服務。 執行nmtui命令運行網絡配置工具 進入主界面 選中編輯連接并按下回車鍵 選中要編輯的網卡名稱&#xff0c;然后按下Edit&#xff08;編輯&#xff09;按鈕 把網絡IPv4 …

聯想g510升級方案_聯想智慧中國行,聚焦第一古城,助力企業智能升級

12月29日&#xff0c;聯想智慧中國行“一起聯想 生態綻放”One Lenovo融合品鑒會邢臺站盛大啟幕&#xff0c;現場近70位河北合作伙伴到場參會&#xff0c;共同探討智能時代帶來的多重挑戰和迎戰機遇。“聯想智慧中國行”是聯想致力于推動中國行業智能化升級舉辦的系列活動&…

軟件工程(總體設計②設計原理)

設計原理 模塊化 模塊是由邊界元素限定的相鄰程序元素的序列&#xff0c;而且有一個總體標識符代表它。 按照模塊的定義&#xff0c;過程、函數、子程序和宏&#xff0c;都可作為模塊。 面向對象方法學中的對象是模塊&#xff0c;對象內的方法也是模塊。模塊是構成程序的基…

TensorFlow構建二維數據擬合模型(3)

占位符與數據喂入機制 placeholder是TensorFlow提供的占位符節點&#xff0c;由tf.placeholder()函數創建&#xff0c;其實質上也是一種變量。占位符沒有初始值&#xff0c;只會分配必要的內存&#xff0c;其值由會話中用戶調用的run()函數傳遞。 占位符聲明的方法如表 函數…

合作開發過程產生的專利_被起訴專利侵權怎么辦?專利律師給你出招!

隨著國內企業專利申請量的增加及專利保護意識的逐步提升&#xff0c;專利侵權訴訟作為常用的商業競爭手段和策略&#xff0c;其數量也隨之呈逐年遞增之勢。考慮到目前國內專利數量較多&#xff0c;且很多專利技術互有交叉&#xff0c;因此在進行產品研發時即使未借鑒他人產品&a…

idea怎么設置代碼提示不區分大小寫_IntelliJ IDEA 這樣設置動圖,棒極了!

轉自&#xff1a;IntelliJ-IDEA-Tutorial/Judas.n鏈接&#xff1a;http://suo.im/6sHdelIntelliJ IDEA 有很多人性化的設置我們必須單獨拿出來講解&#xff0c;也因為這些人性化的設置讓我們這些 IntelliJ IDEA 死忠粉更加死心塌地使用它和分享它。推薦設置IntelliJ IDEA 的代碼…