iptables五表五鏈及對應實例

来源:https://www.cnblogs.com/ydswin/p/18062999
-Advertisement-
Play Games

iptables是Linux系統上用於配置網路包過濾規則的工具,它使用表(tables)和鏈(chains)來組織規則。以下是iptables中的五表五鏈及其對應的實例說明: 五表 filter表:預設表,用於過濾數據包,允許或拒絕數據包通過。它包含INPUT、OUTPUT和FORWARD三個鏈。 ...


iptables是Linux系統上用於配置網路包過濾規則的工具,它使用表(tables)和鏈(chains)來組織規則。以下是iptables中的五表五鏈及其對應的實例說明:

五表

  1. filter表:預設表,用於過濾數據包,允許或拒絕數據包通過。它包含INPUT、OUTPUT和FORWARD三個鏈。
  2. nat表:用於網路地址轉換(NAT),例如埠轉發和地址轉換。它包含PREROUTING、POSTROUTING和OUTPUT三個鏈。註意,雖然OUTPUT鏈在nat表中存在,但實際上在iptables中,OUTPUT鏈通常只用於filter表和mangle表。在nat表中,OUTPUT鏈很少使用,因為對於從本機發出的數據包,其源地址轉換通常在路由選擇之前就已經確定了。
  3. mangle表:用於修改數據包的各種屬性,例如TTL(Time To Live)或TOS(Type of Service)欄位。它也包含PREROUTING、POSTROUTING、INPUT、OUTPUT和FORWARD五個鏈。
  4. raw表:用於處理數據包的連接追蹤,通常與mangle表結合使用來實現一些特殊功能。它包含PREROUTING和OUTPUT兩個鏈。
  5. security表:用於強制訪問控制(MAC)的網路安全策略(註:這實際上是IPsec功能的一部分,但在許多iptables實現中並不常用或並不直接支持)。security表並不常用,而且其具體的鏈和用法可能因不同的系統或iptables版本而有所不同。

五鏈

  1. INPUT鏈:處理進入本機的數據包。
  2. OUTPUT鏈:處理從本機發出的數據包。
  3. FORWARD鏈:處理需要本機轉發的數據包(即本機作為路由器時)。
  4. PREROUTING鏈:在進行路由選擇之前修改數據包,如DNAT(Destination NAT,目的網路地址轉換)。
  5. POSTROUTING鏈:在進行路由選擇之後修改數據包,如SNAT(Source NAT,源網路地址轉換)。

實例

filter表實例

# 允許來自任何地方的SSH連接  
iptables -A INPUT -p tcp --dport 22 -j ACCEPT  
  
# 拒絕來自192.168.1.0/24網路的所有輸入流量  
iptables -A INPUT -s 192.168.1.0/24 -j DROP  
  
# 允許本地迴環地址的流量  
iptables -A INPUT -i lo -j ACCEPT  
  
# 設置預設策略為拒絕所有輸入流量  
iptables -P INPUT DROP

nat表實例

# 將到達本機的80埠的流量轉發到內部伺服器192.168.1.100的8080埠  
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.1.100:8080  
  
# 修改從本機發出的流量的源地址為1.2.3.4(需要內核支持及路由設置)  
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j SNAT --to-source 1.2.3.4

mangle表實例

# 修改TTL值為64  
iptables -t mangle -A PREROUTING -p tcp --tcp-flags SYN SYN -j TCPMSS --clamp-mss-to-pmtu  
iptables -t mangle -A POSTROUTING -p tcp --tcp-flags SYN SYN -j TCPMSS --set-mss 1460  
  
# 這是一個較為複雜的例子,實際中TCPMSS的用法可能會有所不同

raw表實例

# 關閉NAT表上的連接追蹤功能,加速某些特定類型的數據包(例如ICMP)  
iptables -t raw -A PREROUTING -p icmp -j NOTRACK

請註意,以上命令應在具有相應許可權(通常是root)的情況下運行,並且需要根據具體的網路環境和需求進行調整。

關於security表,由於其實際在iptables中的使用較少,且主要與IPsec和網路安全策略配置相關,這裡不提供具體的實例。如果需要對這部分進行深入瞭解,建議查閱專門的IPsec和網路安全文檔。

另外,這些規則預設不會永久保存,系統重啟後會丟失。若需永久保存iptables規則,可以使用iptables-saveiptables-restore命令,或者在某些發行版中使用特定的服務或腳本來處理規則的保存和載入。

本文來自博客園,作者:dashery,轉載請註明原文鏈接:https://www.cnblogs.com/ydswin/p/18062999


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • STM32標準庫定時器輸入捕獲 1.輸入捕獲介紹 輸入捕獲為STM32定時器的一個功能,可以用來測量輸入信號的頻率和占空比。 具體原理:當輸入信號經過比較捕獲通道時,STM32會依據通道的極性設置決定是否觸發捕獲中斷TIM_IT_CCx。此時定時器會將當前計數值TIMx->CNT的值保存在TIMx- ...
  • 如題,在使用Pyinstaller庫打包過程中,如果遇到IndexError:tuple index out of range,不必驚慌,本質上是庫函數在傳參過程中出現異常 下麵是解決方案: 找到..\envs\steamlit\lib\dis.py這個文件。 如果你是用的虛擬環境,比如conda, ...
  • 1. 查看防火牆狀態:active (running) 即是開啟狀態 systemctl status firewalld 2. 如果不是顯示 active 狀態,需要打開防火牆 # 啟動 systemctl start firewalld # 查看狀態 systemctl status firew ...
  • 1、準備材料 正點原子stm32f407探索者開發板V2.4 STM32CubeMX軟體(Version 6.10.0) Keil µVision5 IDE(MDK-Arm) 野火DAP模擬器 2、學習目標 瞭解 FreeRTOS 相關知識,並熟悉使用 STM32CubeMX 軟體配置 FreeRT ...
  • 前幾天遇到一個使用情景,需要從一個包含各個讀取代碼文件路徑及名字的文件中把文件路徑提取出來,做一個filelist,這裡用到了文本的提取和替換,這裡做個小總結記錄一下。 從網上找了一個作者寫的代碼用來練習。 module asyn_fifo #( //parameter declaration pa ...
  • 痞子衡嵌入式半月刊: 第 94 期 這裡分享嵌入式領域有用有趣的項目/工具以及一些熱點新聞,農曆年分二十四節氣,希望在每個交節之日準時發佈一期。 本期刊是開源項目(GitHub: JayHeng/pzh-mcu-bi-weekly),歡迎提交 issue,投稿或推薦你知道的嵌入式那些事兒。 上期回顧 ...
  • 蓬萊enclave-spmp 編譯和運行說明 蓬萊是一個RISC-V TEE系統,其設計具有安全性,高性能和可擴展性。基於PMP的OpenSBI版本的蓬萊Enclave使用可以參考下文,具體倉庫地址為:https://github.com/Penglai-Enclave/Penglai-Enclav ...
  • 一.找回root密碼 找到以““Linux16”開頭內容所在的行數”,在行的最後面輸入:init=/bin/sh 輸完紅色命令後 Ctrl + X 命令 接下來在游標閃爍處,輸入指令:mount -o remount,rw /(註意:各個單詞間有空格) 游標閃爍的位置中,輸入passwd,輸入一次密 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...