2小时玩转iptables企业版

上传人:壹****1 文档编号:570313084 上传时间:2024-08-03 格式:PPT 页数:54 大小:559.50KB
返回 下载 相关 举报
2小时玩转iptables企业版_第1页
第1页 / 共54页
2小时玩转iptables企业版_第2页
第2页 / 共54页
2小时玩转iptables企业版_第3页
第3页 / 共54页
2小时玩转iptables企业版_第4页
第4页 / 共54页
2小时玩转iptables企业版_第5页
第5页 / 共54页
点击查看更多>>
资源描述

《2小时玩转iptables企业版》由会员分享,可在线阅读,更多相关《2小时玩转iptables企业版(54页珍藏版)》请在金锄头文库上搜索。

1、ChinaUnixChinaUnix講座講座2小時玩轉iptables企業版2006.03.18最後修改時間:最後修改時間:2006.07.232006.07.23文檔維護者:白金文檔維護者:白金(platinum)(platinum)、陳緒、陳緒(bjchenxu)(bjchenxu)v1.5.2v1.5.2v1.5.2v1.5.2主題大綱1.概述2.框架圖3.語法4.實例分析5.網管策略6.使用總則、FAQ7.實戰1.概述2.4.x、2.6.x內核netfilter/iptables2.1框架圖-PREROUTING-ROUTE-FORWARD-POSTROUTING- mangle |

2、mangle mangle nat |filter |nat | | | | v | INPUT OUTPUT | mangle mangle |filter | nat v -local-| filter2.2鏈和表表filter: 顧名思義,用於過濾的時候nat: 顧名思義,用於做NAT的時候 NAT:Network Address Translator鏈INPUT: 位於filter 表,匹配目的IP是本機的數據包FORWARD: 位於filter 表,匹配穿過本機的資料包,PREROUTING: 位於nat 表,用於修改目的地址(DNAT)POSTROUTING:位於nat 表,用於修

3、改源地址 (SNAT)3.1 iptables語法概述iptables -t要操作的表 要操作的鏈 規則號碼 匹配條件 -j匹配到以後的動作3.2命令概述操作命令(-A、-I、-D、-R、-P、-F)查看命令(-vnxL)3.2.1 -A-A APPEND,追加一條規則(放到最後)例如: iptables -t filter -A INPUT -j DROP 在filter 表的INPUT 鏈裡追加一條規則(作為最後一條規則) 匹配所有訪問本機IP的資料包,匹配到的丟棄3.2.2 -I-I 規則號碼 INSERT,插入一條規則例如: iptables -I INPUT -j DROP 在fil

4、ter 表的INPUT 鏈裡插入一條規則(插入成第1 條) iptables -I INPUT 3 -j DROP 在filter 表的INPUT 鏈裡插入一條規則(插入成第3 條)注意:1、-tfilter 可不寫,不寫則自動默認是filter 表 2、-I 鏈名規則號碼,如果不寫規則號碼,則預設是1 3、確保規則號碼 (已有規則數+ 1),否則報錯3.2.3 -D-D DELETE,刪除一條規則例如: iptables -D INPUT 3(按號碼匹配) 刪除filter 表INPUT 鏈中的第三條規則(不管它的內容是什麼) iptables -D INPUT -s 192.168.0.1

5、 -j DROP(按內容匹配) 刪除filter 表INPUT 鏈中內容為“-s 192.168.0.1 -j DROP”的規則 (不管其位置在哪裡)注意: 1、若規則清單中有多條相同的規則時,按內容匹配只刪除序號最小的一條 2、按號碼匹配刪除時,確保規則號碼 已有規則數,否則報錯 3、按內容匹配刪除時,確保規則存在,否則報錯3.2.3 -R-R REPLACE,替換一條規則例如: iptables -R INPUT 3 -j ACCEPT 將原來編號為3的規則內容替換為“-j ACCEPT”注意: 確保規則號碼 已有規則數,否則報錯3.2.4 -P-P POLICY,設置某個鏈的預設規則例如

6、: iptables -P INPUT DROP 設置filter 表INPUT 鏈的預設規則是DROP注意: 當資料包沒有被規則清單裡的任何規則匹配到時,按此預設規則處理。動作前面不能加j,這也是唯一一種匹配動作前面不加j的情況。3.2.5 -F-F 鏈名 FLUSH,清空規則例如: iptables -F INPUT 清空filter 表INPUT 鏈中的所有規則 iptables -t nat -F PREROUTING 清空nat 表PREROUTING鏈中的所有規則注意: 1、-F僅僅是清空鏈中規則,並不影響-P設置的預設規則 2、-P設置了DROP後,使用-F一定要小心! 3、如果

7、不寫鏈名,默認清空某表裡所有鏈裡的所有規則3.2.6 -vxnL-L 鏈名 LIST,列出規則 v:顯示詳細資訊,包括每條規則的匹配包數量和匹配位元組數 x:在v的基礎上,禁止自動單位換算(K、M) n:只顯示IP位址和埠號碼,不顯示功能變數名稱和服務名稱例如: iptables -L 粗略列出filter 表所有鏈及所有規則 iptables -t nat -vnL 用詳細方式列出nat 表所有鏈的所有規則,只顯示IP位址和埠號 iptables -t nat -vxnL PREROUTING 用詳細方式列出nat 表PREROUTING鏈的所有規則以及詳細數位,不反解3.3匹配條件流入、流

8、出介面(-i、-o)來源、目的地址(-s、-d)協議類型 (-p)來源、目的埠(-sport、-dport)3.3.1按網路介面匹配-i 例如: -i eth0 匹配是否從網路介面eth0進來 -i ppp0 匹配是否從網路介面ppp0進來-o匹配資料流程出的網路介面例如: -o eth0 -o ppp03.3.2按來源目的地址匹配-s 可以是IP、NET、DOMAIN,也可空(任何位址)例如: -s 192.168.0.1 匹配來自192.168.0.1的數據包 -s 192.168.1.0/24 匹配來自192.168.1.0/24網路的資料包 -s 192.168.0.0/16 匹配來自

9、192.168.0.0/16網路的資料包-d 可以是IP、NET、DOMAIN,也可以空例如: -d 202.106.0.20 匹配去往202.106.0.20的數據包 -d 202.106.0.0/16 匹配去往202.106.0.0/16網路的資料包 -d 匹配去往功能變數名稱的數據包3.3.3按協議類型匹配 -p 可以是TCP、UDP、ICMP等,也可為空例如: -p tcp -p udp -p icmp -icmp-type類型 ping: type 8 pong: type 03.3.4按來源目的埠匹配-sport 可以是個別埠,可以是埠範圍例如: -sport 1000 匹配源埠

10、是1000的數據包 -sport 1000:3000 匹配源埠是1000-3000的數據包(含1000、3000) -sport :3000 匹配源埠是3000以下的資料包(含3000) -sport 1000: 匹配源埠是1000以上的資料包(含1000)-dport 可以是個別埠,可以是埠範圍例如: -dport 80 匹配源埠是80的數據包 -dport 6000:8000 匹配源埠是6000-8000的數據包(含6000、8000) -dport :3000 匹配源埠是3000以下的資料包(含3000) -dport 1000: 匹配源埠是1000以上的資料包(含1000)注意:-sp

11、ort和-dport必須配合-p參數使用3.3.5匹配應用舉例1、埠匹配-p udp -dport 53匹配網路中目的地址是53的UDP協定資料包2、地址匹配-s 10.1.0.0/24 -d 172.17.0.0/16匹配來自10.1.0.0/24去往172.17.0.0/16的所有資料包3、埠和位址聯合匹配-s 192.168.0.1 -d -p tcp -dport 80匹配來自192.168.0.1,去往的80埠的TCP協定資料包注意:1、-sport、-dport必須聯合-p使用,必須指明協定類型是什麼2、條件寫的越多,匹配越細緻,匹配範圍越小3.4動作(處理方式)ACCEPTDR

12、OPSNATDNATMASQUERADE3.4.1 -j ACCEPT-j ACCEPT 通過,允許資料包通過本鏈而不攔截它 類似Cisco中ACL裡面的permit例如: iptables -A INPUT -j ACCEPT 允許所有訪問本機IP的資料包通過3.4.2 -j DROP-j DROP 丟棄,阻止資料包通過本鏈而丟棄它 類似Cisco中ACL裡的deny例如: iptables -A FORWARD -s 192.168.80.39 -j DROP 阻止來源地址為192.168.80.39的資料包通過本機3.4.4 -j DNAT-j DNAT -to IP-IP:埠-埠(na

13、t 表的PREROUTING 鏈) 目的地址轉換,DNAT支援轉換為單IP,也支援轉換到IP位址集區 (一組連續的IP地址)例如:iptables -tnat -APREROUTING -i ppp0 -p tcp -dport 80 -j DNAT -to 192.168.0.1把從ppp0進來的要訪問TCP/80的數據包目的地址改為192.168.0.1iptables -tnat -APREROUTING -i ppp0 -p tcp -dport 81 -j DNAT -to 192.168.0.2:80iptables -tnat -APREROUTING -i ppp0 -p tc

14、p -dport 80 -j DNAT -to 192.168.0.1-192.168.0.103.4.3 -j SNAT-j SNAT -to IP-IP:埠-埠(nat 表的POSTROUTING鏈) 源位址轉換,SNAT支援轉換為單IP,也支援轉換到IP位址集區 (一組連續的IP地址)例如:iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT -to 1.1.1.1將內網192.168.0.0/24的原地址修改為1.1.1.1,用於NATiptables -t nat -A POSTROUTING -s 192.168.0.0/

15、24 -j SNAT -to 1.1.1.1-1.1.1.10同上,只不過修改成一個位址集區裡的IP3.4.5 -j MASQUERADE-j MASQUERADE動態源位址轉換(動態IP的情況下使用)例如: iptables -tnat -APOSTROUTING -s 192.168.0.0/24 -j MASQUERADE 將源地址是192.168.0.0/24的資料包進行位址偽裝3.5附加模組按包狀態匹配 (state)按來源MAC匹配(mac)按包速率匹配 (limit)多埠匹配 (multiport)3.5.1 state-m state -state狀態狀態:NEW、RELATE

16、D、ESTABLISHED、INVALID NEW:有別於tcp的syn ESTABLISHED:連接態 RELATED:衍生態,與conntrack關聯(FTP) INVALID:不能被識別屬於哪個連接或沒有任何狀態例如: iptables -AINPUT -m state -state RELATED,ESTABLISHED -j ACCEPT3.5.2 mac-m mac -mac-source MAC匹配某個MAC地址例如: iptables -AFORWARD -m mac -mac-source xx:xx:xx:xx:xx:xx -j DROP 阻斷來自某MAC位址的資料包,通過

17、本機注意:報文經過路由後,資料包中原有的mac資訊會被替換,所以在路由後的iptables中使用mac模組是沒有意義的3.5.3 limit-m limit -limit匹配速率-burst緩衝數量 用一定速率去匹配資料包例如: iptables -AFORWARD -d 192.168.0.1 -m limit -limit 50/s -j ACCEPT iptables -AFORWARD -d 192.168.0.1 -j DROP注意: limit英語上看是限制的意思,但實際上只是按一定速率去匹配而已,要想限制的話後面要再跟一條DROP3.5.4 multiport-m multipo

18、rt 埠1,埠2,.,埠n一次性匹配多個埠,可以區分源埠,目的埠或不指定埠例如: iptables -AINPUT -p tcp -m multiport -dports 21,22,25,80,110 -j ACCEPT注意: 必須與-p參數一起使用4.實例分析單伺服器的防護如何做閘道如何限制內網用戶內網如何做對外伺服器連接追蹤模組4.1單伺服器的防護弄清對外服務物件書寫規則 網路介面lo的處理 狀態監測的處理 協議+埠的處理實例:一個普通的web伺服器iptables -AINPUT -i lo -j ACCEPTiptables -AINPUT -p tcp -m multiport -

19、dports 22,80 -j ACCEPTiptables -AINPUT -m state -state RELATED,ESTABLISHED -j ACCEPTiptables -PINPUT DROP注意:確保規則順序正確,弄清邏輯關係,學會時刻使用-vnL4.2如何做閘道弄清網路拓撲本機上網設置nat 啟用路由轉發 地址偽裝SNAT/MASQUERADE實例:ADSL撥號上網的拓撲echo 1 /proc/sys/net/ipv4/ip_forwardiptables -tnat -APOSTROUTING -s 192.168.1.0/24 -o ppp0 -j MASQUERA

20、DE4.3如何限制內網用戶過濾位置filer表FORWARD 鏈匹配條件-s -d -p -s/dport處理動作ACCEPT DROP實例:iptables -AFORWARD -s 192.168.0.3 -j DROPiptables -AFORWARD -m mac -mac-source 11:22:33:44:55:66 -j DROPiptables -AFORWARD -d -j DROP4.4內網如何做對外伺服器服務協定(TCP/UDP)對外服務埠內部伺服器私網IP內部真正服務埠實例:iptables -tnat -APREROUTING -i ppp0 -p tcp -d

21、port 80 -j DNAT -to 192.168.1.1iptables -tnat -APREROUTING -i ppp0 -p tcp -dport 81 -j DNAT -to 192.168.1.2:804.5連接追蹤模組為什麼要使用連接追蹤模組 FTP協議的傳輸原理 傳統防火牆的做法如何使用4.5.1 FTP協議傳輸原理使用埠 command port data port傳輸模式 主動模式(ACTIVE) 被動模式(PASSIVE)4.5.1 FTP協議傳輸原理主動模式 client server xxxx |-|-|-|21 yyyy |21 yyyy |-|-|-|zzz

22、z FW1 FW24.5.2傳統防火牆的做法只使用主動模式,打開TCP/20防火牆打開高範圍埠配置FTP服務,減小被動模式埠範圍4.5.3如何使用連接追蹤模組modprobe ip_nat_ftpiptables -AINPUT -p tcp -dport 21 -j ACCEPTiptables -AINPUT -m state -state RELATED,ESTABLISHED -j ACCEPTiptables -PINPUT DROP5.網管策略怕什麼能做什麼讓什麼vs不讓什麼三大“紀律”五項“注意”其他注意事項5.1必加項echo 1 /proc/sys/net/ipv4/ip_f

23、orwardecho 1 /proc/sys/net/ipv4/tcp_syncookiesecho 1 /proc/sys/net/ipv4/icmp_ignore_bogus_error_responsesmodprobe ip_nat_ftp5.2可選方案堵:iptables -AFORWARD -p tcp -dport xxx -j DROPiptables -AFORWARD -p tcp -dport yyy:zzz -j DROP通:iptables -AFORWARD -p tcp -dport xxx -j ACCEPTiptables -AFORWARD -p tcp -

24、dport yyy:zzz -j ACCEPTiptables -AFORWARD -m state -state RELATED,ESTABLISHED -j ACCEPTiptables -PFORWARD DROP5.3三大“紀律”五項“注意”三大“紀律”專表專用 filter nat mangle五項“注意”注意資料包的走向 PREROUTING INPUT FORWARD OUTPUT POSTROUTING5.4其他注意事項養成好的習慣 iptables -vnL iptables -tnat -vnL iptables-save注意邏輯順序 iptables -AINPUT -p

25、 tcp -dport xxx -j ACCEPT iptables -I INPUT -p tcp -dport yyy -j ACCEPT學會寫簡單的腳本6.使用總則所有鏈名必須大寫INPUT/OUTPUT/FORWARD/PREROUTING/POSTROUTING所有表名必須小寫filter/nat/mangle所有動作必須大寫ACCEPT/DROP/SNAT/DNAT/MASQUERADE所有匹配必須小寫-s/-d/-m /-p6. FAQ.1Q:我設置了iptables -A OUTPUT -d 202.xx.xx.xx -j DROP 為何內網用戶還是可以訪問那個位址?A:fil

26、ter表的OUTPUT鏈是本機訪問外面的必經之路,內網資料不經過該鏈Q:我添加了iptables -A FORWARD -d 202.xx.xx.xx -j DROP 為何內網用戶還是可以訪問那個位址?A:檢查整個規則是否存在邏輯錯誤,看是否在DROP前有ACCEPTQ:iptables -t nat -A POSTROUTING -i eth1 -o eth2 -j MASQUERADE 這條語句為何報錯?A:POSTROUTING鏈不支持“流入介面” -i參數 同理,PREROUTING鏈不支持“流出介面” -o參數6. FAQ.2Q:我應該怎麼查看某個模組具體該如何使用?A:iptabl

27、es -m模組名-hQ:執行iptables -A FORWARD -m xxx -j yyy 提示iptables: No chain/target/match by that nameA:/lib/modules/uname -r/kernel/net/ipv4/netfilter目錄中, 缺少與xxx模組有關的檔,或缺少與yyy動作有關的文件 名字為ipt_xxx.o(2.4內核) 或ipt_yyy.ko(2.6內核)Q:腳本寫好了,內網上網沒問題,FTP訪問不正常,無法列出目錄,為什麼?A:缺少ip_nat_ftp這個模組,modprobe ip_nat_ftp6. FAQ.3更多FA

28、Q內容http:/filter.org/documentation/FAQ/netfilter-faq.html7.實戰.1CU: 202.106.0.20202.106.0.254(eth0)192.168.0.254(eth1)client: 192.168.0.17.實戰.1參考答案CU:ifconfig eth0 202.106.0.20 netmask 255.255.255.0Client:ifconfig eth0 192.168.0.1 netmask 255.255.255.0route add default gw 192.168.0.254Firewall:ifconfi

29、g eth0 202.106.0.254 netmask 255.255.255.0ifconfig eth1 192.168.0.254 netmask 255.255.255.0service iptables stopmodprobe ip_nat_ftpecho 1 /proc/sys/net/ipv4/ip_forwardiptables -A INPUT -i lo -j ACCEPTiptables -A INPUT -i eth1 -p tcp -dport 22 -j ACCEPTiptables -A INPUT -m state -state RELATED,ESTABL

30、ISHED -j ACCEPTiptables -P INPUT DROPiptables -t nat -A POSTROUTING -s 192.168.0.0/24o eth0 -j SNAT -to 202.106.0.2547.實戰.2CU: 202.106.0.20202.106.0.254(eth1)192.168.0.254(eth0)client: 192.168.0.1web server: 172.17.0.1172.17.0.254 (eth2)7.實戰.2參考答案CU:ifconfig eth0 202.106.0.20 netmask 255.255.255.0Se

31、rver:ifconfig eth0 172.17.0.1 netmask 255.255.255.0route add default gw 172.17.0.254Client:ifconfig eth0 192.168.0.1 netmask 255.255.255.0route add default gw 192.168.0.254Firewall:ifconfig eth0 202.106.0.254 netmask 255.255.255.0ifconfig eth1 192.168.0.254 netmask 255.255.255.0ifconfig eth2 172.17.

32、0.254 netmask 255.255.255.0service iptables stopmodprobe ip_nat_ftpecho 1 /proc/sys/net/ipv4/ip_forwardiptables -A INPUT -i lo -j ACCEPTiptables -A INPUT -i eth1 -p tcp -dport 22 -j ACCEPTiptables -A INPUT -m state -state RELATED,ESTABLISHED -j ACCEPTiptables -P INPUT DROPiptables -t nat -A POSTROUTING -s 192.168.0.0/24o eth0 -j SNAT -to 202.106.0.254iptables -t nat -A PREROUTING -d 202.106.0.254 -p tcp -dport 80 -j DNAT -to 172.17.0.1iptables -A FORWARD -i eth2 -o eth1 -m state -state NEW -j DROP

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号