linux 安全 iptables防火墻 (一)

Linux包過濾防火墻概述

Linux 系統的防火墻 :IP信息包過濾系統,它實際上由兩個組件netfilter 和 iptables組成。
主要工作在網絡層,針對IP數據包。體現在對包內的IP地址、端口、協議等信息的處理上。

兩大組件?netfilter內核組件?iptables應用組件

netfilter :屬于內核態的功能體系,是一個內核模塊,由多個數據包過濾表組成,其中包含數據包的過濾處理規則集,并根據規則過濾處理IP數據包
iptables :屬于用戶態的管理工具,如同firewalld、ufw,是一個防火墻應用管理程序,用來實現防火墻規則集的增刪改查

四表五鏈

四表:raw(數據包狀態跟蹤) ? ? mangle(修改數據包內容,設置標記) ? ? ?nat(數據包地址轉換) ? ? ? filter(過濾數據包)


五鏈:INPUT(處理入站數據) ? OUTPUT(處理出戰數據) ? FORWARD(處理轉發數據) ? PREROUTING(修改目的地址) ? ?POSTROUTING(修改源地址)

raw 表包含?OUTPUT、PREROUTING

mangle 表包含?INPUT、OUTPUT、FORWARD、PREROUTING、POSTROUTING

nat 表包含?OUTPUT、PREROUTING、POSTROUTING

filter 表包含?INPUT、FORWARD、OUTPUT

數據包過濾的匹配流程

表的匹配順序: raw -> mangle -> nat -> filter

鏈的匹配順序:入站數據 PREROUTING -> INPUT -> 本機的應用程序
? ? ? ? ? ? ? 出站數據 本機的應用程序 -> OUTPUT -> POSTROUTING
?? ??? ??? ? ?轉發數據 PREROUTING -> FORWARD -> POSTROUTING

規則的匹配順序:從上往下依次匹配鏈中的規則,匹配到即停止;若沒有匹配的規則,則按照鏈的默認規則處理

過濾入站數據包 ?filter(INPUT)
過濾出站數據包 ?filter(OUTPUT)
過濾轉發數據包 ?filter(FORWARD)
修改內網轉發到外網數據包 的源IP地址 ? ?nat(POSTROUTING)
修改外網轉發到內網數據包的目的IP地址 ?nat(PREROUTING)

iptables的安裝


CentOS 7默認使用firewalld防火墻,沒有安裝 iptables,若想使用iptables防火墻。必須先關閉firewalld防火墻,再安裝 iptables
systemctl stop firewalld.service
systemctl disable firewalld.service

yum -y install iptables iptables-services
systemctl start iptables.service

iptables操作管理


命令格式: iptables -t ?表名 ? ?操作選項 ? 鏈名 ? ? ? ? 匹配條件選項 ? -j ?控制類型
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?filter? ? ? ? ? ? ? ? ? ? ?INPUT? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?ACCEPT
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?nat? ? ? ? ? ? ? ? ? ? ? OUTPUT? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? REJECT
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? mangle? ? ? ? ? ? ? ? ?FORWARD? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? DROP
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?raw? ? ? ? ? ? ? ? ? PREROUTING? ? ? ? ? ? ? ? ? ? ? ? ? ? ?SNAT
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? POSTROUTING? ? ? ? ? ? ? ? ? ? ? ? ? ? ?DNAT


注意事項:
不指定表名時,默認指filter表
不指定鏈名時,默認指表內的所有鏈
除非設置鏈的默認策略,否則必須指定匹配條件
控制類型和鏈名使用大寫字母,其余均為小寫

常用的控制類型:
ACCEPT:允許數據包通過。
DROP:直接丟棄數據包,不給出任何回應信息。
REJECT:拒絕數據包通過,會給數據發送端一個響應信息。
SNAT:修改數據包的源地址。
DNAT:修改數據包的目的地址。
REDIRECT:重定向改變目的端口,將接受的包轉發至本機的不同端口
MASQUERADE:偽裝成一個非固定公網IP地址。
LOG:在/var/log/messages文件中記錄日志信息,然后將數據包傳遞給下一條規則。LOG只是一種輔助動作,并沒有真正處理數據包。

常用的管理選項:
-A :在指定鏈的末尾追加(--append)一條新的規則
-I :在指定鏈的開頭插入(--insert)一條新的規則,未指定序號時默認作為第一條規則
-R :修改、替換(--replace)指定鏈中的某一條規則,可指定規則序號或具體內容
-P :設置指定鏈的默認策略(--policy)
-D :刪除(--delete)指定鏈中的某一條規則,可指定規則序號或具體內容
-F :清空(--flush)指定鏈中的所有規則,若未指定鏈名,則清空表中的所有鏈
-L :列出(--list)指定鏈中所有的規則,若未指定鏈名,則列出表中的所有鏈
-n :使用數字形式(--numeric)顯示輸出結果,如顯示 IP 地址而不是主機名
-v :顯示詳細信息,包括每條規則的匹配包數量和匹配字節數
--line-numbers:查看規則時,顯示規則的序號

iptables 命令圖解

添加規則

iptables -t 表名 -A 鏈名 匹配條件 -j 控制類型

iptables -t 表名 -I 鏈名 序號 匹配條件 -j 控制類型

ping命令是使用icmp傳輸協議

給他指定一個規則 拒絕數據包通過

刪除規則

iptables -t 表名 -D 鏈名 序號/內容
iptables -t 表名 -F [鏈名] ? ? ? ? ? ? ?#如果不指定鏈名則刪除清空所有鏈的規則

改變規則

iptables -t 表名 -R 鏈名 序號 新規則內容
iptables -t 表名 -P 鏈名 ACCEPT/DROP/REJECT

查看規則

iptables -t 表名 -L -n -v --line-numbers [鏈名]?
? ? ? ? ? ? ? ? ? ? -nvL

生產環境中通常使用白名單方式設置規則 ?


? ?iptables -t 表名 -A 鏈名 匹配條件 -j ACCEPT ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #先配置需要放行的規則
? ?....
? ?iptables -t 表名 -A 鏈名 -j DROP ?或 ?iptables -t 表名 -P 鏈名 DROP ? ? ? #最后配置默認禁止所有的規則

iptables -t filter -A INPUT -p tcp -m multiport --dport 22,80,443 -j ACCEPT

規則的匹配條件


通用匹配:條件選項可直接使用
-p 協議 ? ? ? ?
-s 源IP/網段/域名 ? ? ? ?
-d 目的IP/網段/域名 ? ? ? ? ? ?
-i 入站網卡接口
-o 出站網卡接口?? ?

隱含匹配:需要使用 -p 指定協議作為前提?? ??? ??? ??? ??? ?
-p tcp/udp --dport 目的端口/端口范圍
-p tcp/udp --sport 源端口/端口范圍
-p icmp --icmp-type 8(請求)/0(回顯)/3(目標不可達)

顯式匹配:需要使用 -m 指定模塊
-m multiport --sport/--dport 端口列表


-m iprange --src-range(源)/--dst-range (目的) IP范圍
-m mac --mac-source 源MAC地址
-m state --state RELATED,ESTABLISHED[,NEW,INVALID] ? ? ? ? ?#RELATED,ESTABLISHED 用于放行返回的應答包進站

常見的連接狀態:
NEW :主機連接目標主機,在目標主機上看到的第一個想要連接的包
ESTABLISHED :主機已與目標主機進行通信,判斷標準只要目標主機回應了第一個包,就進入該狀態
RELATED :主機已與目標主機進行通信,目標主機發起新的鏈接方式,一般與ESTABLISHED 配合使用
INVALID :無效的封包,例如數據破損的封包狀態

iptables規則修改后會立即生效

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

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

相關文章

blender安裝cats-blender-plugin-0-19-0插件,導入pmx三維模型

UE5系列文章目錄 文章目錄 UE5系列文章目錄前言一、Blender安裝二、cats-blender-plugin-0-19-0插件下載三、下載bmp文件四、在blender2.93中安裝cats-blender-plugin-0-19-0插件 前言 blender本身不支持pmx三維模型,需要用到cats-blender-plugin-0-19-0插件。 一…

構建全面的無障礙學習環境:科技之光,照亮學習之旅

在信息與科技日益發展的當下,為所有人群提供一個包容和平等的學習環境顯得尤為重要,特別是對于盲人朋友而言,無障礙學習環境的構建成為了一項亟待關注與深化的課題。一款名為“蝙蝠避障”的輔助軟件,以其創新的設計理念與實用功能…

Offline RL : Context-Former: Stitching via Latent Conditioned Sequence Modeling

paper 基于HIM的離線RL算法,解決基于序列模型的離線強化學習算法缺乏對序列拼接能力。 Intro 文章提出了ContextFormer,旨在解決決策變換器(Decision Transformer, DT)在軌跡拼接(stitching)能力上的不足…

新定義單片機的說明

新定義的官網是https://www.rdsmcu.com/shop/#/,主要經營的是1T系列的51單片機,之前從他們官網上申請了評估板,自己頁玩了一段時間,不過玩的不多,特開此專欄記錄學習過程,并幫助剛入門的道友快速上手。 我申請的是評估…

DQL(數據查詢)

目錄 1. DQL概念 2. DQL - 編寫順序 3. 基礎查詢 3.1 查詢多個字段 3.2 字段設置別名 3.3 去除重復記錄 3.4 案例 4. 條件查詢 4.1 語法 4.2 條件 4.3 案例: 5. 聚合函數 5.1 常見的聚合函數: 5.2 語法 5.3 案例: 6. 分組查…

VScode SSH連接遠程服務器報錯

一、報錯 通過VScode SSH插件遠程連接服務器,輸入密碼后沒有連接成功,一直跳出輸入密碼界面,在輸出界面里,一直是Waiting for server log或者是顯示Cannot not find minimist 二、處理 🐱: 這個時候應該…

力扣每日一題 5/25

題目: 給你一個下標從 0 開始、長度為 n 的整數數組 nums ,以及整數 indexDifference 和整數 valueDifference 。 你的任務是從范圍 [0, n - 1] 內找出 2 個滿足下述所有條件的下標 i 和 j : abs(i - j) > indexDifference 且abs(nums…

CTF網絡安全大賽web題目:字符?正則?

題目來源于&#xff1a;bugku 題目難度&#xff1a;難 題目描  述: 字符&#xff1f;正則&#xff1f; 題目htmnl源代碼&#xff1a; <code><span style"color: #000000"> <span style"color: #0000BB"><?php <br />highl…

C-數據結構-鏈式存儲棧(二次封裝)

/* 二次封裝 借用已經實現雙向鏈表結構來實現 棧 出棧入棧操作類似于 從頭節點開始的插入和刪除 */ llist.h #ifndef LLIST_H__ #define LLSIT_H__ #define LLIST_FORWARD 1 #definr LLIST_BACKWARD 2 typedef void llist_op(const void *);//回調函數 typedef int llist_cmp…

分組排序取最大sql理解

分組排序取最大sql理解 --用戶過濾&#xff08;只能看到當前用戶對應部門用戶權限表中的部門&#xff09; select h.pk_tbdept from jygyl_bmyhqxb h left join jygyl_bmyhqxb_b b on h.pk_bmyhqx b.pk_bmyhqx where isnull(h.dr,0) 0 and isnull(b.dr,0) 0 and b.pk…

類圖的六大關系

類圖中的六大關系包括&#xff1a;繼承關系、實現關系、關聯關系、聚合關系、組合關系和依賴關系。 1. 繼承關系 繼承是一種類與類之間的關系&#xff0c;表示一種泛化和特化的關系。子類繼承父類的特性和行為。 class Animal {void eat() {System.out.println("This an…

TensorFlow.js

什么是 TensorFlow.js&#xff1f; TensorFlow.js 是一個基于 JavaScript 的機器學習庫&#xff0c;它是 Google 開發的 TensorFlow 的 JavaScript 版本。它使得開發者能夠在瀏覽器中直接運行機器學習模型&#xff0c;而不需要依賴于后端服務器或云服務。TensorFlow.js 的主要…

【JavaEE 初階(十)】JVM

?博主主頁: 33的博客? ??文章專欄分類:JavaEE?? &#x1f69a;我的代碼倉庫: 33的代碼倉庫&#x1f69a; &#x1faf5;&#x1faf5;&#x1faf5;關注我帶你了解更多進階知識 目錄 1.前言2.JVM內存區域劃分3.類加載3.1雙親委派模型 4.垃圾回收&#xff08;GC&#xff0…

【智能優化算法】粒子群優化算法(PSO)【附python實現代碼】

寫在前面&#xff1a; 首先感謝兄弟們的訂閱&#xff0c;讓我有創作的動力&#xff0c;在創作過程我會盡最大能力&#xff0c;保證作品的質量&#xff0c;如果有問題&#xff0c;可以私信我&#xff0c;讓我們攜手共進&#xff0c;共創輝煌。 路雖遠&#xff0c;行則將至&#…

【軟件設計師】下午題總結-數據流圖、數據庫、統一建模語言

下午題總結 1 試題一1.1 結構化語言 2 試題二弱實體增加權限增加實體間聯系和聯系的類型 3 試題三3.1 UML關系例子 3.2 例子&#xff08;2016上半年&#xff09;3.3 設計類分類3.3.1 接口類3.3.2 控制類3.3.3 實體類 3.4 簡答題3.4.1 簡要說明選擇候選類的原則3.4.2 某個類必須…

Kafka SSL認證

證書生成 在kafka安裝目錄下/certificates生成keystore和trust文件&#xff0c;在其中一臺機器聲生成證書&#xff0c;然后將 生成的server.keystore.jks和server.truststore.jks文件拷貝其他broker節點上去即可 1.生成keystore [rootm1 certificates]# keytool -keystore se…

Mantine UI:簡潔、靈活的 React UI 庫

介紹 Mantine UI Mantine UI 是一個由 React 驅動的現代 UI 庫&#xff0c;旨在簡化開發人員構建用戶界面的過程。它提供了一系列經過優化和可訪問的組件&#xff0c;適用于各種項目&#xff0c;從簡單的網站到復雜的應用程序。Mantine UI 的特點包括&#xff1a; 可定制性&a…

Android-okhttp調接口傳參簡單舉例

步驟1&#xff1a;在主線程中創建thread調接口 new Thread(new Runnable() {Overridepublic void run() {getServiceList();}}).start();步驟2&#xff1a;okhttp調接口 private void getServiceList(){Message msg new Message();try{OkHttpClient okHttpClient new OkHttp…

【網絡安全】網絡安全協議的重要性

一.網絡安全 1.什么是網絡安全 網絡安全&#xff08;Cyber Security&#xff09;是指網絡系統的硬件、軟件及其系統中的數據受到保護&#xff0c;不因偶然的或者惡意的原因而遭受到破壞、更改、泄露&#xff0c;系統連續可靠正常地運行&#xff0c;網絡服務不中斷。 2.網絡安…

WPF密碼輸入框明文掩碼切換

1&#xff0c;效果 2&#xff0c;代碼&#xff1a; WPF的PasswordBox不能像Winform中的PasswordBox那樣&#xff0c;通過PasswordBox.PasswordChar(char)0顯示明文。所以這里使用無外觀控件構筑掩碼明文切換。 無外觀控件遵守Themes/Generic.xaml文件配置. <ResourceDicti…