溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Linux的iptables命令有什么用

發(fā)布時(shí)間:2022-02-09 09:22:37 來源:億速云 閱讀:143 作者:iii 欄目:開發(fā)技術(shù)

這篇文章主要介紹“Linux的iptables命令有什么用”,在日常操作中,相信很多人在Linux的iptables命令有什么用問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Linux的iptables命令有什么用”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

Linux常用命令iptables命令 是Linux上常用的防火墻軟件,是netfilter項(xiàng)目的一部分。可以直接配置,也可以通過許多前端和圖形界面配置。

Linux的iptables命令有什么用

iptables

Linux上常用的防火墻軟件

補(bǔ)充說明

  • 補(bǔ)充說明

    • 語法

    • 選項(xiàng)

  • 基本參數(shù)

    • 清空當(dāng)前的所有規(guī)則和計(jì)數(shù)

    • 配置允許ssh端口連接

    • 允許本地回環(huán)地址可以正常使用

    • 設(shè)置默認(rèn)的規(guī)則

    • 配置白名單

    • 開啟相應(yīng)的服務(wù)端口

    • 保存規(guī)則到配置文件中

    • 列出已設(shè)置的規(guī)則

    • 清除已有規(guī)則

    • 刪除已添加的規(guī)則

    • 開放指定的端口

    • 屏蔽IP

    • 指定數(shù)據(jù)包出去的網(wǎng)絡(luò)接口

    • 查看已添加的規(guī)則

    • 啟動(dòng)網(wǎng)絡(luò)轉(zhuǎn)發(fā)規(guī)則

    • 端口映射

    • 字符串匹配

    • 阻止Windows蠕蟲的攻擊

    • 防止SYN洪水攻擊

    • 命令選項(xiàng)輸入順序

    • 工作機(jī)制

    • 防火墻的策略

    • 防火墻的策略

    • 實(shí)例

語法

 iptables(選項(xiàng))(參數(shù))

選項(xiàng)

 -t, --table table 對指定的表 table 進(jìn)行操作, table 必須是 raw, nat,filter,mangle 中的一個(gè)。如果不指定此選項(xiàng),默認(rèn)的是 filter 表。 
 # 通用匹配:源地址目標(biāo)地址的匹配 -p:指定要匹配的數(shù)據(jù)包協(xié)議類型; -s, --source [!] address[/mask] :把指定的一個(gè)/一組地址作為源地址,按此規(guī)則進(jìn)行過濾。當(dāng)后面沒有 mask 時(shí),address 是一個(gè)地址,比如:192.168.1.1;當(dāng) mask 指定時(shí),可以表示一組范圍內(nèi)的地址,比如:192.168.1.0/255.255.255.0。 -d, --destination [!] address[/mask] :地址格式同上,但這里是指定地址為目的地址,按此進(jìn)行過濾。 -i, --in-interface [!]  :指定數(shù)據(jù)包的來自來自網(wǎng)絡(luò)接口,比如最常見的 eth0 。注意:它只對 INPUT,F(xiàn)ORWARD,PREROUTING 這三個(gè)鏈起作用。如果沒有指定此選項(xiàng), 說明可以來自任何一個(gè)網(wǎng)絡(luò)接口。同前面類似,"!" 表示取反。 -o, --out-interface [!]  :指定數(shù)據(jù)包出去的網(wǎng)絡(luò)接口。只對 OUTPUT,F(xiàn)ORWARD,POSTROUTING 三個(gè)鏈起作用。 
 # 查看管理命令 -L, --list [chain] 列出鏈 chain 上面的所有規(guī)則,如果沒有指定鏈,列出表上所有鏈的所有規(guī)則。 
 # 規(guī)則管理命令 -A, --append chain rule-specification 在指定鏈 chain 的末尾插入指定的規(guī)則,也就是說,這條規(guī)則會被放到最后,最后才會被執(zhí)行。規(guī)則是由后面的匹配來指定。 -I, --insert chain [rulenum] rule-specification 在鏈 chain 中的指定位置插入一條或多條規(guī)則。如果指定的規(guī)則號是1,則在鏈的頭部插入。這也是默認(rèn)的情況,如果沒有指定規(guī)則號。 -D, --delete chain rule-specification -D, --delete chain rulenum 在指定的鏈 chain 中刪除一個(gè)或多個(gè)指定規(guī)則。 -R num:Replays替換/修改第幾條規(guī)則 
 # 鏈管理命令(這都是立即生效的) -P, --policy chain target :為指定的鏈 chain 設(shè)置策略 target。注意,只有內(nèi)置的鏈才允許有策略,用戶自定義的是不允許的。 -F, --flush [chain] 清空指定鏈 chain 上面的所有規(guī)則。如果沒有指定鏈,清空該表上所有鏈的所有規(guī)則。 -N, --new-chain chain 用指定的名字創(chuàng)建一個(gè)新的鏈。 -X, --delete-chain [chain] :刪除指定的鏈,這個(gè)鏈必須沒有被其它任何規(guī)則引用,而且這條上必須沒有任何規(guī)則。如果沒有指定鏈名,則會刪除該表中所有非內(nèi)置的鏈。 -E, --rename-chain old-chain new-chain :用指定的新名字去重命名指定的鏈。這并不會對鏈內(nèi)部造成任何影響。 -Z, --zero [chain] :把指定鏈,或者表中的所有鏈上的所有計(jì)數(shù)器清零。 
 -j, --jump target  :即滿足某條件時(shí)該執(zhí)行什么樣的動(dòng)作。target 可以是內(nèi)置的目標(biāo),比如 ACCEPT,也可以是用戶自定義的鏈。 -h:顯示幫助信息;

基本參數(shù)

參數(shù)作用
-P設(shè)置默認(rèn)策略:iptables -P INPUT (DROP
-F清空規(guī)則鏈
-L查看規(guī)則鏈
-A在規(guī)則鏈的末尾加入新規(guī)則
-Inum  在規(guī)則鏈的頭部加入新規(guī)則
-Dnum  刪除某一條規(guī)則
-s匹配來源地址IP/MASK,加嘆號”!”表示除這個(gè)IP外。
-d匹配目標(biāo)地址
-i網(wǎng)卡名稱 匹配從這塊網(wǎng)卡流入的數(shù)據(jù)
-o網(wǎng)卡名稱 匹配從這塊網(wǎng)卡流出的數(shù)據(jù)
-p匹配協(xié)議,如tcp,udp,icmp
–dport num匹配目標(biāo)端口號
–sport num匹配來源端口號
命令選項(xiàng)輸入順序
 iptables -t 表名  規(guī)則鏈名 [規(guī)則號]  -p 協(xié)議名  --sport 源端口  --dport 目標(biāo)端口 -j 動(dòng)作
工作機(jī)制

規(guī)則鏈名包括(也被稱為五個(gè)鉤子函數(shù)(hook functions)):

  • INPUT鏈 :處理輸入數(shù)據(jù)包。

  • OUTPUT鏈 :處理輸出數(shù)據(jù)包。

  • FORWARD鏈 :處理轉(zhuǎn)發(fā)數(shù)據(jù)包。

  • PREROUTING鏈 :用于目標(biāo)地址轉(zhuǎn)換(DNAT)。

  • POSTOUTING鏈 :用于源地址轉(zhuǎn)換(SNAT)。

防火墻的策略

防火墻策略一般分為兩種,一種叫策略,一種叫策略,通策略,默認(rèn)門是關(guān)著的,必須要定義誰能進(jìn)。堵策略則是,大門是洞開的,但是你必須有身份認(rèn)證,否則不能進(jìn)。所以我們要定義,讓進(jìn)來的進(jìn)來,讓出去的出去,所以通,是要全通,而堵,則是要選擇。當(dāng)我們定義的策略的時(shí)候,要分別定義多條功能,其中:定義數(shù)據(jù)包中允許或者不允許的策略,filter過濾的功能,而定義地址轉(zhuǎn)換的功能的則是nat選項(xiàng)。為了讓這些功能交替工作,我們制定出了“表”這個(gè)定義,來定義、區(qū)分各種不同的工作功能和處理方式。

我們現(xiàn)在用的比較多個(gè)功能有3個(gè):

  1. filter 定義允許或者不允許的,只能做在3個(gè)鏈上:INPUT ,F(xiàn)ORWARD ,OUTPUT

  2. nat 定義地址轉(zhuǎn)換的,也只能做在3個(gè)鏈上:PREROUTING ,OUTPUT ,POSTROUTING

  3. mangle功能:修改報(bào)文原數(shù)據(jù),是5個(gè)鏈都可以做:PREROUTING,INPUT,F(xiàn)ORWARD,OUTPUT,POSTROUTING

我們修改報(bào)文原數(shù)據(jù)就是來修改TTL的。能夠?qū)崿F(xiàn)將數(shù)據(jù)包的元數(shù)據(jù)拆開,在里面做標(biāo)記/修改內(nèi)容的。而防火墻標(biāo)記,其實(shí)就是靠mangle來實(shí)現(xiàn)的。

小擴(kuò)展:

  • 對于filter來講一般只能做在3個(gè)鏈上:INPUT ,F(xiàn)ORWARD ,OUTPUT

  • 對于nat來講一般也只能做在3個(gè)鏈上:PREROUTING ,OUTPUT ,POSTROUTING

  • 而mangle則是5個(gè)鏈都可以做:PREROUTING,INPUT,F(xiàn)ORWARD,OUTPUT,POSTROUTING

iptables/netfilter(這款軟件)是工作在用戶空間的,它可以讓規(guī)則進(jìn)行生效的,本身不是一種服務(wù),而且規(guī)則是立即生效的。而我們iptables現(xiàn)在被做成了一個(gè)服務(wù),可以進(jìn)行啟動(dòng),停止的。啟動(dòng),則將規(guī)則直接生效,停止,則將規(guī)則撤銷。

iptables還支持自己定義鏈。但是自己定義的鏈,必須是跟某種特定的鏈關(guān)聯(lián)起來的。在一個(gè)關(guān)卡設(shè)定,指定當(dāng)有數(shù)據(jù)的時(shí)候?qū)iT去找某個(gè)特定的鏈來處理,當(dāng)那個(gè)鏈處理完之后,再返回。接著在特定的鏈中繼續(xù)檢查。

注意:規(guī)則的次序非常關(guān)鍵,誰的規(guī)則越嚴(yán)格,應(yīng)該放的越靠前,而檢查規(guī)則的時(shí)候,是按照從上往下的方式進(jìn)行檢查的。

表名包括:

  • raw :高級功能,如:網(wǎng)址過濾。

  • mangle :數(shù)據(jù)包修改(QOS),用于實(shí)現(xiàn)服務(wù)質(zhì)量。

  • nat :地址轉(zhuǎn)換,用于網(wǎng)關(guān)路由器。

  • filter :包過濾,用于防火墻規(guī)則。

動(dòng)作包括:

  • ACCEPT :接收數(shù)據(jù)包。

  • DROP :丟棄數(shù)據(jù)包。

  • REDIRECT :重定向、映射、透明代理。

  • SNAT :源地址轉(zhuǎn)換。

  • DNAT :目標(biāo)地址轉(zhuǎn)換。

  • MASQUERADE :IP偽裝(NAT),用于ADSL。

  • LOG :日志記錄。

  • SEMARK : 添加SEMARK標(biāo)記以供網(wǎng)域內(nèi)強(qiáng)制訪問控制(MAC)

                              ┏???????????????┓  ┌───────────────┐           ┃    Network    ┃  │ table: filter │           ┗━━━━━━━┳━━━━━━━┛  │ chain: INPUT  │?────┐             │  └───────┬───────┘     │             ▼          │             │   ┌───────────────────┐   ┌      ▼      ┐      │   │ table: nat        │   │local process│      │   │ chain: PREROUTING │   └             ┘      │   └─────────┬─────────┘          │             │             │          ▼             │             ▼              ┌─────────────────┐ ┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅    │     ┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅      │table: nat       │  Routing decision      └───── outing decision ─────?│chain: PREROUTING│ ┅┅┅┅┅┅┅┅┅┳┅┅┅┅┅┅┅┅┅          ┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅      └────────┬────────┘          │                                                   │          ▼                                                   │  ┌───────────────┐                                           │  │ table: nat    │           ┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅               │  │ chain: OUTPUT │    ┌─────? outing decision ?──────────────┘  └───────┬───────┘    │      ┅┅┅┅┅┅┅┅┳┅┅┅┅┅┅┅┅          │            │              │          ▼            │              ▼  ┌───────────────┐    │   ┌────────────────────┐  │ table: filter │    │   │ chain: POSTROUTING │  │ chain: OUTPUT ├────┘   └──────────┬─────────┘  └───────────────┘                   │                                      ▼                              ┏???????????????┓                              ┃    Network    ┃                              ┗━━━━━━━━━━━━━━━┛

實(shí)例

清空當(dāng)前的所有規(guī)則和計(jì)數(shù)
 iptables -F  # 清空所有的防火墻規(guī)則 iptables -X  # 刪除用戶自定義的空鏈 iptables -Z  # 清空計(jì)數(shù)
配置允許ssh端口連接
 iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 22 -j ACCEPT # 22為你的ssh端口, -s 192.168.1.0/24表示允許這個(gè)網(wǎng)段的機(jī)器來連接,其它網(wǎng)段的ip地址是登陸不了你的機(jī)器的。 -j ACCEPT表示接受這樣的請求
允許本地回環(huán)地址可以正常使用
 iptables -A INPUT -i lo -j ACCEPT #本地圓環(huán)地址就是那個(gè)127.0.0.1,是本機(jī)上使用的,它進(jìn)與出都設(shè)置為允許 iptables -A OUTPUT -o lo -j ACCEPT
設(shè)置默認(rèn)的規(guī)則
 iptables -P INPUT DROP # 配置默認(rèn)的不讓進(jìn) iptables -P FORWARD DROP # 默認(rèn)的不允許轉(zhuǎn)發(fā) iptables -P OUTPUT ACCEPT # 默認(rèn)的可以出去
配置白名單
iptables -A INPUT -p all -s 192.168.1.0/24 -j ACCEPT  # 允許機(jī)房內(nèi)網(wǎng)機(jī)器可以訪問
iptables -A INPUT -p all -s 192.168.140.0/24 -j ACCEPT  # 允許機(jī)房內(nèi)網(wǎng)機(jī)器可以訪問
iptables -A INPUT -p tcp -s 183.121.3.7 --dport 3380 -j ACCEPT # 允許183.121.3.7訪問本機(jī)的3380端口
開啟相應(yīng)的服務(wù)端口
iptables -A INPUT -p tcp --dport 80 -j ACCEPT # 開啟80端口,因?yàn)閣eb對外都是這個(gè)端口
iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT # 允許被ping
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # 已經(jīng)建立的連接得讓它進(jìn)來
保存規(guī)則到配置文件中
cp /etc/sysconfig/iptables /etc/sysconfig/iptables.bak # 任何改動(dòng)之前先備份,請保持這一優(yōu)秀的習(xí)慣
iptables-save > /etc/sysconfig/iptables
cat /etc/sysconfig/iptables
列出已設(shè)置的規(guī)則

iptables -L [-t 表名] [鏈名]

  • 四個(gè)表名 rawnat,filter,mangle

  • 五個(gè)規(guī)則鏈名 INPUT、OUTPUT、FORWARD、PREROUTING、POSTROUTING

  • filter表包含INPUT、OUTPUTFORWARD三個(gè)規(guī)則鏈

iptables -L -t nat                  # 列出 nat 上面的所有規(guī)則
#            ^ -t 參數(shù)指定,必須是 raw, nat,filter,mangle 中的一個(gè)
iptables -L -t nat  --line-numbers  # 規(guī)則帶編號
iptables -L INPUT

iptables -L -nv  # 查看,這個(gè)列表看起來更詳細(xì)
清除已有規(guī)則
iptables -F INPUT  # 清空指定鏈 INPUT 上面的所有規(guī)則
iptables -X INPUT  # 刪除指定的鏈,這個(gè)鏈必須沒有被其它任何規(guī)則引用,而且這條上必須沒有任何規(guī)則。
                   # 如果沒有指定鏈名,則會刪除該表中所有非內(nèi)置的鏈。
iptables -Z INPUT  # 把指定鏈,或者表中的所有鏈上的所有計(jì)數(shù)器清零。
刪除已添加的規(guī)則
# 添加一條規(guī)則
iptables -A INPUT -s 192.168.1.5 -j DROP

將所有iptables以序號標(biāo)記顯示,執(zhí)行:

iptables -L -n --line-numbers

比如要?jiǎng)h除INPUT里序號為8的規(guī)則,執(zhí)行:

iptables -D INPUT 8
開放指定的端口
iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT               #允許本地回環(huán)接口(即運(yùn)行本機(jī)訪問本機(jī))
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT    #允許已建立的或相關(guān)連的通行
iptables -A OUTPUT -j ACCEPT         #允許所有本機(jī)向外的訪問
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服務(wù)的21端口
iptables -A INPUT -p tcp --dport 20 -j ACCEPT    #允許FTP服務(wù)的20端口
iptables -A INPUT -j reject       #禁止其他未允許的規(guī)則訪問
iptables -A FORWARD -j REJECT     #禁止其他未允許的規(guī)則訪問
屏蔽IP
iptables -A INPUT -p tcp -m tcp -s 192.168.0.8 -j DROP  # 屏蔽惡意主機(jī)(比如,192.168.0.8
iptables -I INPUT -s 123.45.6.7 -j DROP       #屏蔽單個(gè)IP的命令
iptables -I INPUT -s 123.0.0.0/8 -j DROP      #封整個(gè)段即從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的命令是
指定數(shù)據(jù)包出去的網(wǎng)絡(luò)接口

只對 OUTPUT,F(xiàn)ORWARD,POSTROUTING 三個(gè)鏈起作用。

iptables -A FORWARD -o eth0
查看已添加的規(guī)則
iptables -L -n -v
Chain INPUT (policy DROP 48106 packets, 2690K bytes)
 pkts bytes target     prot opt in     out     source               destination
 5075  589K ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0
 191K   90M ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:22
1499K  133M ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:80
4364K 6351M ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
 6256  327K ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 3382K packets, 1819M bytes)
 pkts bytes target     prot opt in     out     source               destination
 5075  589K ACCEPT     all  --  *      lo      0.0.0.0/0            0.0.0.0/0
啟動(dòng)網(wǎng)絡(luò)轉(zhuǎn)發(fā)規(guī)則

公網(wǎng)210.14.67.7讓內(nèi)網(wǎng)192.168.188.0/24上網(wǎng)

iptables -t nat -A POSTROUTING -s 192.168.188.0/24 -j SNAT --to-source 210.14.67.127
端口映射

本機(jī)的 2222 端口映射到內(nèi)網(wǎng) 虛擬機(jī)的22 端口

iptables -t nat -A PREROUTING -d 210.14.67.127 -p tcp --dport 2222  -j DNAT --to-dest 192.168.188.115:22
字符串匹配

比如,我們要過濾所有TCP連接中的字符串test,一旦出現(xiàn)它我們就終止這個(gè)連接,我們可以這么做:

iptables -A INPUT -p tcp -m string --algo kmp --string "test" -j REJECT --reject-with tcp-reset
iptables -L

# Chain INPUT (policy ACCEPT)
# target     prot opt source               destination
# REJECT     tcp  --  anywhere             anywhere            STRING match "test" ALGO name kmp TO 65535 reject-with tcp-reset
#
# Chain FORWARD (policy ACCEPT)
# target     prot opt source               destination
#
# Chain OUTPUT (policy ACCEPT)
# target     prot opt source               destination
阻止Windows蠕蟲的攻擊
iptables -I INPUT -j DROP -p tcp -s 0.0.0.0/0 -m string --algo kmp --string "cmd.exe"
防止SYN洪水攻擊
iptables -A INPUT -p tcp --syn -m limit --limit 5/second -j ACCEPT
添加SECMARK記錄
iptables -t mangle -A INPUT -p tcp --src 192.168.1.2 --dport 443 -j SECMARK --selctx system_u:object_r:myauth_packet_t
# 向從 192.168.1.2:443 以TCP方式發(fā)出到本機(jī)的包添加MAC安全上下文 system_u:object_r:myauth_packet_t

更多實(shí)例

用iptables搭建一套強(qiáng)大的安全防護(hù)盾 http://www.imooc.com/learn/389

iptables: linux 下應(yīng)用層防火墻工具

iptables 5鏈: 對應(yīng) Hook point netfilter: linux 操作系統(tǒng)核心層內(nèi)部的一個(gè)數(shù)據(jù)包處理模塊 Hook point: 數(shù)據(jù)包在 netfilter 中的掛載點(diǎn); PRE_ROUTING / INPUT / OUTPUT / FORWARD / POST_ROUTING

iptables & netfilter

iptables 4表5鏈

iptables rules

  • 4表

filter: 訪問控制 / 規(guī)則匹配 nat: 地址轉(zhuǎn)發(fā)  mangle / raw

  • 規(guī)則

數(shù)據(jù)訪問控制: ACCEPT / DROP / REJECT 數(shù)據(jù)包改寫(nat -> 地址轉(zhuǎn)換): snat / dnat 信息記錄: log

使用場景實(shí)例

  • 場景一

開放 tcp 10-22/80 端口 開放 icmp 其他未被允許的端口禁止訪問

存在的問題: 本機(jī)無法訪問本機(jī); 本機(jī)無法訪問其他主機(jī)

  • 場景二

ftp: 默認(rèn)被動(dòng)模式(服務(wù)器產(chǎn)生隨機(jī)端口告訴客戶端, 客戶端主動(dòng)連接這個(gè)端口拉取數(shù)據(jù)) vsftpd: 使 ftp 支持主動(dòng)模式(客戶端產(chǎn)生隨機(jī)端口通知服務(wù)器, 服務(wù)器主動(dòng)連接這個(gè)端口發(fā)送數(shù)據(jù))

  • 場景三

允許外網(wǎng)訪問: web http -> 80/tcp; https -> 443/tcp mail smtp -> 25/tcp; smtps -> 465/tcp pop3 -> 110/tcp; pop3s -> 995/tcp imap -> 143/tcp

內(nèi)部使用: file nfs -> 123/udp samba -> 137/138/139/445/tcp ftp -> 20/21/tcp remote ssh -> 22/tcp sql mysql -> 3306/tcp oracle -> 1521/tcp

  • 場景四

nat 轉(zhuǎn)發(fā)

  • 場景五

防CC攻擊

iptables -L -F -A -D # list flush append delete
# 場景一
iptables -I INPUT -p tcp --dport 80 -j ACCEPT # 允許 tcp 80 端口
iptables -I INPUT -p tcp --dport 10:22 -j ACCEPT # 允許 tcp 10-22 端口
iptables -I INPUT -p icmp -j ACCEPT # 允許 icmp
iptables -A INPUT -j REJECT # 添加一條規(guī)則, 不允許所有

# 優(yōu)化場景一
iptables -I INPUT -i lo -j ACCEPT # 允許本機(jī)訪問
iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # 允許訪問外網(wǎng)
iptables -I INPUT -p tcp --dport 80 -s 10.10.188.233 -j ACCEPT # 只允許固定ip訪問80

# 場景二
vi /etc/vsftpd/vsftpd.conf # 使用 vsftpd 開啟 ftp 主動(dòng)模式
port_enable=yes
connect_from_port_20=YES
iptables -I INPUT -p tcp --dport 21 -j ACCEPT

vi /etc/vsftpd/vsftpd.conf # 建議使用 ftp 被動(dòng)模式
pasv_min_port=50000
pasv_max_port=60000
iptables -I INPUT -p tcp --dport 21 -j ACCEPT
iptables -I INPUT -p tcp --dport 50000:60000 -j ACCEPT

# 還可以使用 iptables 模塊追蹤來自動(dòng)開發(fā)對應(yīng)的端口

# 場景三
iptables -I INPUT -i lo -j ACCEPT # 允許本機(jī)訪問
iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # 允許訪問外網(wǎng)
iptables -I INPUT -s 10.10.155.0/24 -j ACCEPT # 允許內(nèi)網(wǎng)訪問
iptables -I INPUT -p tcp -m multiport --dports 80,1723 -j ACCEPT # 允許端口, 80 -> http, 1723 -> vpn
iptables -A INPUT -j REJECT # 添加一條規(guī)則, 不允許所有

iptables-save # 保存設(shè)置到配置文件

# 場景四
iptables -t nat -L # 查看 nat 配置

iptables -t nat -A POST_ROUTING -s 10.10.177.0/24 -j SNAT --to 10.10.188.232 # SNAT
vi /etc/sysconfig/network # 配置網(wǎng)關(guān)

iptables -t nat -A POST_ROUTING -d 10.10.188.232 -p tcp --dport 80 -j DNAT --to 10.10.177.232:80 # DNAT

#場景五
iptables -I INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 100 -j REJECT # 限制并發(fā)連接訪問數(shù)
iptables -I INPUT -m limit --limit 3/hour --limit-burst 10 -j ACCEPT # limit模塊; --limit-burst 默認(rèn)為5

到此,關(guān)于“Linux的iptables命令有什么用”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI