小时玩转iptables企业版.ppt

上传人:牧羊曲112 文档编号:6275051 上传时间:2023-10-12 格式:PPT 页数:54 大小:309KB
返回 下载 相关 举报
小时玩转iptables企业版.ppt_第1页
第1页 / 共54页
小时玩转iptables企业版.ppt_第2页
第2页 / 共54页
小时玩转iptables企业版.ppt_第3页
第3页 / 共54页
小时玩转iptables企业版.ppt_第4页
第4页 / 共54页
小时玩转iptables企业版.ppt_第5页
第5页 / 共54页
点击查看更多>>
资源描述

《小时玩转iptables企业版.ppt》由会员分享,可在线阅读,更多相关《小时玩转iptables企业版.ppt(54页珍藏版)》请在三一办公上搜索。

1、ChinaUnix講座,2小時玩轉iptables企業版最後修改時間:文檔維護者:白金(platinum)、陳緒(bjchenxu),主題大綱,1.概述2.框架圖3.語法4.實例分析5.網管策略6.使用總則、FAQ7.實戰,1.概述,、內核netfilter/iptables,2.1框架圖,-PREROUTING-ROUTE-FORWARD-POSTROUTING-mangle|mangle mangle nat|filter|nat|v|INPUT OUTPUT|mangle mangle|filter|nat v-local-|filter,2.2鏈和表,表filter:顧名思義,用於過濾

2、的時候nat:顧名思義,用於做NAT的時候 NAT:Network Address Translator鏈INPUT:位於filter 表,匹配目的IP是本機的數據包FORWARD:位於filter 表,匹配穿過本機的資料包,PREROUTING:位於nat 表,用於修改目的地址(DNAT)POSTROUTING:位於nat 表,用於修改源地址(SNAT),3.1 iptables語法概述,iptables-t要操作的表 要操作的鏈 規則號碼 匹配條件-j匹配到以後的動作,3.2命令概述,操作命令(-A、-I、-D、-R、-P、-F)查看命令(-vnxL),3.2.1-A,-A APPEND,

3、追加一條規則(放到最後)例如:iptables-t filter-A INPUT-j DROP 在filter 表的INPUT 鏈裡追加一條規則(作為最後一條規則)匹配所有訪問本機IP的資料包,匹配到的丟棄,3.2.2-I,-I 規則號碼 INSERT,插入一條規則例如:iptables-I INPUT-j DROP 在filter 表的INPUT 鏈裡插入一條規則(插入成第1 條)iptables-I INPUT 3-j DROP 在filter 表的INPUT 鏈裡插入一條規則(插入成第3 條)注意:1、-tfilter 可不寫,不寫則自動默認是filter 表 2、-I 鏈名規則號碼,如

4、果不寫規則號碼,則預設是1 3、確保規則號碼(已有規則數+1),否則報錯,3.2.3-D,-D DELETE,刪除一條規則例如:iptables-D INPUT 3(按號碼匹配)刪除filter 表INPUT 鏈中的第三條規則(不管它的內容是什麼)iptables-D INPUT-s 192.168.0.1-j DROP(按內容匹配)刪除filter 表INPUT 鏈中內容為“-s 192.168.0.1-j DROP”的規則(不管其位置在哪裡)注意:1、若規則清單中有多條相同的規則時,按內容匹配只刪除序號最小的一條 2、按號碼匹配刪除時,確保規則號碼 已有規則數,否則報錯 3、按內容匹配刪除

5、時,確保規則存在,否則報錯,3.2.3-R,-R REPLACE,替換一條規則例如:iptables-R INPUT 3-j ACCEPT 將原來編號為3的規則內容替換為“-j ACCEPT”注意:確保規則號碼 已有規則數,否則報錯,3.2.4-P,-P POLICY,設置某個鏈的預設規則例如:iptables-P INPUT DROP 設置filter 表INPUT 鏈的預設規則是DROP注意:當資料包沒有被規則清單裡的任何規則匹配到時,按此預設規則處理。動作前面不能加j,這也是唯一一種匹配動作前面不加j的情況。,3.2.5-F,-F 鏈名 FLUSH,清空規則例如:iptables-F I

6、NPUT 清空filter 表INPUT 鏈中的所有規則 iptables-t nat-F PREROUTING 清空nat 表PREROUTING鏈中的所有規則注意:1、-F僅僅是清空鏈中規則,並不影響-P設置的預設規則 2、-P設置了DROP後,使用-F一定要小心!3、如果不寫鏈名,默認清空某表裡所有鏈裡的所有規則,3.2.6-vxnL,-L 鏈名 LIST,列出規則 v:顯示詳細資訊,包括每條規則的匹配包數量和匹配位元組數 x:在v的基礎上,禁止自動單位換算(K、M)n:只顯示IP位址和埠號碼,不顯示功能變數名稱和服務名稱例如:iptables-L 粗略列出filter 表所有鏈及所有規

7、則 iptables-t nat-vnL 用詳細方式列出nat 表所有鏈的所有規則,只顯示IP位址和埠號 iptables-t nat-vxnL PREROUTING 用詳細方式列出nat 表PREROUTING鏈的所有規則以及詳細數位,不反解,3.3匹配條件,流入、流出介面(-i、-o)來源、目的地址(-s、-d)協議類型(-p)來源、目的埠(-sport、-dport),按網路介面匹配,-i 例如:-i eth0 匹配是否從網路介面eth0進來-i ppp0 匹配是否從網路介面ppp0進來-o匹配資料流程出的網路介面例如:-o eth0-o ppp0,按來源目的地址匹配,-s 可以是IP、

8、NET、DOMAIN,也可空(任何位址)例如:匹配來自的數據包 匹配來自網路的資料包 匹配來自網路的資料包-d 可以是IP、NET、DOMAIN,也可以空例如:匹配去往的數據包 匹配去往網路的資料包 匹配去往功能變數名稱的數據包,按協議類型匹配,-p 可以是TCP、UDP、ICMP等,也可為空例如:-p tcp-p udp-p icmp-icmp-type類型 ping:type 8 pong:type 0,按來源目的埠匹配,-sport 可以是個別埠,可以是埠範圍例如:-sport 1000 匹配源埠是1000的數據包-sport 1000:3000 匹配源埠是1000-3000的數據包(含

9、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)注意:-sport和-dport必須配合-p參數使用,匹配應用舉例,1、埠匹配-p udp-dport 53匹配網路中目的地址

10、是53的UDP協定資料包2、地址匹配匹配來自去往的所有資料包3、埠和位址聯合匹配-s 192.168.0.1-d-p tcp-dport 80匹配來自,去往的80埠的TCP協定資料包注意:1、-sport、-dport必須聯合-p使用,必須指明協定類型是什麼2、條件寫的越多,匹配越細緻,匹配範圍越小,3.4動作(處理方式),ACCEPTDROPSNATDNATMASQUERADE,3.4.1-j ACCEPT,-j ACCEPT 通過,允許資料包通過本鏈而不攔截它 類似Cisco中ACL裡面的permit例如:iptables-A INPUT-j ACCEPT 允許所有訪問本機IP的資料包通過

11、,3.4.2-j DROP,-j DROP 丟棄,阻止資料包通過本鏈而丟棄它 類似Cisco中ACL裡的deny例如:iptables-A FORWARD-s 192.168.80.39-j DROP 阻止來源地址為的資料包通過本機,3.4.4-j DNAT,-j DNAT-to IP-IP:埠-埠(nat 表的PREROUTING 鏈)目的地址轉換,DNAT支援轉換為單IP,也支援轉換到IP位址集區(一組連續的IP地址)例如:iptables-tnat-APREROUTING-i ppp0-p tcp-dport 80 把從ppp0進來的要訪問TCP/80的數據包目的地址改為iptables

12、-tnat-APREROUTING-i ppp0-p tcp-dport 81-j DNAT-to 192.168.0.2:80iptables-tnat-APREROUTING-i ppp0-p tcp-dport 80,3.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 將內網的原地址修改為,用於NATiptables-t nat-A POSTROUTING

13、-s 192.168.0.0/24 同上,只不過修改成一個位址集區裡的IP,3.4.5-j MASQUERADE,-j MASQUERADE動態源位址轉換(動態IP的情況下使用)例如:iptables-tnat-APOSTROUTING 將源地址是的資料包進行位址偽裝,3.5附加模組,按包狀態匹配(state)按來源MAC匹配(mac)按包速率匹配(limit)多埠匹配(multiport),3.5.1 state,-m state-state狀態狀態:NEW、RELATED、ESTABLISHED、INVALID NEW:有別於tcp的syn ESTABLISHED:連接態 RELATED:

14、衍生態,與conntrack關聯(FTP)INVALID:不能被識別屬於哪個連接或沒有任何狀態例如:iptables-AINPUT-m state-state RELATED,ESTABLISHED-j ACCEPT,3.5.2 mac,-m mac-mac-source MAC匹配某個MAC地址例如:iptables-AFORWARD-m mac-mac-source xx:xx:xx:xx:xx:xx-j DROP 阻斷來自某MAC位址的資料包,通過本機注意:報文經過路由後,資料包中原有的mac資訊會被替換,所以在路由後的iptables中使用mac模組是沒有意義的,3.5.3 limit

15、,-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英語上看是限制的意思,但實際上只是按一定速率去匹配而已,要想限制的話後面要再跟一條DROP,3.5.4 multiport,-m multiport 埠1,埠2,.,埠n一次性匹配多個埠,可以區分源埠,目的埠或不指定埠例如:iptables-AINPUT-p tcp-m multiport-dpor

16、ts 21,22,25,80,110-j ACCEPT注意:必須與-p參數一起使用,4.實例分析,單伺服器的防護如何做閘道如何限制內網用戶內網如何做對外伺服器連接追蹤模組,4.1單伺服器的防護,弄清對外服務物件書寫規則 網路介面lo的處理 狀態監測的處理 協議+埠的處理實例:一個普通的web伺服器iptables-AINPUT-i lo-j ACCEPTiptables-AINPUT-p tcp-m multiport-dports 22,80-j ACCEPTiptables-AINPUT-m state-state RELATED,ESTABLISHED-j ACCEPTiptables-

17、PINPUT DROP注意:確保規則順序正確,弄清邏輯關係,學會時刻使用-vnL,4.2如何做閘道,弄清網路拓撲本機上網設置nat 啟用路由轉發 地址偽裝SNAT/MASQUERADE實例:ADSL撥號上網的拓撲echo 1/proc/sys/net/ipv4/ip_forwardiptables-tnat-APOSTROUTING-s 192.168.1.0/24-o ppp0-j MASQUERADE,4.3如何限制內網用戶,過濾位置filer表FORWARD 鏈匹配條件-s-d-p-s/dport處理動作ACCEPT DROP實例:iptables-AFORWARD-s 192.168.

18、0.3-j DROPiptables-AFORWARD-m mac-mac-source 11:22:33:44:55:66-j DROPiptables-AFORWARD-d-j DROP,4.4內網如何做對外伺服器,服務協定(TCP/UDP)對外服務埠內部伺服器私網IP內部真正服務埠實例:iptables-tnat-APREROUTING-i ppp0-p tcp-dport 80 iptables-tnat-APREROUTING-i ppp0-p tcp-dport 81-j DNAT-to 192.168.1.2:80,4.5連接追蹤模組,為什麼要使用連接追蹤模組 FTP協議的傳輸原

19、理 傳統防火牆的做法如何使用,4.5.1 FTP協議傳輸原理,使用埠 command port data port傳輸模式 主動模式(ACTIVE)被動模式(PASSIVE),4.5.1 FTP協議傳輸原理,主動模式 client server xxxx|-|-|-|21 yyyy|21 yyyy|-|-|-|zzzz FW1 FW2,傳統防火牆的做法,只使用主動模式,打開TCP/20防火牆打開高範圍埠配置FTP服務,減小被動模式埠範圍,如何使用連接追蹤模組,modprobe ip_nat_ftpiptables-AINPUT-p tcp-dport 21-j ACCEPTiptables-A

20、INPUT-m state-state RELATED,ESTABLISHED-j ACCEPTiptables-PINPUT DROP,5.網管策略,怕什麼能做什麼讓什麼vs不讓什麼三大“紀律”五項“注意”其他注意事項,5.1必加項,echo 1/proc/sys/net/ipv4/ip_forwardecho 1/proc/sys/net/ipv4/tcp_syncookiesecho 1/proc/sys/net/ipv4/icmp_ignore_bogus_error_responsesmodprobe ip_nat_ftp,5.2可選方案,堵:iptables-AFORWARD-p

21、tcp-dport xxx-j DROPiptables-AFORWARD-p tcp-dport yyy:zzz-j DROP通:iptables-AFORWARD-p tcp-dport xxx-j ACCEPTiptables-AFORWARD-p tcp-dport yyy:zzz-j ACCEPTiptables-AFORWARD-m state-state RELATED,ESTABLISHED-j ACCEPTiptables-PFORWARD DROP,5.3三大“紀律”五項“注意”,三大“紀律”專表專用 filter nat mangle五項“注意”注意資料包的走向 PRER

22、OUTING INPUT FORWARD OUTPUT POSTROUTING,5.4其他注意事項,養成好的習慣 iptables-vnL iptables-tnat-vnL iptables-save注意邏輯順序 iptables-AINPUT-p tcp-dport xxx-j ACCEPT iptables-I INPUT-p tcp-dport yyy-j ACCEPT學會寫簡單的腳本,6.使用總則,所有鏈名必須大寫INPUT/OUTPUT/FORWARD/PREROUTING/POSTROUTING所有表名必須小寫filter/nat/mangle所有動作必須大寫ACCEPT/DRO

23、P/SNAT/DNAT/MASQUERADE所有匹配必須小寫-s/-d/-m/-p,6.FAQ.1,Q:我設置了iptables-A OUTPUT-d 202.xx.xx.xx-j DROP 為何內網用戶還是可以訪問那個位址?A:filter表的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 MASQ

24、UERADE 這條語句為何報錯?A:POSTROUTING鏈不支持“流入介面”-i參數 同理,PREROUTING鏈不支持“流出介面”-o參數,6.FAQ.2,Q:我應該怎麼查看某個模組具體該如何使用?A:iptables-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內核)或ip

25、t_yyy.ko(2.6內核)Q:腳本寫好了,內網上網沒問題,FTP訪問不正常,無法列出目錄,為什麼?A:缺少ip_nat_ftp這個模組,modprobe ip_nat_ftp,6.FAQ.3,更多FAQ內容,7.實戰.1,202.106.0.254(eth0),192.168.0.254(eth1),7.實戰.1參考答案,CU:Client:Firewall:service iptables stopmodprobe ip_nat_ftpecho 1/proc/sys/net/ipv4/ip_forwardiptables-A INPUT-i lo-j ACCEPTiptables-A I

26、NPUT-i eth1-p tcp-dport 22-j ACCEPTiptables-A INPUT-m state-state RELATED,ESTABLISHED-j ACCEPTiptables-P INPUT DROP,7.實戰.2,202.106.0.254(eth1),192.168.0.254(eth0),(eth2),7.實戰.2參考答案,CU:Server:Client:Firewall:service 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-A FORWARD-i eth2-o eth1-m state-state NEW-j DROP,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号