1. 程式人生 > >Linux-iptables命令

Linux-iptables命令

概述

netfilter/iptables(簡稱為iptables)組成Linux平臺下的包過濾防火牆,與大多數的Linux軟體一樣,這個包過濾防火牆是免費的,它可以代替昂貴的商業防火牆解決方案,完成封包過濾、封包重定向和網路地址轉換(NAT)等功能。

規則(rules)其實就是網路管理員預定義的條件,規則一般的定義為“如果資料包頭符合這樣的條件,就這樣處理這個資料包”。

規則儲存在核心空間的資訊包過濾表中,這些規則分別指定了源地址、目的地址、傳輸協議(如TCP、UDP、ICMP)和服務型別(如HTTP、FTP和SMTP)等。

當資料包與規則匹配時,iptables就根據規則所定義的方法來處理這些資料包,如放行(accept)、拒絕(reject)和丟棄(drop)等。配置防火牆的主要工作就是新增、修改和刪除這些規則。

鏈(chains)是資料包傳播的路徑,每一條鏈其實就是眾多規則中的一個檢查清單,每一條鏈中可以有一條或數條規則。

當一個數據包到達一個鏈時,iptables就會從鏈中第一條規則開始檢查,看該資料包是否滿足規則所定義的條件。

如果滿足,系統就會根據該條規則所定義的方法處理該資料包;否則iptables將繼續檢查下一條規則,如果該資料包不符合鏈中任一條規則,iptables就會根據該鏈預先定義的預設策略來處理資料包。

語法

iptables(選項)(引數)

選項

-t<表>:指定要操縱的表;
-A:向規則鏈中新增條目;
-D:從規則鏈中刪除條目;
-i:向規則鏈中插入條目;
-R:替換規則鏈中的條目;
-L:顯示規則鏈中已有的條目;
-F:清除規則鏈中已有的條目;
-Z:清空規則鏈中的資料包計算器和位元組計數器;
-N:建立新的使用者自定義規則鏈;
-P:定義規則鏈中的預設目標;
-h:顯示幫助資訊;
-p:指定要匹配的資料包協議型別;
-s:指定要匹配的資料包源ip地址;
-j<目標>:指定要跳轉的目標;
-i<網路介面>:指定資料包進入本機的網路介面;
-o<網路介面>:指定資料包要離開本機所使用的網路介面。

iptables命令選項輸入順序

iptables -t 表名 <-A/I/D/R> 規則鏈名 [規則號] <-i/o 網絡卡名> -p 協議名 <-sIP/源子網> --sport 源埠 <-d 目標IP/目標子網> --dport 目標埠 -j 動作

四張表

raw:高階功能,如:網址過濾。
mangle:資料包修改(QOS),用於實現服務質量。
nat:地址轉換,用於閘道器路由器。
filter:包過濾,用於防火牆規則。

我們現在用的比較多個功能有3個:
1.filter 定義允許或者不允許的
2.nat 定義地址轉換的
3.mangle功能:修改報文原資料

五條鏈

INPUT鏈:處理輸入資料包。
OUTPUT鏈:處理輸出資料包。
PORWARD鏈:處理轉發資料包。
PREROUTING鏈:用於目標地址轉換(DNAT)。
POSTOUTING鏈:用於源地址轉換(SNAT)。

這裡寫圖片描述

這裡寫圖片描述

這是NetFilter規定的五個規則鏈,任何一個數據包,只要經過本機,必將經過這五個鏈中的其中一個鏈。

  • 對於filter來講一般只能做在3個鏈上:INPUT ,FORWARD ,OUTPUT
  • 對於nat來講一般也只能做在3個鏈上:PREROUTING ,OUTPUT ,POSTROUTING
  • 而mangle則是5個鏈都可以做:PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTING

這裡寫圖片描述

動作

accept:接收資料包。

DROP:丟棄資料包。

REDIRECT:重定向、對映、透明代理。 與DROP基本一樣,區別在於它除了阻塞包之外, 還向傳送者返回錯誤資訊。

SNAT:源地址轉換,即改變資料包的源地址

DNAT:目標地址轉換,即改變資料包的目的地址

MASQUERADE:IP偽裝(NAT),用於ADSL。即是常說的NAT技術,MASQUERADE只能用於ADSL等撥號上網的IP偽裝,也就是主機的IP是由ISP分配動態的;如果主機的IP地址是靜態固定的,就要使用SNAT

LOG:日誌記錄,將符合規則的資料包的相關資訊記錄在日誌中,以便管理員的分析和排錯

iptables命令格式

這裡寫圖片描述

iptables過濾條件

這裡寫圖片描述

iptables傳輸資料包的過程

① 當一個數據包進入網絡卡時,它首先進入PREROUTING鏈,核心根據資料包目的IP判斷是否需要轉送出去。
② 如果資料包就是進入本機的,它就會沿著圖向下移動,到達INPUT鏈。資料包到了INPUT鏈後,任何程序都會收到它。本機上執行的程式可以傳送資料包,這些資料包會經過OUTPUT鏈,然後到達POSTROUTING鏈輸出。
③ 如果資料包是要轉發出去的,且核心允許轉發,資料包就會如圖所示向右移動,經過FORWARD鏈,然後到達POSTROUTING鏈輸出。

這裡寫圖片描述

例項

清除已有iptables規則

iptables -F 
iptables -X 
iptables -Z

開放指定的埠

iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT #允許本地迴環介面(即執行本機訪問本機) 
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT #允許已建立的或相關連的通行
iptables -A OUTPUT -j ACCEPT #允許所有本機向外的訪問 
 iptables -A INPUT -p tcp --dport 22 -j ACCEPT #允許訪問22埠 
 iptables -A INPUT -p tcp --dport 80 -j ACCEPT #允許訪問80埠 
 iptables -A INPUT -p tcp --dport 21 -j ACCEPT #允許ftp服務的21埠 
 iptables -A INPUT -p tcp --dport 20 -j ACCEPT #允許FTP服務的20埠 
 iptables -A INPUT -j reject #禁止其他未允許的規則訪問 
 iptables -A FORWARD -j REJECT #禁止其他未允許的規則訪問

遮蔽IP

iptables -I INPUT -s 123.45.6.7 -j DROP #遮蔽單個IP的命令 

iptables -I INPUT -s 123.0.0.0/8 -j DROP #封整個段即從123.0.0.1到123.255.255.254的命令 


iptables -I INPUT -s 124.45.0.0/16 -j DROP #封IP段即從123.45.0.1到123.45.255.254的命令 


iptables -I INPUT -s 123.45.6.0/24 -j DROP #封IP段即從123.45.6.1到123.45.6.254的命令

專案實操

使用xshell或者secucreCRT等外部訪問 10.45.7.198的2121埠,實際是訪問容器192.168.123.221的22埠,可簡單的理解為從外訪問裡。

 iptables -t nat -A PREROUTING -p tcp -d 10.45.7.198 --dport 2121-j DNAT --to-destination 192.168.123.221:22

容器的地址為172.25.243.103, 和 10.45.7.198的地址不通,但是172.25.243.103和10.45.7.197是通的,10.45.7.197和10.45.7.198是通的, 所以如果172.25.243.103想訪問10.45.7.198可以加以下規則,可簡單的理解為從裡面訪問外面

iptables -t nat -A POSTROUTING -s 172.25.243.103 -o eth0 -j SNAT --to 10.45.7.197

刪除的話,將A換成D 即可,其餘保持不變。

檢視已新增的iptables規則

iptables -L -n -v

這裡寫圖片描述

這好像查不到我在nat表增加的規則呢…..坑逼

 iptables -t nat -nL

這裡寫圖片描述

iptables -L命令還可以檢視nat表和mangle表的內容哦

iptables -L -t nat
cat /proc/net/ip_conntrack | less
iptables -F -t nat (清除NAT表)
iptables --list 檢視過濾表 (沒查到nat表中的...

刪除已新增的iptables規則

將所有iptables以序號標記顯示,執行:

iptables -L -n --line-numbers 

比如要刪除INPUT裡序號為8的規則,執行:

iptables -D INPUT 8

檢視 nat表的規則

[[email protected] ~]# iptables -t nat -L -n --line-numbers 
Chain PREROUTING (policy ACCEPT)
num  target     prot opt source               destination         
1    DNAT       tcp  --  0.0.0.0/0            10.45.7.197         tcp dpt:22013 to:172.25.243.13:22 
2    DNAT       tcp  --  0.0.0.0/0            10.45.7.197         tcp dpt:22023 to:172.25.243.23:22 
3    DNAT       tcp  --  0.0.0.0/0            10.45.7.197         tcp dpt:22033 to:172.25.243.33:22 
4    DNAT       tcp  --  0.0.0.0/0            10.45.7.197         tcp dpt:22043 to:172.25.243.43:22 
...........

Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)
num  target     prot opt source               destination         

Chain DOCKER (0 references)
num  target     prot opt source               destination         

相關推薦

Linux iptables命令詳解

flush lse pri -s als defined ren bsp his iptables命令主要是設置防火墻信息的 常見命令參數 Usage: iptables -[AD] chain rule-specification [options] ipt

Linux iptables 命令

策略 信任 情況 iptables dport pch 參數 用法 img iptables 是 Linux 管理員用來設置 IPv4 數據包過濾條件和 NAT 的命令行工具。iptables 工具運行在用戶態,主要是設置各種規則。而 netfilter 則運行在內核態,執

Linux-iptables命令

概述 netfilter/iptables(簡稱為iptables)組成Linux平臺下的包過濾防火牆,與大多數的Linux軟體一樣,這個包過濾防火牆是免費的,它可以代替昂貴的商業防火牆解決方案,完成封包過濾、封包重定向和網路地址轉換(NAT)等功

linuxiptables命令的應用與詳解

iptables 一、iptables的規則表和鏈。 表(tables)提供特定的功能,iptables內置了4個表,即filter表、nat表、mangle表和raw表,分別用於實現包過濾,網絡地址轉換、包重構(修改)和數據跟蹤處理。 鏈(chains)是數據包傳播的路徑,每一條鏈其實就是眾多規則中的

linux iptables開放/關閉端口命令

dport bsp service stat top lin restart 信息 tar #開放端口:8080/sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT#將更改進行保存/etc/rc.d/init.d/ipt

Linux iptables常用命令

原文地址:https://www.cnblogs.com/ilinuxer/p/6364064.html 目錄 0.安裝ipatbles.service 1. 基本操作 檢視 IPTABLES 版本 檢視當前 IPTABLES 規則 檢視幫助 2. iptabl

Linux iptables常用命令的使用

為什麼會有本文 因為最近幫一個朋友佈署一個上網梯子,他那邊本來用的是v2ray,但是他想用ssr,但是安裝配置ssr過程中出了很多問題,比如linux核心版本4.9有點老,不支援bbr加速、無法連線socket、啟動了連線不上等一系列問題,趁著有時間,就幫他看看,幫他升級了核心,改的防火牆…… 在修改防火牆的

linux iptables開放埠命令

#/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT #/sbin/iptables -I INPUT -p tcp --dport 22 -j ACCEPT #/sbin/iptables -I INPUT -p tcp --dport 3306 -j

Linux:iptables的基本命令以及地址偽裝

IPTABLES IPTABLES 是與最新的 3.5 版本 Linux 核心整合的 IP 資訊包過濾系統。如果 Linux 系統連線到因特網或 LAN、伺服器或連線 LAN 和因特網的代理伺服器, 則該系統有利於在 Linux 系統上更好地控制 IP 資訊包

linux 中防火牆配置 iptables 命令引數的含義介紹

原文連結 iptables防火牆可以用於建立過濾(filter)與NAT規則。所有Linux發行版都能使用iptables,因此理解如何配置iptables將會幫助你更有效地管理Linux防火牆。如果你是第一次接觸iptables,你會覺得它很複雜,但是一旦你理解iptables的工作原理,你會發現其實

Linux應用層】防火牆iptables命令

iptables四個表作用圖: iptables的四個表: raw表有2個鏈:prerouting、output mangle表有5個鏈:prerouting、postrouting、input、output、forward nat表有3個鏈:p

linux iptables常用命令之配置生產環境iptables及優化

檢視當前配置:iptables -L 防火牆配置檔案: vi /etc/sysconfig/iptables 開放80埠: /*-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j A

linux簡單命令8---軟件包安裝

yum安裝 .com 軟件包 rpm http span 軟件包安裝 image size 1:使用yum安裝,它不能包查詢和包校驗。它安裝的是RPM格式文件。沒有yum文件 ------------------------------------------

linux簡單命令10---權限

9.png alt 簡單 技術 size 設置 useradd ges img 1:文件權限設置 數字的用法:chmod 755 文件名 ---------------------------------------------下面是文件權限-------

linux cp命令的覆蓋

cp linux系統定義了別名alias cp=‘cp -i‘-i, --interactive prompt before overwrite (overrides a previous -n option) 交互確認直

LINUX基礎命令

特殊符號 change linux touch 程序 1、mkdir 創建目錄 make directory2、cd 目錄切換 change directory3、touch 創建文件4、pwd 查看當前路徑5、vi 編輯普通文件;6、vim 編程序7、tab 命令路徑補全功能8、

Linux常用命令

log rep 移動 文件權限 查看 his 問題 文件 學習 以下是本人在工作中常用到的Linux命令,記錄下來,方便日常工作學習查用翻閱。 Git管理代碼 【系統操作】 cd 進入目錄 cd ~ 回到根目錄 ls 查看當前目錄下的文件 less 查看某個文件內

Linux常用命令總結

bashrc 命令 配置環境 bit stat 用戶權限 復制 rtu one Linux文件的目錄結構:樹狀結構,/為最高的根目錄 root:root用戶的個人文件夾(家目錄) bin:存放多數用戶可用的命令 boot:存放啟動文件和

linux arp 命令清除dns cache

詳細 ice color int proto -s 緩存 可能 hostname 概述 arp命令用於管理和查看內核ipv4網絡ARP緩存。它可用於向緩存表中添加和刪除記錄。ARP是地址解析協議(Address Resolution Protocol)的縮寫,用

Linux基礎命令之grep

模式匹配 lin 大小寫 表達式 ignore col -c 分組 nbsp grep : 根據pattern(模式)搜索文本,並將符合模式的文本行顯示出來,並不會修改原文件。 用法: grep [options] ‘ pattern ‘ /file #