在Linux中,Iptables能做什么?

概述

背景說明

在運維工作中,Iptables是一個不可或缺的工具,它提供了強大的網絡流量控制和管理能力。

問題呈現

  1. iptables是一個不可獲取的工具,你對其了解多少?
  2. 該工具你是否真的會用?
  3. 詳細功能對應的應用場景你是否知曉?

具體呈現

1. 訪問控制

iptables最核心功能是控制網絡流量的進出,允許或拒絕特定的流量,可通過定義規則從而實現:

  1. 允許或拒絕特定IP地址

    • 允許特定IP地址訪問服務器:
      iptables -A input -s 192.168.1.100 -j ACCEPT
      
    • 拒絕特定IP地址訪問服務器:
      iptables -A input -s 1.2.3.4 -j drop
      
  2. 端口訪問控制

    • 允許特定端口的流量(如SSH、HTTP、HTTPS)
      iptables -A input -p tcp --dport 22 -j accept
      iptables -A input -p tcp --dport 80 -j accept
      iptables -A input -p tcp --dport 443 -j accept
      
    • 拒絕所有未明確允許的流量:
      iptables -A input -j drop
      
  3. 基于協議的訪問控制

  • 允許ICMS(ping)流量:
    iptables -A input -p imcp -j accept
    
  • 拒絕所有upd流量:
    iptables -A input -p udp -j drop
    

2. NAT(網絡地址轉換)

iptables支持NAT功能,主要用于實現私有網絡與公網之間的通信。

  1. SNAT(源地址轉換)
    • 將內網流量轉換為公網IP
      iptables -t nat -A postrouting -s 192.168.1.0/24 -o eth0 -j masquerade
      
      適用于家庭或企業網絡的出口網關。
  2. DNAT(目標地址轉移)
    • 將外部流量轉發到內網服務器
      iptables -t nat -A prerouting -p tcp --dport 80 -j DNAT --to-destination 192.168.1.100:80
      
      適用于將公網流量轉發到內網的web服務器。

3. 防止網絡攻擊

iptables可以通過規則限制來防范常見的網絡攻擊。

  1. 防止SYN Flood攻擊
    • 限制每秒的 SYN數據包數量
      	iptables -A input -p tcp --syn -m limit --limit 1/sec -j accept
      
  2. 防止端口掃描
    • 限制對特定端口的掃描行為:
      iptables -A INPUT -p tcp --dport 22 -m recent --set --name SSH --rsource
      iptables -A INPUT -p tcp --dport 22 -m recent --update --seconds 60 --hitcount 5 --name SSH --rsource -j DROP
      
  3. 防止暴力破解
    • 限制失敗登錄嘗試的頻率:
      iptables -A input -p tcp --dport 22 -m fail12ban-ssh -j drop
      

4. 流量監控與統計

iptables可以記錄和統計流量信息,幫助運維人員了解網絡使用情況

  1. 日志記錄
    • 將匹配的流量記錄到日志文件
      	iptables -A input -p tcp --dport 22 -j log --log-prefix "ssh sccess:"
      
  2. 流量統計
    • 統計特定流量:
      iptables -A input -p tcp --dport 80
      iptables -L -v -n
      

5. 負載均衡

iptables可以簡單的輪詢算法實現負載均衡功能,將流量分發到多個后端服務器。

  1. 簡單輪詢負載均衡
    • 將http流量分發到多個后端服務器
      iptables -t nat -A PREROUTING -p tcp --dport 80 -m nth --counter 0 --every 2 --packet 0 -j DNAT --to-destination 192.168.1.100:80
      iptables -t nat -A PREROUTING -p tcp --dport 80 -m nth --counter 0 --every 2 --packet 1 -j DNAT --to-destination 192.168.1.101:80
      

6. 透明代理

iptables可以將流量重定向到本地的代理服務器,實現透明代理功能。

  1. 將http流量重定向到本地代理服務器
    iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3128
    

7. 數據包修改

將進入的數據包的 TTL 值修改為特定值:

iptables -t mangle -A prerouting -j ttl --ttl-set 64

8. 連接跟蹤

iptables 可以跟蹤連接狀態,并根據連接狀態進行操作。

iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

9. 限制特定IP的下載速度

iptables -A FORWARD -s 192.168.1.100 -p tcp --dport 80 -m quota --quota 1000000 -j ACCEPT
iptables -A FORWARD -s 192.168.1.100 -p tcp --dport 80 -j DROP

使用腳本管理規則

#!/bin/bash# 清空現有規則
iptables -F
iptables -X# 設置默認策略
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT# 允許已建立的連接
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT# 允許 SSH 和 HTTP 訪問
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT# 日志記錄
iptables -A INPUT -j LOG --log-prefix "Blocked: "# 保存規則
iptables-save > /etc/iptables/rules.v4

總結

iptables 能夠實現以下功能:

  1. 訪問控制:允許/拒絕特定流量。
  2. NAT功能:實現私有網絡與公網的通信。
  3. 安全防護:防止網絡攻擊,如 SYN Flood 和端口掃描。
  4. 負載均衡:將流量分發到多個后端服務器。
  5. 透明代理:將流量重定向到代理服務器。
  6. 數據包修改:修改 TTL/IP地址。
  7. 連接跟蹤:根據連接狀態進行操作。
  8. 流量統計與監控:記錄和分析流量信息。
  9. 帶寬限制:控制特定流量的帶寬。

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

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

相關文章

Linux——linux的基本命令

目錄 一、linux的目錄結構 二、絕對路徑和相對路徑 三、文件類型(linux下所有東西都可看作文件) 四、文件的權限 五、文件權限的修改(chmod) 六、linux常用的命令 七、文件查看命令 八、文件編輯命令 九、文件壓縮與解壓…

智慧水利數字孿生解決方案:百川孿生智領千行,100+標桿案例賦能智慧水利全域升級

在數字技術革命與產業變革深度交織的浪潮下,智慧水利作為保障國家水安全、推動水利高質量發展的核心載體,正以數字孿生技術為引擎,驅動水利行業從“經驗驅動”向“數據驅動”轉型。 山東融谷作為智慧水利數字孿生領域的創新實踐者&#xff0c…

深入解析ID3算法:信息熵驅動的決策樹構建基石

本文來自「大千AI助手」技術實戰系列,專注用真話講技術,拒絕過度包裝。 ID3(Iterative Dichotomiser 3) 是機器學習史上的里程碑算法,由Ross Quinlan于1986年提出。它首次將信息論引入決策樹構建,奠定了現代…

Java解析audio時長

前提需要電腦上先安裝后ffmpeg public long parseDuration(String audioPath) {long durationMs -1;try {Process process Runtime.getRuntime().exec("ffprobe " audioPath);// InputStream is process.getInputStream();InputStream is process.getErrorStrea…

python學智能算法(十五)|機器學習樸素貝葉斯方法進階-CountVectorizer多文本處理

【1】引言 前序學習進程中,已經學習CountVectorizer文本處理的簡單技巧,先相關文章鏈接為: python學智能算法(十四)|機器學習樸素貝葉斯方法進階-CountVectorizer文本處理簡單測試-CSDN博客 此次繼續深入&#xff0…

AiPy 監控視頻智能監察:人像一鍵抽取+可反復執行程序落地

兄弟們,不知道你們有沒有過查監控的經歷,雖然現在監控攝像頭是越來越多,硬盤越塞越滿,但真出了事兒,回放查錄像堪比大海撈針!純人工一幀幀的去找,能把眼睛盯瞎還是人影都找不到。不過我最近搞了…

期貨反向跟單-終止盤手合作原則(二)

在期貨反向跟單的領域中,數據就是實打實的真金白銀,是策略能否持續盈利的核心價值所在。然而,許多團隊在實際運營過程中,都遭遇了相似的困境:期初策略運轉良好,可隨著時間推移,數據表現卻每況愈…

【Unity】MiniGame編輯器小游戲(三)馬賽克【Mosaic】

更新日期:2025年6月17日。 項目源碼:后續章節發布 索引 馬賽克【Mosaic】一、游戲最終效果二、玩法簡介三、正式開始1.定義游戲窗口類2.規劃游戲窗口、視口區域3.地圖方塊陣列①.定義方塊結構體②.生成方塊陣列③.計算九宮格黑色方塊數量④.排除任意九宮…

基于深度學習的智能圖像質量評估系統:技術與實踐

前言 在數字圖像處理和計算機視覺領域,圖像質量評估(Image Quality Assessment, IQA)是一個重要的研究方向。圖像質量評估的目標是通過算法自動評估圖像的質量,包括清晰度、對比度、噪聲水平等。傳統的圖像質量評估方法主要依賴于…

【Golang面試題】Go語言實現請求頻率限制

Go語言實現請求頻率限制:從計數器到令牌桶的完整指南 在實際開發中,接口被惡意刷請求是常見問題。本文將深入探討Go語言中四種主流的請求限流方案,從簡單到復雜逐步深入,助你構建高可用服務。 一、基礎方案:計數器法…

11Labs 增長負責人分享:企業級市場將從消費級或開發者切入丨Voice Agent 學習筆記

本文摘自 Founder Park AI 產品如何做增長,ElevenLabs的案例很值得學習。 專注于 AI 語音生成的獨角獸企業 ElevenLabs 可以說一直在高速增長。在今年 1 月完成 1.8 億美元 C 輪融資后,ElevenLabs 的估值突破 30 億,直指 33 億美元。2024 年…

Linux 命令:grep

概述 在Linux系統里,grep是一款十分實用的命令行工具,它主要用于在文件或者輸入流中搜索符合特定模式的文本。下面為你詳細介紹它的用法。資料已經分類整理好:https://pan.quark.cn/s/26d73f7dd8a7 基本語法 grep [選項] 搜索模式 [文件..…

Java八股文——MySQL「架構篇」

MySQL主從復制了解嗎 面試官您好,我了解MySQL的主從復制。它是構建高可用、高可擴展數據庫架構的核心基石。 1. 主從復制的核心原理與流程 整個主從復制的過程,就是一場圍繞 binlog(二進制日志) 的“接力賽”。這個過程主要可以…

ubuntu下python版本升級導致pyqt不能正常運行解決

最終解決方案 ubuntu下多python版本pyqt兼容性問題解決 python3.9 -m pip install --upgrade --force-reinstall --prefer-binary pyqt5)嘗試解決方案一(失敗) 系統默認python版本可以,其他版本不行 sudo apt install pyqt5-dev-tools嘗試解決方案二(失敗) 一直…

AIGC工具平臺-VideoRetalking音頻對口型數字人

唇形合成技術正逐漸成為AIGC內容生產領域的重要工具,能夠實現音視頻數據的高度融合。基于VideoRetalking模塊的可視化界面降低了技術門檻,使非技術背景的用戶也能便捷體驗唇形驅動數字人合成的流程。 本文重點解析該模塊的使用方式及開發流程&#xff0…

前端項目如何部署為https

如何為項目部署設置HTTPS 設置HTTPS是保護網站數據傳輸安全的重要步驟。以下是設置HTTPS的主要方法: 1. 獲取SSL/TLS證書 免費證書選項 Let’s Encrypt:最流行的免費證書頒發機構Cloudflare:提供免費SSL和CDN服務ZeroSSL:另一…

nginx 配置 系統升級頁面

默認80端口配置如下: server {listen 80; # 指定端口號server_name 192.168.2.96; # 替換為實際域名或IP# 全局重定向到升級頁面(排除自身防循環)if ($request_uri !~* "/upgrade.html") {return 307 /upgrade.html; # 臨時重定…

計算機基礎(一)——設計模式

一、設計模式 設計模式(Design Patterns)是軟件開發中反復出現問題的解決方案的通用描述。 它是經過總結、提煉的高效代碼結構和設計方案,幫助開發者寫出更靈活、可維護和可擴展的代碼。 優點注意點規范代碼結構,提高開發效率設…

Mac電腦 磁盤檢測和監控工具 DriveDx

DriveDx Mac 一款不監視驅動器的內置S.M.A.R.T.狀態的先進驅動器運行狀況診斷和監測工具。 還分析了所有驅動器健康密切相關的指標, SSD或硬盤驅動器故障(像SSD磨損 /耐久性,壞扇區重新分配,離線壞道,未定扇形區&…

頻繁操作Json嵌套數據PostgreSQL配合JSON操作工具類+sql

文章目錄 1.工具類2.依賴3.sql 本文檔只是為了留檔方便以后工作運維,或者給同事分享文檔內容比較簡陋命令也不是特別全,不適合小白觀看,如有不懂可以私信,上班期間都是在得 背景:因為頻繁操作json嵌套數據 PostgreSQL得…