




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、ChinaUnix 講座,iptables 高級使用研討 2010.08.07 最后修改時間:2010.08.07 文檔維護者:白金(platinum),v1.0.0,主題大綱,1. 基礎部分 2. 一些誤區(qū) 3. 高級技巧 4. 提高部分 5. FAQ,1. 基礎部分,1.1 REDIRECT 與 DNAT 的區(qū)別? 1.2 MASQUERADE 與 SNAT 的區(qū)別? 1.3 -j 與 -g 的區(qū)別? 1.4 raw 表的用途? 1.5 何為專表專用、專鏈專用?,1.0 回顧,-PREROUTING-ROUTE-FORWARD-POSTROUTING- raw | mangle mangl
2、e mangle | filter | nat nat | | v | INPUT OUTPUT | mangle raw | filter | mangle | | nat | | filter v -local-|,1.0 回顧,語法: iptables -t table -A rule -m -j TARGET,1.1 REDIRECT 與 DNAT 的區(qū)別?,環(huán)境:WAN(eth0), LAN(eth1) iptables -t nat -A PREROUTING -i eth1 -p tcp -dport 80 -j REDIRECT -to 3128 iptables -t nat
3、 -A PREROUTING -i eth1 -p tcp -dport 80 -j DNAT -to :3128 iptables -t nat -A PREROUTING -i eth0 -p tcp -dport 3389 -j DNAT -to 50,結(jié)論:REDIRECT 是 DNAT 的一個特例 DNAT 的功能更強大,1.2 MASQUERADE 與 SNAT 的區(qū)別?,iptables -t nat -s /24 -o eth0 -j MASQUERADE iptables -t nat -s 172.16.11
4、.0/24 -o eth0 -j SNAT -to 23 iptables -t nat -s /24 -o eth0 -j SNAT -to -0,結(jié)論:MASQUERADE 自動根據(jù)路由選擇出口 SNAT 適用于固定 IP 的環(huán)境,負載小 SNAT 可實現(xiàn)地址面積映射,1.3 -j 與 -g 的區(qū)別?,iptables -N TESTA iptables -N TESTB iptables -A FORWARD -s -j TESTA iptables -A FORW
5、ARD -s -g TESTB iptables -A TESTA -j MARK -set-mark 1 iptables -A TESTB -j MARK -set-mark 2 iptables -A FORWARD -m mark -mark 1 -j DROP iptables -A FORWARD -m mark -mark 2 -j DROP,結(jié)論:-j(jump)相當于調(diào)用,自定義鏈結(jié)束后返回 -g(goto)一去不復返,1.4 raw 表的用途?,man iptables iptables -t raw -vnL iptables -t raw -A
6、PREROUTING -i eth1 -s 50 -j DROP,結(jié)論:raw 表工作于最前端,在 conntrack 之前 可以明確對某些數(shù)據(jù)不進行連接追蹤 raw 可提前 DROP 數(shù)據(jù),有效降低負載,1.5 何為專表專用、專鏈專用?,filter:專門用于過濾數(shù)據(jù) nat: 用于地址轉(zhuǎn)換(只匹配初始連接數(shù)據(jù)) mangle:用于修改數(shù)據(jù)包內(nèi)容 raw: 用于在連接追蹤前預處理數(shù)據(jù) PREROUTING: 用于匹配最先接觸到的數(shù)據(jù)(raw,mangle,nat) INPUT: 用于匹配到達本機的數(shù)據(jù) (mangle,filter) FORWARD: 用于匹配穿越本機的
7、數(shù)據(jù) (mangle,filter) OUTPUT: 用于匹配從本機發(fā)出的數(shù)據(jù) (raw,mangle,nat,filter) POSTROUTING:用于匹配最后離開的數(shù)據(jù) (mangle,nat),2. 一些誤區(qū),2.1 一個公網(wǎng) IP 的最大連接數(shù)? 2.2 該不該使用 LOG? 2.3 limit 到底應如何使用? 2.4 iptables 能阻止 synflood 攻擊嗎? 2.5 我的 iptables 腳本有什么問題?,2.1 一個公網(wǎng) IP 的最大連接數(shù)?,static u_int32_t _hash_conntrack(const struct nf_conntrack_tu
8、ple *tuple, u16 zone, unsigned int size, unsigned int rnd) unsigned int n; u_int32_t h; /* The direction must be ignored, so we hash everything up to the * destination ports (which is a multiple of 4) and treat the last * three bytes manually. */ n = (sizeof(tuple-src) + sizeof(tuple-dst.u3) / sizeo
9、f(u32); h = jhash2(u32 *)tuple, n, zone rnd (_force _u16)tuple-dst.u.all tonum); return (u64)h * size) 32; ,結(jié)論:可以最大有 nf_conntrack_max 個連接,2.2 該不該使用 LOG?,數(shù)據(jù)包記錄流程: 獲取數(shù)據(jù)包 分析包信息(根據(jù)各協(xié)議計算各部分數(shù)據(jù)偏移量) 打印內(nèi)核信息(根據(jù)不同協(xié)議打印不同信息) syslog 捕獲內(nèi)核信息 根據(jù) syslog 配置決定如何輸出(文件/遠程) iptables -A FORWARD -m state -state NEW -
10、p tcp ! -syn -j LOG-log-prefix BAD TCP iptables -A FORWARD -m state -state NEW -p tcp ! -syn -j DROP,結(jié)論:LOG 需占用一定負載,盡量不寫硬盤 如須記錄,盡量少記,否則雪上加霜,2.3 limit 到底應如何使用?,錯誤: iptables -A FORWARD -p icmp -s /24 -m limit -limit 10/s -j DROP 正確: iptables -A FORWARD -p icmp -s /24 -m limit -li
11、mit 10/s -j ACCEPT iptables -A FORWARD -p icmp -s /24 -j DROP,結(jié)論:limit 僅按一定速率匹配數(shù)據(jù) 若限制,先放過一定速率數(shù)據(jù),然后阻斷,2.4 能阻止 synflood 攻擊嗎?,iptables -N syn_flood iptables -A INPUT -p tcp -syn -j syn_flood iptables -A syn_flood -m limit -limit 1/s -j RETURN iptables -A syn_flood -j DROP 攻擊強度微弱猛烈無攻擊 訪問效果(無防
12、)很難訪問無法訪問正常訪問 服務器負載中高低 訪問效果(限速)無法訪問無法訪問極難訪問 服務器負載無無無,結(jié)論:限速方案是一把雙刃劍,治標不治本 啟用 syncookie,減小 synack_retries 增大 tcp_max_syn_backlog,其它,2.5 我的腳本有什么問題?,你的需求?,你的環(huán)境?,你的做法?,你的態(tài)度?,你的?,結(jié)論:提問前,請參考提問的智慧,3. 高級技巧,3.1 如何訪問部分網(wǎng)站時不使用 squid? 3.2 如何防止被探測 SSH 密碼? 3.3 如何實現(xiàn) IP/MAC 綁定? 3.4 如何防止小路由(及如何破解)? 3.5 如何防止被 tracert?
13、3.6 如何實現(xiàn)服務器負載分擔? 3.7 如何得知內(nèi)網(wǎng)用戶流量? 3.8 如何對 DNS 域名進行過濾? 3.9 如何有效阻止瘋狂下載人士?,3.1 訪問部分網(wǎng)站不使用 squid?,iptables -t nat -A PREROUTING -i eth1 -s 50 -j ACCEPT iptables -t nat -A PREROUTING -i eth1 -d 23 -j ACCEPT iptables -t nat -A PREROUTING -i eth1 -s /24 -j REDIRECT -to 3128
14、,結(jié)論:讓無需轉(zhuǎn)向的數(shù)據(jù)提前脫離“魔掌”,3.2 如何防止被探測 SSH 密碼?,iptables -A INPUT -p tcp -dport 22 -m state -state NEW -m recent -set -name SSH -rsource -m recent -name SSH -update -seconds 10 -hitcount 4 -rsource -j DROP,結(jié)論:模塊可以在同一個規(guī)則內(nèi)反復使用 優(yōu)點:合并使用可降低負載,3.3 如何實現(xiàn) IP/MAC 綁定?,iptables -N MAC_CHECK iptables -A FORWARD -i eth1
15、 -o eth0 -j MAC_CHECK iptables -A MAC_CHECK -s 01 -m mac -mac-source XX:XX:XX:XX:XX:XX -j RETURN iptables -A MAC_CHECK -s 02 -m mac -mac-source YY:YY:YY:YY:YY:YY -j RETURN iptables -A MAC_CHECK -s 03 -m mac -mac-source ZZ:ZZ:ZZ:ZZ:ZZ:ZZ -j RETURN iptables -A MAC_CHEC
16、K -j DROP,3.4 如何防止小路由(及破解)?,iptables -N TTL_CHECK iptables -A FORWARD -i eth1 -o eth0 -j TTL_CHECK iptables -A TTL_CHECK -m ttl -ttl-eq 128 -j RETURN iptables -A TTL_CHECK -m ttl -ttl-eq 64 -j RETURN iptables -A TTL_CHECK -m ttl -ttl-eq 255 -j RETURN iptables -A TTL_CHECK -j DROP,3.5 如何防止被 tracert?,
17、ping ?= tracert ping = ICMP tracert = TTL 試探 iptables -A INPUT -m ttl -ttl-eq 1 -j DROP iptables -A INPUT -m ttl -ttl-lt 4 -j DROP iptables -A FORWARD -m ttl -ttl-lt 6 -j DROP 如何一跳直達?,3.6 如何實現(xiàn)服務器負載分擔?,iptables -t nat -A PREROUTING -i eth0 -p tcp -dport 80 -m statistic -mode nth -every 3 -j DNAT -to
18、01 iptables -t nat -A PREROUTING -i eth0 -p tcp -dport 80 -m statistic -mode nth -every 2 -j DNAT -to 02 iptables -t nat -A PREROUTING -i eth0 -p tcp -dport 80 -j DNAT -to 03 statistic 的其它用途? iptables -A FORWARD -i eth1 -o eth0 -s 50 -m statistic -mode ran
19、dom -probability 0.1 -j DROP,3.7 如何得知內(nèi)網(wǎng)用戶流量?, iptables -A FORWARD -j ACCOUNT -addr /24 -tname LOCALNET iptaccount -a iptaccount -l LOCALNET iptaccount -l LOCALNET -f crond + shell + ACCOUNT,3.8 如何對 DNS 域名進行過濾?,為什么 string 模塊無法匹配? DNS 數(shù)據(jù)包結(jié)構? string 和 layer7 的實現(xiàn): iptables -A FORWARD -m string -algo bm -hex-string |03|www|09|chinaunix|03|com -j DROP dns_CU x03wwwx09chinaunixx03net iptables -A FORWARD -m layer7 -l7proto dns_CU -j DROP,3.9 如何有效阻止瘋狂下載人士?,connlim
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 違法建筑拆除與建筑安全評估合同協(xié)議
- 參賽證明設計方案
- 街道防汛項目建設方案
- 幼兒園意外傷害的急救與預防培訓
- 油漆技師考試題及答案
- 環(huán)境健康與毒理學研究框架
- 在職口語考試題及答案
- 招商專員面試題及答案
- 2026版《全品高考》選考復習方案生物0506 微專題6 基因位置的判斷及相關實驗設計含答案
- 汽車美容與裝飾實訓課件 18-0項目七 任務三 后尾翼板安裝飾實訓
- DB511044-2022孤兒成年后社會融合能力評估社會工作服務指南
- 江蘇省徐州市2023-2024學年八年級下學期期末數(shù)學試卷(含答案解解)
- 石家莊市國企招聘考試真題題庫2024版
- 畫家簽約合同模板
- 人體常見病智慧樹知到期末考試答案章節(jié)答案2024年
- DZ∕T 0051-2017 地質(zhì)巖心鉆機型式與規(guī)格系列(正式版)
- 企業(yè)5S標準化管理
- 社區(qū)工作者招聘考試歷年真題庫含備考資料
- 噪聲測試數(shù)據(jù)分析報告
- 2024年貴州國企:貴州鋼繩集團有限責任公司招聘筆試參考題庫含答案解析
- 國家開放大學《市場營銷原理與實務》形考任務1參考答案
評論
0/150
提交評論