溫馨提示×

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

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

防火墻及netfilter基礎(chǔ)iptables基本用法

發(fā)布時(shí)間:2020-06-03 01:42:53 來源:網(wǎng)絡(luò) 閱讀:1058 作者:wgbhji 欄目:建站服務(wù)器

iptables

 

firewall:

主機(jī)防火墻

網(wǎng)絡(luò)防火墻

 

工作于主機(jī)或網(wǎng)絡(luò)的邊緣,對(duì)于進(jìn)出的報(bào)文根據(jù)事先定義的規(guī)則作檢查,將那些能夠被規(guī)則所匹配到的報(bào)文作出相應(yīng)處理的組件。

 

網(wǎng)絡(luò)防火墻:

專業(yè)的硬件防火墻:

checkpoint,netscreen

主機(jī):

 

iptables: 程序

iptables:規(guī)則編寫工具

netfilter: 網(wǎng)絡(luò)過濾器, 內(nèi)核中工作在TCP/IP網(wǎng)絡(luò)協(xié)議棧上的框架;

 

IDSIntrusionDetecting System

NIDS

HIDS

 

IPS:Intrusion Protec System

 

HoneyPot: 蜜罐

 

kali,(backtrack)

 

OpenBSD:

ipfw

ipchains

iptables/netfilter

 

kernel,framework

 

hooksfunction:

prerouting: 進(jìn)入本機(jī)后路由功能發(fā)生之前

input:到達(dá)本機(jī)內(nèi)部

output: 由本機(jī)發(fā)出

forward: 由本機(jī)轉(zhuǎn)發(fā)

postrouting:路由功能發(fā)生之后,即將離開本機(jī)之前

 

路由發(fā)生的時(shí)刻:

報(bào)文進(jìn)入本機(jī)后:

判斷目標(biāo)地址

報(bào)文離開本機(jī)之前:

判斷經(jīng)由哪個(gè)接口發(fā)出;

 

報(bào)文流向經(jīng)由的位置:

到本內(nèi)部:prerouting, input

由本機(jī)發(fā)出:output, postrouting

由本機(jī)轉(zhuǎn)發(fā):prerouting, forward, postrouing

 

規(guī)則的功能:

過濾:firewall,

地址轉(zhuǎn)換:NAT Server

NetworkAddress Translation

mangle:修改報(bào)文首部中的某些信息

raw:關(guān)閉nat表上啟用的連接追蹤功能

 

filterinput,forward, output

natprerouting,output, postrouting

mangleprerouting,input, forward, output, postrouting

rawprerouting,output

 

iptables:每個(gè)鉤子函數(shù)上可放置n條規(guī)則;對(duì)應(yīng)于每個(gè)鉤子上的多條規(guī)則就稱為一個(gè)鏈(CHAIN

每個(gè)功能有多個(gè)鏈,所以,就稱作表;

防火墻及netfilter基礎(chǔ)iptables基本用法

 

鏈:鏈上的規(guī)則次序即為檢查次序,因此有一定的法則

(1) 同類規(guī)則,匹配范圍小的放上面;

(2) 不同類規(guī)則,匹配報(bào)文幾率較大的放上面;

(3) 應(yīng)該設(shè)置默認(rèn)策略;

 

iptables/netfilter

netfilter:framework in kernel

tcp/ip協(xié)議棧

 

iptables有四表五鏈

filter:input, forward, output

添加規(guī)則時(shí)的考量點(diǎn):

(1) 要實(shí)現(xiàn)的功能:判斷添加在哪個(gè)表上;

(2) 報(bào)文流向及經(jīng)由路徑:判斷添加在哪個(gè)鏈上;

 

功能的優(yōu)先級(jí):

由高而低:

raw--> mangle --> nat --> filter

 

規(guī)則的組成部分:

報(bào)文的匹配條件, 匹配之后如何處理

 

匹配條件:基本匹配條件、擴(kuò)展匹配條件

如何處理:內(nèi)建處理機(jī)制、自定義處理機(jī)制(自定義的鏈)

 

注意:報(bào)文不可能經(jīng)由自定義鏈,只有在被內(nèi)置鏈上的引用才能生效(即做為自定義目標(biāo))

 

iptables:規(guī)則管理工具

自動(dòng)實(shí)現(xiàn)規(guī)則的語法檢查

 

規(guī)則和鏈有計(jì)數(shù)器:

pkts: 由規(guī)則或鏈匹配到的報(bào)文的個(gè)數(shù);

bytes:由規(guī)則或鏈匹配到的所有報(bào)文大小之和;

 

鏈:應(yīng)該有默認(rèn)策略;

 

 

iptables命令生成規(guī)則,送往netfilter;

規(guī)則通過內(nèi)核接口直接送至內(nèi)核,因此,會(huì)立即生效。但不會(huì)永久有效;

如果期望有永久有效,需要保存至配置文件中,此文件還開機(jī)時(shí)加載和由用戶手工加載;

 

iptables[-t TABLE] SUBCOMMAND CHAIN CRETERIA -j TARGET

 

-tTABLE:

默認(rèn)為filter, 共有filter, nat, mangle, raw四個(gè)可用;

 

SUBCOMMAND

鏈:

-Fflush,清空指定表的指定鏈上所有規(guī)則;省略鏈名時(shí),清空表中的所有鏈;

例:

[root@localhost~]# iptables -F INPUT

[root@localhost~]# iptables -F OUTPUT

 

-Nnew, 新建一個(gè)用戶自定義的鏈;自定義鏈只能作為默認(rèn)鏈上的跳轉(zhuǎn)對(duì)象,即在默認(rèn)鏈通過引用來生效自定義鏈;

例:

防火墻及netfilter基礎(chǔ)iptables基本用法

 

-Xdrop,刪除用戶自定義的空鏈;非空自定義鏈內(nèi)置鏈無法刪除;

-Zzero,將規(guī)則的計(jì)數(shù)器置0;

-Ppolicy,設(shè)置鏈的默認(rèn)處理機(jī)制;當(dāng)所有都無法匹配或有匹配有無法做出有效處理機(jī)制時(shí),默認(rèn)策略即生效;

filter表的可用策略:ACCEPT,DROP, REJECT

            例:表明filter的表INPUT鏈默認(rèn)為DROP

iptables-t filter -P INPUT DROP

 

-Erename,重命名自定義鏈;

 

注意:被引用中的鏈,無法刪除和改名

 

規(guī)則:

-Aappend,在鏈尾追加一條規(guī)則;

-Iinsert,在指定位置插入一條規(guī)則;

-Ddelete,刪除指定的規(guī)則;

-Rreplace,替換指定的規(guī)則;

 

查看:

-Llist,列出指定鏈上的所有規(guī)則;

-n: numeric,以數(shù)字格式顯示地址和端口號(hào),即不反解;

-v: verbose,詳細(xì)格式,顯示規(guī)則的詳細(xì)信息,包括規(guī)則計(jì)數(shù)器等;

-vv:

-vvv:

--line-numbers: 顯示規(guī)則編號(hào);

 

可以顯示規(guī)則的編號(hào)

 iptables -L -n --line-numbers

-x: exactly,顯示計(jì)數(shù)器的精確值;

                                                          

防火墻及netfilter基礎(chǔ)iptables基本用法

 

pktsbytes target     prot opt in     out    source               destination

pkts: 被本規(guī)則所匹配到的包個(gè)數(shù);

bytes:被本規(guī)則所匹配到的所包的大小之和;

target: 處理目標(biāo)(目標(biāo)可以為用戶自定義的鏈)

prot: 協(xié)議 {tcp,udp, icmp}

opt: 可選項(xiàng)

in: 數(shù)據(jù)包流入接口

out: 數(shù)據(jù)包流出接口

source: 源地址

destination: 目標(biāo)地址;

 

CRETERIA: 匹配條件

檢查IP首部,檢查TCP、UDPICMP首部;

基于擴(kuò)展機(jī)制,也可以進(jìn)行額外的檢查;如做連接追蹤;

 

注意:可同時(shí)指定多個(gè)條件,默認(rèn)多條件要同時(shí)被滿足;

 

匹配條件:

 

通用匹配:

[!] -s, --src, --source  IP|Network:檢查報(bào)文中的源IP地址;

-d, --dst, --destination:檢查報(bào)文中的目標(biāo)IP地址;

-p, --protocol:檢查報(bào)文中的協(xié)議,即ip首部中的protocols所標(biāo)識(shí)的協(xié)議;tcp、udpicmp三者之一;

-i, --in-interface:數(shù)據(jù)報(bào)文的流入接口;通常只用于PREROUTING, INPUT, FORWARD鏈上的規(guī)則;

-o, --out-interface:檢查報(bào)文的流出接口;通常只用于FORWARD, OUTPUT, POSTROUTING鏈上的規(guī)則;

 

                             

                                            例:替換第一條規(guī)則,檢查為tcp協(xié)議首部

                                            iptables -t filter -R INPUT 1 -s 172.16.250.145 -d 172.16.249.139 -ptcp -j ACCEPT

                                            添加一條icmp協(xié)議的

                                            iptables -t filter -R INPUT 1 -s 172.16.250.145 -d 172.16.249.139 -picmp -j ACCEPT

                                             例:INPUT的默認(rèn)策略改為DROP

                                            iptables -t filter -P INPUTDROP

 

                                           例將原先的第二條規(guī)則替換為以eth0端口進(jìn)入的以icmp協(xié)議

                                           [root@localhost ~]# iptables -R INPUT 2 -s 172.16.250.145 -d172.16.249.139 -p icmp -i eth0 -j ACCEPT

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

                                           Chain INPUT (policy DROP 7 packets, 796 bytes)

                                           num   pkts bytes target     prot opt in     out    source              destination        

                                           1     1546  113K ACCEPT     tcp --  *      *      172.16.250.145      172.16.249.139     

                                           2        0     0 ACCEPT     icmp -- eth0   *       172.16.250.145       172.16.249.139

 

擴(kuò)展匹配:使用iptables的模塊實(shí)現(xiàn)擴(kuò)展性檢查機(jī)制

隱式擴(kuò)展:如果在通用匹配上使用-p選項(xiàng)指明了協(xié)議的話,則使用-m選項(xiàng)指明對(duì)其協(xié)議的擴(kuò)展就變得可有可無了;

tcp:

--dportPORT[-PORT]

--sport

--tcp-flagsLIST1 LIST2

LIST1: 要檢查的標(biāo)志位;

LIST2:在LIST1中出現(xiàn)過的,且必須為1標(biāo)記位;而余下的則必須為0;

例如:--tcp-flags syn,ack,fin,rst syn

--syn:用于匹配tcp會(huì)話三次握手的第一次;

例:目標(biāo)的80端口被禁止

iptables -I INPUT 1 -s 172.16.250.145 -d172.16.249.139 -p tcp -m tcp --dport 80 -j DROP-m tcp可以不寫)

 

udp:

--sport

--dport

icmp:

--icmp-types

8:echo request

0echo reply

 

練習(xí):

1、放行本機(jī)上的sshhttp服務(wù);要求inputoutput策略默認(rèn)均為DROP;

2、開放本機(jī)對(duì)ping的響應(yīng),和ping請(qǐng)求;

 

 

顯式擴(kuò)展:必須指明使用的擴(kuò)展機(jī)制;

-m 模塊名稱

每個(gè)模塊會(huì)引入新的匹配機(jī)制;

 

想知道有哪些模塊可用:

rpm-ql iptables

 

小寫字母,以.so結(jié)尾;

 

multiport擴(kuò)展:

以離散定義多端口匹配;最多指定15個(gè)端口;

 

專用選項(xiàng):

--source-ports,--sports PORT[,PORT,...]

--destination-ports,--dports PORT[,PORT,...]

--portsPORT[,PORT,...]

 

例子:

iptables-I INPUT 1 -d 172.16.100.11 -p tcp -m multiport --dports 22,80,443 -j ACCEPT

iptables-I OUTPUT 1 -s 172.16.100.11 -p tcp -m multiport --sports 22,80,443 -j ACCEPT

 

iprange擴(kuò)展:

指定連續(xù)的ip地址范圍;在匹配非整個(gè)網(wǎng)絡(luò)地址時(shí)使用;

 

專用選項(xiàng):

[!]--src-range IP[-IP]

[!]--dst-range IP[-IP]

 

示例:

iptables-A INPUT -d 172.16.100.11 -p tcp --dport 23 -m iprange --src-range172.16.100.1-172.16.100.100 -j ACCEPT

iptables-A OUTPUT -s 172.16.100.11 -p tcp --sport 23 -m iprange --dst-range172.16.100.1-172.16.100.100 -j ACCEPT

 

string擴(kuò)展:

檢查報(bào)文中出現(xiàn)的字符串,與給定的字符串作匹配;

 

字符串匹配檢查算法:

kmp,bm

 

專用選項(xiàng):

--algo{kmp|bm}

--string"STRING"

--hex-string "HEX_STRING"HEX_STRING為編碼成16進(jìn)制格式的字串;

 

 

示例:

iptables-I OUTPUT 1 -s 172.16.100.11 -p tcp --sport 80 -m string --string"sex" --algo kmp -j REJECT

 

time擴(kuò)展:

基于時(shí)間區(qū)間做訪問控制

 

專用選項(xiàng):

--datestartYYYY[-MM][-DD][hh[:mm[:ss]]]

--dattestop

 

--timestart

--timestop

 

--weekdaysDAY1[,DAY2,...]

 

示例:

#iptables -R INPUT 1 -d 172.16.100.11 -p tcp --dport 80 -m time --timestart08:30 --timestop 18:30 --weekdays Mon,Tue,Thu,Fri -j REJECT

 

connlimit擴(kuò)展:

基于連接數(shù)作限制;對(duì)每個(gè)IP能夠發(fā)起的并發(fā)連接數(shù)作限制;

 

專用選項(xiàng):

--connlimit-above[n]

 

#iptables -I INPUT 2 -d 172.16.100.11 -p tcp --dport 22 -m connlimit--connlimit-above 5 -j REJECT

 

limit擴(kuò)展:

基于發(fā)包速率作限制;

 

專用選項(xiàng):令牌桶算法

--limit  n[/second|/minit|/hour|/day]

--limit-burstn

 

iptables-R INPUT 3 -d 172.16.100.11 -p icmp --icmp-type 8 -m limit --limit 10/minute--limit-burst 5 -j ACCEPT

 

    

iptables/netfilter(3)

 

顯式擴(kuò)展(續(xù))

connection template:連接追蹤模板,用于記錄各連接及相關(guān)狀態(tài);基于IP實(shí)現(xiàn),與是否為TCP協(xié)議無關(guān);通過倒計(jì)時(shí)的方式刪除條目;

 

記錄連接的狀態(tài):

NEW: 新建立的連接,連接追蹤模板中無相應(yīng)的條目時(shí),客戶端第一次發(fā)出的請(qǐng)求;

ESTABLISHEDNEW狀態(tài)之后,邊距追蹤模板中的條目刪除之前所進(jìn)行的通信過程,都稱為ESTABLISHED;

RELATED:相關(guān)聯(lián)的連接,如ftp協(xié)議的命令連接與數(shù)據(jù)連接即為相關(guān)聯(lián)的連接;

INVALIED: 無法識(shí)別的狀態(tài);

 

state擴(kuò)展:?jiǎn)⒂眠B接追蹤模板記錄連接,并根據(jù)連接匹配連接狀態(tài)的擴(kuò)展;

啟用連接追蹤功能之前:簡(jiǎn)單包過濾防火墻;

啟用連接追蹤功能:帶狀態(tài)檢測(cè)的包過濾防火墻;

 

專用選項(xiàng):

--stateSTATE

 

調(diào)整連接追蹤功能所能容納的連接的最大數(shù)目:

/proc/sys/net/nf_conntrack_max

 

當(dāng)前追蹤的所有連接:

/proc/net/nf_conntrack

 

不同協(xié)議或連接類型追蹤時(shí)的時(shí)長屬性:

/proc/sys/net/netfilter/

 

如何放行被動(dòng)模式下的ftp服務(wù):

(1) 裝載模塊:

#modprobe nf_conntrack_ftp

 

(2) 放行請(qǐng)求報(bào)文

放行入站請(qǐng)求端口為21的請(qǐng)求報(bào)文;

放行所有狀態(tài)為ESTABLISHEDRELATED狀態(tài)的入站報(bào)文;

 

(3) 放行出站響應(yīng)報(bào)文

放行所有狀態(tài)為ESTABLISHED的出站報(bào)文;

 

如何保存及重載規(guī)則:

保存:

(1)service iptables save

/etc/sysconfig/iptables文件;

 

(2)iptables-save > /PATH/TO/SOMEFILE

 

重載:

(1)service iptables reload

 

(2)iptables-restore < /PATH/FROM/SOMEFILE

 

NATNetwork AddressTranslation

 

僅從請(qǐng)求報(bào)文判斷,地址轉(zhuǎn)換:

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

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

端口轉(zhuǎn)換:PNAT

 

NAT Server: 能根據(jù)需要實(shí)現(xiàn)所謂的SNAT、DNATPNAT;

并非是用戶空間運(yùn)行的進(jìn)程完成轉(zhuǎn)換功能,靠的是內(nèi)核中地址轉(zhuǎn)換規(guī)則;

 

SNAT:CIP --> SIP: CIP --> SNAT(PIP) --> SIP

CIP: 本地客戶端地址

DNATRemoteIP--> PIP: RemoteIP --> DNAT(SIP) --> SIP

RemoteIP:遠(yuǎn)程客戶端地址;

PNAT:端口轉(zhuǎn)換

 

私有的客戶端訪問互聯(lián)網(wǎng)的方法:

(1)SNAT

(2)Proxy

 

SNAT:主要用于實(shí)現(xiàn)讓內(nèi)網(wǎng)客戶端訪問外部主機(jī)時(shí)使用;

注意:要定義在POSTROUTING鏈;也可以在OUTPUT上使用;

 

定義方法:

iptables -t nat -A POSTROUTING -s 內(nèi)網(wǎng)網(wǎng)絡(luò)或主機(jī)地址 -j SNAT --to-source NAT服務(wù)器上的某外網(wǎng)地址

 

另一個(gè)TARGET

MASQUERADE:地址偽裝;

能自行判斷該轉(zhuǎn)為哪個(gè)源地址;

 

iptables -t nat -A POSTROUTING -s 內(nèi)網(wǎng)網(wǎng)絡(luò)或主機(jī)地址 -j MASQUERADE

 

DNAT:主要用于發(fā)布內(nèi)部服務(wù)器,讓內(nèi)網(wǎng)中的服務(wù)器在外網(wǎng)中可以被訪問到;

注意:要定義在PREROUTING鏈;

 

iptables -t nat -A PREROUTING -d NAT服務(wù)器的某外網(wǎng)地址 -p 某協(xié)議 --dport 某端口 -jDNAT --to-destination 內(nèi)網(wǎng)某服務(wù)器地址[:PORT]

 

FULLNAT: 全地址轉(zhuǎn)換

在請(qǐng)求報(bào)文到時(shí):既修改源地址,又修改目標(biāo)地址

 

 

回顧:

state擴(kuò)展,nat

 

state擴(kuò)展:

tcp finite state machine: 有限狀態(tài)機(jī)

closed, listen, syn_sent, syn_rcvd,established, fin_wait_1, fin_wait_2, close_wait, last_ack, time_wait

 

state: 無論tcp,udp, icmp協(xié)議,都能夠基于connection track template完成連接追蹤;

NEW,ESTABLISHED, RELATED, INVALID

 

內(nèi)核模塊:nf_conntrack, nf_conntrack_ftp

 

專用選項(xiàng):--state

 

nat: 網(wǎng)絡(luò)地址轉(zhuǎn)換;用到的表為nat

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

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

FULLNAT:源地址和目標(biāo)都進(jìn)行轉(zhuǎn)換;

 

nat表相對(duì)應(yīng)鏈:PREROUTING,OUTPUT, POSTROUTING

SNATOUTPUT,POSTROUTING

-jSNAT --to-source

-jMASQUERADE

DNATPREROUTING

PNAT

-jDNAT --to-destination IP[:PORT]

 

iptables(4)

 

TARGET:

ACCEPT

DROP

REJECT

 

SNAT

DNAT

MASQUERADE

 

LOG:日志

REDIRECT:端口重定向;

RETURN: 返回至調(diào)用者;

MARK:防火墻標(biāo)記

 

 

練習(xí):INPUTOUTPUT默認(rèn)策略為DROP

                        iptables -P INPUT DROP

           iptables -P OUTPUT DROP

 

1、限制本地主機(jī)的web服務(wù)器在周一不允許訪問;新請(qǐng)求的速率不能超過100個(gè)每秒;web服務(wù)器包含了admin字符串的頁面不允許訪問;web服務(wù)器僅允許響應(yīng)報(bào)文離開本機(jī);

                      #iptables -A INPUT  -d 172.16.18.1 -p tcp --dport 80 -m time ! --weekdays Mon  limit --limit10/minute --limit-burst 5   

                         ! string --string "admin" --algo kmp -j ACCEPT                

 

                      #iptables -AOUTPUT -s 172.16.18.1 -p tcp --dport 80 -m time ! --weekdays Mon   limit --limit 10/minute --limit-burst 5

                             ! string --string "admin" --algo kmp -j ACCEPT   

 

2、在工作時(shí)間,即周一到周五的8:30-18:00,開放本機(jī)的ftp服務(wù)給172.16.0.0網(wǎng)絡(luò)中的主機(jī)訪問;數(shù)據(jù)下載請(qǐng)求的次數(shù)每分鐘不得超過5個(gè);

                      

                        # iptables -A INPUT  -s 172.16.0.0/16 -d 172.16.18.1 -ptcp --dport 21 -m time--timestart 08:30 --timestop 18:30

                         --weekdays  Mon,Tue,Wed,Thu,Fri  connlimit--connlimit-above 5  -j REJECT

                       

                       #iptables -A  OUTPUT  -s 172.16.18.1 -d 172.16.0.0/16 -p tcp --dport 21 -m time --timestart 08:30 --timestop18:30

                         --weekdays  Mon,Tue,Wed,Thu,Fri  connlimit--connlimit-above 5  -j REJECT

   

 

3、開放本機(jī)的ssh服務(wù)給172.16.x.1-172.16.x.100中的主機(jī),x為你的座位號(hào),新請(qǐng)求建立的速率一分鐘不得超過2個(gè);僅允許響應(yīng)報(bào)文通過其服務(wù)端口離開本機(jī);

iptables -A INPUT -s 172.16.18.1-172.16.18.100  -m  connlimit --connlimit-above 5  -state RELATED -j REJECT

iptables -A OUTPUT -d 172.16.18.1-172.16.18.100  -m  connlimit --connlimit-above 5  -state RELATED -j REJECT

 

4、拒絕TCP標(biāo)志位全部為1及全部為0的報(bào)文訪問本機(jī);

                       iptables -A INPUT -d172.16.18.1 -p tcp --tcp-flags  allnone  -j REJECT

                   

 

5、允許本機(jī)ping別的主機(jī);但不開放別的主機(jī)ping本機(jī);

iptables -A INPUT -d 172.16.18.1 -p tcp --dport 22  -j REJECT

iptables -A OUTPUT -s 172.16.18.1 -p tcp --dport 22 -j ACCEPT

 

練習(xí):判斷下述規(guī)則的意義:

#iptables -N clean_in

#iptables -A clean_in -d 255.255.255.255 -p icmp -j DROP

#iptables -A clean_in -d 172.16.255.255 -p icmp -j DROP

                                            

 

#iptables -A clean_in -p tcp ! --syn -m state --state NEW -j DROP

#iptables -A clean_in -p tcp --tcp-flags ALL ALL -j DROP

#iptables -A clean_in -p tcp --tcp-flags ALL NONE -j DROP

#iptables -A clean_in -d 172.16.100.7 -j RETURN

 

 

#iptables -A INPUT -d 172.16.100.7 -j clean_in

 

#iptables -A INPUT  -i lo -j ACCEPT

#iptables -A OUTPUT -o lo -j ACCEPT

                        運(yùn)行從lo端口進(jìn)入以及出去

 

#iptables -A INPUT  -i eth0 -m multiport-p tcp --dports 53,113,135,137,139,445 -j DROP

#iptables -A INPUT  -i eth0 -m multiport-p udp --dports 53,113,135,137,139,445 -j DROP

#iptables -A INPUT  -i eth0 -p udp --dport1026 -j DROP

#iptables -A INPUT  -i eth0 -m multiport-p tcp --dports 1433,4899 -j DROP

 

#iptables -A INPUT  -p icmp -m limit--limit 10/second -j ACCEPT

 

 

課外任務(wù):研究recent擴(kuò)展的用法

 

利用iptablesrecent模塊來抵御DOS***:

 

 

ssh: 遠(yuǎn)程連接,

 

iptables-I INPUT -p tcp --dport 22 -m connlimit --connlimit-above 3 -j DROP

 

 

iptables-I INPUT  -p tcp --dport 22 -m state--state NEW -m recent --set --name SSH

iptables-I INPUT  -p tcp --dport 22 -m state--state NEW -m recent --update --seconds 300 --hitcount 3 --name SSH -j LOG--log-prefix "SSH Attack: "

iptables-I INPUT  -p tcp --dport 22 -m state--state NEW -m recent --update --seconds 300 --hitcount 3 --name SSH -j DROP

 

1.利用connlimit模塊將單IP的并發(fā)設(shè)置為3;會(huì)誤殺使用NAT上網(wǎng)的用戶,可以根據(jù)實(shí)際情況增大該值;

 

2.利用recentstate模塊限制單IP300s內(nèi)只能與本機(jī)建立2個(gè)新連接。被限制五分鐘后即可恢復(fù)訪問。

 

下面對(duì)最后兩句做一個(gè)說明:

 

1.第二句是記錄訪問tcp 22端口的新連接,記錄名稱為SSH

--set 記錄數(shù)據(jù)包的來源IP,如果IP已經(jīng)存在將更新已經(jīng)存在的條目

 

2.第三句是指SSH記錄中的IP,300s內(nèi)發(fā)起超過3次連接則拒絕此IP的連接。

--update 是指每次建立連接都更新列表;

--seconds必須與--rcheck或者--update同時(shí)使用

--hitcount必須與--rcheck或者--update同時(shí)使用

 

3.iptables的記錄:/proc/net/xt_recent/SSH


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

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

AI