iptables學習筆記

iptables的結構:

iptables由上而下,由Tables,Chains,Rules組成。

一、iptables的表tables與鏈chains

iptables有Filter, NAT, Mangle, Raw四種內建表:

1. Filter表

Filter是iptables的默認表,它有以下三種內建鏈(chains):

INPUT鏈?– 處理來自外部的數據。

OUTPUT鏈?– 處理向外發送的數據。

FORWARD鏈?– 將數據轉發到本機的其他網卡設備上。

2. NAT表

NAT表有三種內建鏈:

PREROUTING鏈?– 處理剛到達本機并在路由轉發前的數據包。它會轉換數據包中的目標IP地址(destination ip address),通常用于DNAT(destination NAT)。

POSTROUTING鏈?– 處理即將離開本機的數據包。它會轉換數據包中的源IP地址(source ip address),通常用于SNAT(source NAT)。

OUTPUT鏈?– 處理本機產生的數據包。

3. Mangle表

Mangle表用于指定如何處理數據包。它能改變TCP頭中的QoS位。Mangle表具有5個內建鏈(chains):

  • PREROUTING

  • OUTPUT

  • FORWARD

  • INPUT

  • POSTROUTING


4. Raw表

Raw表用于處理異常,它具有2個內建鏈:

PREROUTING chain

OUTPUT chain

5.小結

二、IPTABLES 規則(Rules)

規則的關鍵知識點:

Rules包括一個條件和一個目標(target)

如果滿足條件,就執行目標(target)中的規則或者特定值。

如果不滿足條件,就判斷下一條Rules。

目標值(Target Values)

在target里指定的特殊值:

ACCEPT?– 允許防火墻接收數據包

DROP?– 防火墻丟棄包

QUEUE?– 防火墻將數據包移交到用戶空間

RETURN?– 防火墻停止執行當前鏈中的后續Rules,并返回到調用鏈(the calling chain)中。

實戰

1.丟棄80端口的tcp連接

iptables -t filter -I INPUT -p tcp --dport 80 -j DROP

2.丟棄ssh不需要的包

iptables -A OUTPUT -p tcp --sport 22 -m state --state ESTABLISHED,RELATED -j ACCEPT
  • -m state --state ESTABLISHED,RELATED?是一個iptables規則中的匹配條件,用于匹配特定的連接狀態。這個條件允許通過已建立或相關狀態的連接。在iptables中,連接狀態用于確定數據包在網絡連接中的當前狀態,以便過濾器可以根據這些狀態來決定是否允許或拒絕數據包通過。

    • ESTABLISHED:表示數據包屬于已建立的連接,即已經通過三次握手建立起連接的數據包。

    • RELATED:表示數據包與已建立的連接相關,例如某些協議(如FTP)會在數據連接之外建立一個控制連接,這些數據包就可以被標記為RELATED狀態。

    通過在輸出鏈中添加這個條件,你的iptables規則將允許出站SSH連接的響應數據包通過,確保SSH會話的正常運行。

3. 阻止無效的出站HTTP連接(80端口)

iptables -A OUTPUT -p tcp --sport 80 -m state --state NEW -j DROP

new 代表tcp三次握手中的第一次握手

這種連接狀態的匹配可用于識別尚未建立的連接,從而可以應用適當的策略來控制是否允許它們通過防火墻。

在你的情景中,-m state --state NEW -j DROP?這樣的規則將阻止新建立的、未經請求回應的連接通過,幫助增加服務器的安全性。這樣做可以防止未經授權的數據流量進入服務器。

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

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

相關文章

LVGL基本控件介紹

1. 弧(lv_arc) 特點 弧的0度在右邊,90度在下邊 效果圖 源碼 void lv_arc_demo(void) {/* Create an Arc */lv_obj_t* arc lv_arc_create(lv_scr_act(), NULL);/* Set Background range */lv_arc_set_bg_angles(arc, 0, 360);/* Set Forward range */lv_arc_set…

第十課:Qt 字符編碼和中文亂碼相關問題

功能描述:最全的 Qt 字符編碼相關知識以及中文亂碼的原因與解決辦法 一、字符編碼種類 ASCII 碼 美國人對信息交流的編碼,包括 26 個字母(大小寫)、數字和標點符號等,用一個字節(8 位)表示這些…

eNSP:VLAN-hybrid實驗應用

實驗要求: 拓撲圖 配置 sw1: [sw1]vlan batch 2 to 6[sw1]int Ethernet 0/0/2 [sw1-Ethernet0/0/2]port link-type access [sw1-Ethernet0/0/2]port default vlan 2 [sw1-Ethernet0/0/2]int e 0/0/4 [sw1-Ethernet0/0/4]port link-ty access [sw1-Ethernet0/0/…

74最新提案

最新提案 [do 表達式](https://es6.ruanyifeng.com/#docs/proposals#do 表達式)[throw 表達式](https://es6.ruanyifeng.com/#docs/proposals#throw 表達式)函數的部分執行管道運算符Math.signbit()雙冒號運算符[Realm API](https://es6.ruanyifeng.com/#docs/proposals#Realm…

springBoot 配置文件 spring.mvc.throw-exception-if-no-handler-found 參數的作用

在Spring Boot應用中,可以通過配置文件來控制當找不到請求處理器(handler)時是否拋出異常。具體的配置參數是spring.mvc.throw-exception-if-no-handler-found。 默認情況下,該參數的值為false,即當找不到請求處理器時…

《Zookeeper》源碼分析(十四)之 投票是如何發送與接收的

目錄 MessengerWorkerSenderWorkerReceiver第5步:檢驗選票的epoch和version第6步:處理投票 Messenger Messenger管理接收到的消息以及待發送的消息,其源碼如下: 它的源碼比較簡單,接下來著重介紹它維護的兩個線程&a…

Docker 網絡之 ipvlan 和 macvlan

Docker ipvlan 和 macvlan 引言 本文講解了Docker 網絡模式中的 ipvlan 和 macvlan 的區別,目前自己在生產環境中使用的 ipvlan 模式非常問題.也解決了實際業務問題. IPvlan L2 mode example ipvlan 無需網卡混雜模式 , 運行如下命令后可以生成一個 vlan 子接口 , 會和主網卡…

ElasticSearch的客戶端操作

ElasticSearch的客戶端操作 1、客戶端介紹 官方文檔地址: https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html 實際開發中,有多種方式操作Elasticsearch: 客戶端工具:發送http請求(RESTful風格)操作…

CF1195E OpenStreetMap 題解

很好的單調隊列題。 題目傳送門 題目意思: 給定一個 n m n\times m nm 的矩陣,求出所有大小為 a b a\times b ab 的子矩形中的最小值的和。 思路: 通過題目給的要求建立二維數組 h h h。通過單調隊列一行一行地掃,將掃出來…

Azure Blob存儲使用

創建存儲賬戶,性能選擇標準即可,冗余選擇本地冗余存儲即可 容器選擇類別選擇專用即可 可以上傳文件到blob中 打開文件可以看到文件的訪問路徑 4.編輯中可以修改文件 復制鏈接,嘗試訪問,可以看到沒有辦法訪問,因為創建容器的時候選…

spring(15) SpringBoot啟動過程

目錄 一、過程簡介二、過程流程圖三、源碼分析1、運行 SpringApplication.run() 方法2、確定應用程序類型3、加載所有的初始化器4、加載所有的監聽器5、設置程序運行的主類6、開啟計時器7、將 java.awt.headless 設置為 true8、獲取并啟用監聽器9、設置應用程序參數10、準備環境…

LeetCode450. 刪除二叉搜索樹中的節點

450. 刪除二叉搜索樹中的節點 文章目錄 [450. 刪除二叉搜索樹中的節點](https://leetcode.cn/problems/delete-node-in-a-bst/)一、題目二、題解方法一:遞歸(一種麻煩的方法)方法二:優化后的遞歸 一、題目 給定一個二叉搜索樹的根…

SpringBoot校驗,DTO文件中常用的注解應用案例.

在觀看本篇文章之前,可以先參考我之前寫的一篇文章 “ Spring5,Service層對DTO文件進行數據格式校驗. ” ,這篇文章是介紹在 Service層 對DTO文件的校驗。 以下方的 CompanyDTO 文件為例,講解不同的注解使用場景,以及…

論文閱讀——Imperceptible Adversarial Attack via Invertible Neural Networks

Imperceptible Adversarial Attack via Invertible Neural Networks 作者:Zihan Chen, Ziyue Wang, Junjie Huang*, Wentao Zhao, Xiao Liu, Dejian Guan 解決的問題:雖然視覺不可感知性是對抗性示例的理想特性,但傳統的對抗性攻擊仍然會產…

每天一道leetcode:1129. 顏色交替的最短路徑(圖論中等廣度優先遍歷)

今日份題目: 給定一個整數 n,即有向圖中的節點數,其中節點標記為 0 到 n - 1。圖中的每條邊為紅色或者藍色,并且可能存在自環或平行邊。 給定兩個數組 redEdges 和 blueEdges,其中: redEdges[i] [ai, bi…

Dubbo Spring Boot Starter 開發微服務應用

環境要求 系統:Windows、Linux、MacOS JDK 8 及以上(推薦使用 JDK17) Git IntelliJ IDEA(可選) Docker (可選) 項目介紹 在本任務中,將分為 3 個子模塊進行獨立開發&#xff…

LINUX學習筆記_GIT操作命令

LINUX學習筆記 GIT操作命令 基本命令 git init:初始化倉庫git status:查看文件狀態git add:添加文件到暫存區(index)git commit -m “注釋”:提交文件到倉庫(repository)git log&a…

計算機組成與設計 Patterson Hennessy 筆記(一)MIPS 指令集

計算機的語言:匯編指令集 也就是指令集。本書主要介紹 MIPS 指令集。 匯編指令 算數運算: add a,b,c # abc sub a,b,c # ab-cMIPS 匯編的注釋是 # 號。 由于MIPS中寄存器大小32位,是基本訪問單位,因此也被稱為一個字 word。M…

Java Web常見面試題

1、JSP和Servlet有什么區別 jsp經過編譯后變成類Servlet(JSP的本質就是Servelt,JVM只能識別java的類,不能識別jsp的代碼,于是web容器將jsp的代碼編譯成JVM能夠識別的java類,也就是servelt)jsp更擅長表現于…

【2023年11月第四版教材】《第5章-信息系統工程之系統集成(第四部分)》

《第5章-信息系統工程之系統集成(第四部分)》 3 系統集成3.1網絡集成3.2 數據集成3.3 軟件集成3.4 應用集成3.5 安全工程 3 系統集成 3.1網絡集成 安全對策要點傳輸子系統1.常用的無線傳輸介質主要包括無線電波、微波、紅外線等2.常用的有線傳輸介質主…