溫馨提示×

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

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

iptables學(xué)習(xí)總結(jié)

發(fā)布時(shí)間:2020-06-25 09:47:29 來源:網(wǎng)絡(luò) 閱讀:616 作者:BigManer 欄目:安全技術(shù)

一、iptables 基礎(chǔ)

 

1、容器:包含或者說屬于的關(guān)系

2、Netfilter/iptables是表的容器,iptables包含的各個(gè)表

(filter,NAT,MANGLE,RAW)

3、iptables的表tables又是鏈的容器

鏈chains:INPUT,OUTPUT,FORWARD,PREROUTING,POSTROUTING

4、鏈chains是規(guī)則容器:

5、規(guī)則Policy:一條條過濾的語句。

 

二、查看系統(tǒng)內(nèi)核防火墻功能模塊加載情況

 

lsmod |egrep "nat|filter"

[root@server_02 ~]# lsmod |egrep "nat|filter"
nf_nat_ftp              3507  0 
nf_conntrack_ftp       12913  1 nf_nat_ftp
iptable_nat             6158  1 
nf_nat                 22759  2 nf_nat_ftp,iptable_nat
nf_conntrack_ipv4       9506  3 iptable_nat,nf_nat
nf_conntrack           79758  6 xt_state,nf_nat_ftp,nf_conntrack_ftp,iptable_nat,nf_nat,nf_conntrack_ipv4
iptable_filter          2793  0 
ip_tables              17831  2 iptable_nat,iptable_filter

如果沒有,可以通過以下命令加載相關(guān)模塊

modprobe ip_tables

modprobe iptable_filter

modprobe iptable_nat

modprobe ip_conntrack

modprobe ip_conntrack_ftp

modprobe ip_nat_ftp

modprobe ipt_state

三、iptables使用

iptables -F  //清除所有規(guī)則,不會(huì)處理默認(rèn)的規(guī)則。

iptables -X  //刪除用戶自定義的鏈。

iptables -Z  //鏈的記數(shù)器清零。

 

(2)禁止掉當(dāng)前主機(jī)SSH功能,這里ssh端口用的是52113。

[root@ipt ~]# iptables -t filter -A INPUT -p tcp --dport 52113 -j DROP

命令語法:

Usage: 

iptables -t [table] -[AD] chain rule-specification [options]

具體命令示例

iptables           -A INPUT -p tcp --dport 52113 -j DROP

iptables -t filter -A INPUT -p tcp --dport 52113 -j DROP

說明

1.iptables默認(rèn)用的就是filter表,因此,以上兩條命令等價(jià)。

2. 其中的INPUT DROP要大寫。

3. --jump        -j target

   target for rule (may load target extension)

基本的處理行為:ACCEPT(接受)、DROP(丟棄)、REJECT(拒絕)

比較:DROP好于REJECT

 

(3)顯示filter表過濾規(guī)則的序號(hào)

[root@ipt ~]# iptables -L -n --line-numbers

Chain INPUT (policy ACCEPT)

num  target     prot opt source               destination         

1    DROP       tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:80 

 

Chain FORWARD (policy ACCEPT)

num  target     prot opt source               destination         

 

Chain OUTPUT (policy ACCEPT)

num  target     prot opt source               destination         

[root@ipt ~]#  iptables -t filter -D INPUT 1                

 

根據(jù)源地址封:

[root@ipt ~]# iptables -t filter -A INPUT -i eth0 -s 10.0.0.104 -j DROP

iptables -t filter -A INPUT -i eth0 ! -s 10.0.0.104 -j DROP  

iptables -t filter  -I INPUT -p icmp --icmp-type 8 -i eth0 ! -s 10.0.0.0/24 -j DROP

[root@ipt ~]# iptables -t filter  -I INPUT -p icmp --icmp-type 8 -i eth0 -s 10.0.0.0/24 -j DROP 

 

封掉3306端口

iptables -A INPUT -p tcp  --dport 3306 -j DROP

 

匹配指定協(xié)議外的所有協(xié)議 

iptables -A INPUT -p ! tcp

 

匹配主機(jī)源IP

iptables -A INPUT -s 10.0.0.14

iptables -A INPUT -s ! 10.0.0.14

 

匹配網(wǎng)段

iptables -A INPUT -s 10.0.0.0/24

iptables -A INPUT -s ! 10.0.0.0/24

 

匹配單一端口

iptables -A INPUT -p tcp --sport 53

iptables -A INPUT -p udp --dport 53

 

匹配指定端口之外的端口

iptables -A INPUT -p tcp --dport ! 22 

iptables -I INPUT -p tcp ! --dport 22  -s 10.0.0.123 -j DROP

 

匹配單一端口

iptables -A INPUT -p tcp --sport 53

iptables -A INPUT -p udp --dport 53

 

匹配指定端口之外的端口

iptables -A INPUT -p tcp --dport ! 22 

iptables -I INPUT -p tcp ! --dport 22  -s 10.0.0.123 -j DROP

 

匹配端口范圍:

iptables -I INPUT -p tcp --dport 52000:53000 -j DROP    //端口范圍52000-53000

iptables -A INPUT -p tcp --sport 22:80                  //端口范圍22-80

iptables -I INPUT -p tcp --dport 21,22,23,24 -j ACCEPT===》錯(cuò)誤語法

iptables -I INPUT -p tcp -m multiport --dport 21,22,23,24 -j ACCEPT===》正確寫法

iptables -I INPUT -p tcp --dport 3306:8809 -j ACCEPT

iptables -I INPUT -p tcp --dport 18:80 -j DROP

 

匹配ICMP類型

iptables -A INPUT -p icmp --icmp-type 8 

例:iptables -A INPUT -p icmp --icmp-type 8 -j DROP

iptables -A INPUT -p icmp -m icmp --icmp-type any -j ACCEPT

匹配指定的網(wǎng)絡(luò)接口

iptables -A INPUT -i eth0

iptables -A FORWARD -o eth0

記憶方法:

--in-interface -i [!] input name[+]

                                network interface name ([+] for wildcard)

--out-interface -o [!] output name[+]

                                network interface name ([+] for wildcard)

匹配網(wǎng)絡(luò)狀態(tài)

-m state --state

    NEW:已經(jīng)或?qū)?dòng)新的連接

    ESTABLISHED:已建立的連接

    RELATED:正在啟動(dòng)新連接

INVALID:非法或無法識(shí)別的

FTP服務(wù)是特殊的,需要配狀態(tài)連接。

7.允許關(guān)聯(lián)的狀態(tài)包通過(web服務(wù)不要使用FTP服務(wù))

#others RELATED ftp協(xié)議

#允許關(guān)聯(lián)的狀態(tài)包

iptables -A INPUT  -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

#___________________________ ipconfig conf end _______________________________

比喻:看電影出去WC或者接個(gè)電話,回來也得允許進(jìn)去。

 

-m limit

--limit n/{second/minute/hour}:指定時(shí)間內(nèi)的請(qǐng)求速率"n"為速率,后面為時(shí)間分別為:秒、分、時(shí)    

--limit-burst [n]:在同一時(shí)間內(nèi)允許通過的請(qǐng)求"n"為數(shù)字,不指定默認(rèn)為5

fg:本機(jī)地址:172.16.14.1,允許172.16.0.0/16網(wǎng)絡(luò)ping本機(jī),但限制每分鐘請(qǐng)求不能超過20,每次并發(fā)不能超過6個(gè)

iptables -A INPUT -s 172.16.0.0/16 -d 172.16.14.1 -p icmp --icmp-type 8 -m limit --limit 20/min --limit-burst 6 -j ACCEPT

    iptables -A OUTPUT -s 172.16.14.1 -d 172.16.0.0/16 -p icmp --icmp-type 0 -j ACCEPT

 

 

配置一個(gè)企業(yè)防火墻規(guī)則示例

[root@ipt ~]# iptables -F

[root@ipt ~]# iptables -X

[root@ipt ~]# iptables -Z

[root@ipt ~]# iptables -A INPUT -p tcp  --dport 52113 -s 10.0.0.0/24  -j ACCEPT

[root@ipt ~]# iptables -A INPUT -i lo -j ACCEPT

[root@ipt ~]# iptables -A INPUT -o lo -j ACCEPT  

[root@ipt ~]# iptables -A OUTPUT -o lo -j ACCEPT  

 

允許合法的進(jìn)入:

iptables -A INPUT -s 124.43.62.96/27 -p all -j ACCEPT

iptables -A INPUT -s 192.168.1.0/24 -p all -j ACCEPT 

iptables -A INPUT -s 10.0.0.0/24 -p all -j ACCEPT    

iptables -A INPUT -s 203.83.24.0/24 -p all -j ACCEPT 

iptables -A INPUT -s 201.82.34.0/24 -p all -j ACCEPT 

iptables -A INPUT -p icmp --icmp-type 8  -j ACCEPT

 

 

#others RELATED ftp協(xié)議

#允許關(guān)聯(lián)的狀態(tài)包

iptables -A INPUT  -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

 

 

iptables禁ping

iptables -A INPUT -p icmp --icmp-type 8  -j ACCEPT

 

#others RELATED ftp協(xié)議

#允許關(guān)聯(lián)的狀態(tài)包

iptables -A INPUT  -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

 

修改鏈表默認(rèn)策略:

iptables -P OUTPUT ACCEPT

iptables -P FORWARD DROP        

iptables -A INPUT -s 124.43.62.96/27 -p all -j ACCEP

iptables -A INPUT -s 192.168.1.0/24 -p all -j ACCEPT

iptables -A INPUT -s 10.0.0.0/24 -p all -j ACCEPT   

iptables -A INPUT -s 203.83.24.0/24 -p all -j ACCEPT

iptables -A INPUT -s 201.82.34.0/24 -p all -j ACCEPT

iptables -A INPUT -p tcp  --dport 80 -j ACCEPT

iptables -A INPUT -p icmp --icmp-type 8  -j ACCEPT

iptables -A INPUT  -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

 

企業(yè)iptables面試題:自定義鏈處理syn***

iptables -N syn-flood

iptables -A INPUT -i eth0 -syn -j syn-flood

iptables -A syn-flood -m limit -limit 5000/s -limit-burst 200 -j RETURN

iptables -A syn-flood -j DROP

 

保存iptables的配置

iptables-save >/etc/sysconfig/iptables

 

局域網(wǎng)共享的兩條命令方法:

方法1:適合于有固定外網(wǎng)地址的:

iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to-source 10.0.0.7

(1)-s 192.168.1.0/24 辦公室或IDC內(nèi)網(wǎng)網(wǎng)段。

(2)-o eth0 為網(wǎng)關(guān)的外網(wǎng)卡接口。

(3)-j SNAT --to-source 10.0.0.19 是網(wǎng)關(guān)外網(wǎng)卡IP地址。

方法2:適合變化外網(wǎng)地址(ADSL):

iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE 偽裝源地址

 

iptables的生產(chǎn)常用場(chǎng)景:

1)實(shí)現(xiàn)服務(wù)器本身防火墻功能,使用filter表。

2)實(shí)現(xiàn)局域網(wǎng)上網(wǎng)網(wǎng)關(guān),使用nat表,網(wǎng)關(guān)上也可以同時(shí)用filter表做防火墻。

3)實(shí)現(xiàn)NAT功能,如:由外部IP映射到內(nèi)部服務(wù)器IP(包括端口),使用nat表。

 

端口映射配置示例:
iptables -t nat -A PREROUTING -d 10.0.0.7 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.8:9000
  
 
7.映射多個(gè)外網(wǎng)IP上網(wǎng)
iptables -t nat -A POSTROUTING -s 10.0.0.0/255.255.240.0 -o eth0 -j SNAT --to-source 124.42.60.11-124.42.60.16
iptables -t nat -A POSTROUTING -s 172.16.1.0/255.255.255.0 -o eth0 -j SNAT --to-source 124.42.60.103-124.42.60.106
 
 


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

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

AI