亚洲熟女综合色一区二区三区,亚洲精品中文字幕无码蜜桃,亚洲va欧美va日韩va成人网,亚洲av无码国产一区二区三区,亚洲精品无码久久久久久久

Linux基礎(chǔ)教程之iptables/netfilter入門到進(jìn)階

隨著互聯(lián)網(wǎng)技術(shù)的方興未艾,各種網(wǎng)絡(luò)應(yīng)用層出不窮,網(wǎng)絡(luò)攻擊、黑客入侵也成了網(wǎng)民暢游互聯(lián)網(wǎng)的心頭大患,互聯(lián)網(wǎng)安全也愈加受到了人們的重視。網(wǎng)絡(luò)防火墻,作為一種簡(jiǎn)單高效的互聯(lián)網(wǎng)防御手段,逐漸成為了網(wǎng)民暢游網(wǎng)絡(luò)世界的保護(hù)傘。下面筆者介紹下Linux系統(tǒng)的守衛(wèi)者——iptables/netfilter。

?一 兄弟齊心,其利斷金

?iptables/netfilter就像一對(duì)兄弟,netfilter是大哥,善使長(zhǎng)鉤;iptables是小弟,擅長(zhǎng)書記。這兩兄弟一武一文,掌握著守城重任。

?netfilter大哥師承名門,身負(fù)五把長(zhǎng)鉤,每一個(gè)流經(jīng)他的數(shù)據(jù)流都逃不過他的法眼,只見得五把長(zhǎng)鉤上下翻飛舞得水泄不通,將那不符合規(guī)則的數(shù)據(jù)包挑落馬下。這五把長(zhǎng)鉤埋伏在城門的五個(gè)位置,分別是:NF_IP_PRE_ROUTING、NF_IP_LOCAL_IN、NF_IP_FORWARD、NF_IP_POST_ROUTING、NF_IP_LOCAL_OUT。他們分別對(duì)應(yīng)了下圖的五個(gè)位置。

iptables小弟學(xué)富五車,手拿生死簿,記載了亂臣賊子的具體情況,netfilter大哥就是按照生死簿的記載檢查每個(gè)數(shù)據(jù)包,以辨忠奸。

二 四章生死簿

生死簿內(nèi)所載內(nèi)容分為四個(gè)章節(jié):raw、mangle、nat、filter

raw、mangle記載了極高深的內(nèi)容,正所謂曲高和寡,平常極少用到。filter里記錄了過濾規(guī)則;nat表記錄了地址轉(zhuǎn)換和端口映射相關(guān)規(guī)則。

三 iptables命令

iptables [-t tablename] {-A|-D|-I|-F|-L|-Z|-P} 鏈名 rule-specification

-t 指定表名,默認(rèn)為filter表

-A 追加防火墻規(guī)則

-D 刪除規(guī)則

-I 插入規(guī)則

-F 清空規(guī)則

-L 列出規(guī)則

-R 替換規(guī)則

-Z 清空計(jì)數(shù)

-P 設(shè)置鏈默認(rèn)規(guī)則

鏈管理:

-N 創(chuàng)建新鏈

-X 刪除用戶自定義引用計(jì)數(shù)為0的空鏈

-E 自定義鏈重命名

-S 列出選定鏈的規(guī)則

[!] -p 匹配協(xié)議

[!] -s 匹配源地址

[!] -d 匹配目標(biāo)地址

[!] -i 匹配入站網(wǎng)卡地址

[!] -o 匹配出站網(wǎng)卡地址

[!] –sport 匹配源端口

[!] –dport 匹配目的端口

[!] –src-range 匹配源地址范圍

[!] –dst-range 匹配目的地址范圍

[!] –limit 匹配數(shù)據(jù)表速率

[!] –mac-source 匹配mac地址

[!] –state 匹配狀態(tài)(INVALID ESTABLISHED NEW RELATED)

[!] –string 匹配應(yīng)用層字串

觸發(fā)動(dòng)作:

ACCEPT 允許數(shù)據(jù)包通過

DROP 丟棄數(shù)據(jù)包

REJECT 拒絕數(shù)據(jù)包通過

LOG 將數(shù)據(jù)包信息記錄syslog日志

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

SNAT 源地址轉(zhuǎn)換

MASQUERADE 地址欺騙

REDIRRECT 重定向

?四 filter表規(guī)則

filter表是最常被使用的表,是iptables命令默認(rèn)修改的表。它包含了3條鏈,分別是input、forward和output,分別用來制定進(jìn)入本機(jī)、轉(zhuǎn)發(fā)和離開本機(jī)的數(shù)據(jù)包規(guī)則。

1? 修改默認(rèn)規(guī)則

使用iptables -P命令修改默認(rèn)規(guī)則,例如:

iptables -P INPUT ACCEPT

建議在input鏈最后添加DROP規(guī)則,例如:

iptables -A INPUT -p tcp -d 172.18.55.7 -j
DROP

這樣即使清空規(guī)則后也不會(huì)斷網(wǎng)。

2 增、刪、改規(guī)則

使用-A在鏈尾增加規(guī)則;使用-I可以指定添加規(guī)則的位置,如不指定位置序號(hào),則在開頭增加,例如除了22端口以外,禁止連接本機(jī)的端口:

iptables -A INPUT -p tcp -d 172.18.55.7 -j
DROP

iptables -I INPUT -d 172.18.55.7 -p tcp
–dport 22 ACCEPT

使用-D可以刪除某條規(guī)則,例如刪除某一條規(guī)則

iptabels -D INPUT 1

3 擴(kuò)展規(guī)則

擴(kuò)展規(guī)則分為顯式擴(kuò)展和隱式擴(kuò)展,顯式擴(kuò)展是指使用-m參數(shù);隱式擴(kuò)展是指在-p參數(shù)后可以省略-m參數(shù)。

隱式擴(kuò)展包括的參數(shù)有:

-p tcp

[!] –source-port,–sport port[:port]

[!] –destination-port,–dport port[:port]

[!] –tcp-flags mask comp

[!] –syn

-p udp

[!] –source-port,–sport port[:port]

[!] –destination-port,–dport port[:port]

-p icmp

[!] –icmp-type {type[/code]|typename}

0/0: echo reply

8/0:echo request

顯式擴(kuò)展包括的參數(shù)有:

-m multiport

以離散或連續(xù)的
方式定義多端口匹配條件,最多15個(gè);

[!] –source-ports,–sports port[,port|,port:port]…:指定多個(gè)源端口;

[!] –destination-ports,–dports
port[,port|,port:port]…:指定多個(gè)目標(biāo)端口;

例:# iptables -I INPUT? -d
172.16.0.7 -p tcp -m multiport –dports 22,80,139,445,3306 -j ACCEPT

-m iprange

以連續(xù)地址塊的方式來指明多IP地址匹配條件;

[!] –src-range from[-to]

[!] –dst-range from[-to]

例:# iptables -I INPUT -d 172.16.0.7 -p tcp -m multiport –dports
22,80,139,445,3306 -m iprange –src-range 172.16.0.61-172.16.0.70 -j REJECT

-m time

以時(shí)間或日期作為包過濾條件

–timestart hh:mm[:ss]

–timestop hh:mm[:ss]

[!] –weekdays day[,day…]

[!] –monthdays day[,day…]

–datestart YYYY[-MM[-DD[Thh[:mm[:ss]]]]]

–datestop YYYY[-MM[-DD[Thh[:mm[:ss]]]]]

–kerneltz:使用內(nèi)核配置的時(shí)區(qū)而非默認(rèn)的UTC;

-m string

以字符串為條件過濾數(shù)據(jù)包

–algo {bm|kmp}

[!] –string pattern

[!] –hex-string pattern

–from offset

–to offset

~]# iptables -I OUTPUT -m string –algo bm
–string “gay” -j REJECT

-m connlimit

限制每個(gè)IP連接服務(wù)器的連接數(shù)

–connlimit-upto n

–connlimit-above n

~]# iptables -I INPUT -d 172.16.0.7 -p tcp
–syn –dport 22 -m connlimit –connlimit-above 2 -j REJECT

-m limit

限制連接速率

–limit rate[/second|/minute|/hour|/day]

–limit-burst number

~]# iptables -I OUTPUT -s 172.16.0.7 -p
icmp –icmp-type 0 -j ACCEPT

-m state

“state”擴(kuò)展是對(duì)”conntrack”子模塊的擴(kuò)展。? “state”擴(kuò)展可以依照連接的狀態(tài)過濾數(shù)據(jù)包。

[!] –state state

INVALID, ESTABLISHED, NEW, RELATED or
UNTRACKED.

NEW: 新連接請(qǐng)求;

ESTABLISHED:已建立的連接;

INVALID:無(wú)法識(shí)別的連接;

RELATED:相關(guān)聯(lián)的連接,當(dāng)前連接是一個(gè)新請(qǐng)求,但附屬于某個(gè)已存在的連接;

UNTRACKED:未追蹤的連接;

state擴(kuò)展:

內(nèi)核模塊裝載:

nf_conntrack

nf_conntrack_ipv4

手動(dòng)裝載:

nf_conntrack_ftp

追蹤到的連接:

/proc/net/nf_conntrack

調(diào)整可記錄的連接數(shù)量最大值:

/proc/sys/net/nf_conntrack_max

調(diào)整超時(shí)時(shí)長(zhǎng):

/proc/sys/net/netfilter/*timeout*

4 處理動(dòng)作(跳轉(zhuǎn)目標(biāo))

-j targetname [per-target-options]

簡(jiǎn)單target:

ACCEPT, DROP

擴(kuò)展target:

REJECT

–reject-with type

LOG

–log-level

–log-prefix

5保存和載入規(guī)則:

保存:iptables-save > /PATH/TO/SOME_RULE_FILE

重載:iptabls-restore < /PATH/FROM/SOME_RULE_FILE

-n, –noflush:不清除原有規(guī)則

-t, –test:僅分析生成規(guī)則集,但不提交

五 nat表規(guī)則

iptables不僅可以實(shí)現(xiàn)數(shù)據(jù)包過濾,還可以實(shí)現(xiàn)網(wǎng)絡(luò)地址轉(zhuǎn)換,這項(xiàng)功能是通過修改nat表實(shí)現(xiàn)的。nat表一般作用在PREROUTING和POSTRONTING鏈上,然后通過FORWARD鏈過濾流經(jīng)的數(shù)據(jù)包。

示例:將流經(jīng)網(wǎng)關(guān)的數(shù)據(jù)包的源地址改為192.168.10.254

iptables -t nat -A POSTROUTING -s 172.18.0.0/16 -j SNAT –to-source
192.168.10.254

如果是撥號(hào)地址,那么可以用MASQUERADE參數(shù)

示例:將流入網(wǎng)關(guān)80端口的數(shù)據(jù)包轉(zhuǎn)發(fā)給192.168.10.2

iptables -t nat -A PREROUTING -d 172.18.55.7 -p tcp –dport 80 -j DNAT
–to-destination 192.168.10.2

相關(guān)新聞

歷經(jīng)多年發(fā)展,已成為國(guó)內(nèi)好評(píng)如潮的Linux云計(jì)算運(yùn)維、SRE、Devops、網(wǎng)絡(luò)安全、云原生、Go、Python開發(fā)專業(yè)人才培訓(xùn)機(jī)構(gòu)!