收藏 分享(赏)

2 小时玩转 iptables 企业版.ppt

上传人:gnk289057 文档编号:5389000 上传时间:2019-02-27 格式:PPT 页数:54 大小:559.50KB
下载 相关 举报
2 小时玩转 iptables 企业版.ppt_第1页
第1页 / 共54页
2 小时玩转 iptables 企业版.ppt_第2页
第2页 / 共54页
2 小时玩转 iptables 企业版.ppt_第3页
第3页 / 共54页
2 小时玩转 iptables 企业版.ppt_第4页
第4页 / 共54页
2 小时玩转 iptables 企业版.ppt_第5页
第5页 / 共54页
点击查看更多>>
资源描述

1、ChinaUnix講座,2小時玩轉iptables企業版 2006.03.18最後修改時間:2006.07.23 文檔維護者:白金(platinum)、陳緒(bjchenxu),v1.5.2,主題大綱,1.概述 2.框架圖 3.語法 4.實例分析 5.網管策略 6.使用總則、FAQ 7.實戰,1.概述,2.4.x、2.6.x內核 netfilter/iptables,2.1框架圖,PREROUTINGROUTEFORWARDPOSTROUTINGmangle | mangle manglenat |filter |nat| | |v |INPUT OUTPUT| mangle mangle|

2、filter | natv -local-| filter,2.2鏈和表,表filter: 顧名思義,用於過濾的時候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

3、命令概述,操作命令(-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在filter 表的INPUT 鏈裡插入一條規則(插入成第1 條)iptables -I INPUT 3 -j DROP在filter 表的INPUT 鏈

4、裡插入一條規則(插入成第3 條)注意:1、-tfilter 可不寫,不寫則自動默認是filter 表2、-I 鏈名規則號碼,如果不寫規則號碼,則預設是13、確保規則號碼 (已有規則數+ 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、

5、若規則清單中有多條相同的規則時,按內容匹配只刪除序號最小的一條2、按號碼匹配刪除時,確保規則號碼 已有規則數,否則報錯3、按內容匹配刪除時,確保規則存在,否則報錯,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注意:當資料包沒有被規則清單裡的任何規則匹配到時,按此預設規則處

6、理。動作前面不能加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、如果不寫鏈名,默認清空某表裡所有鏈裡的所有規則,3.2.6 -vxnL,-L 鏈名LIST,列出規則v:顯示詳細資訊,包括每條規則的匹配包數量和匹配位元組數x:在v的基礎上,禁止自動單位

7、換算(K、M)n:只顯示IP位址和埠號碼,不顯示功能變數名稱和服務名稱例如:iptables -L粗略列出filter 表所有鏈及所有規則iptables -t nat -vnL用詳細方式列出nat 表所有鏈的所有規則,只顯示IP位址和埠號iptables -t nat -vxnL PREROUTING用詳細方式列出nat 表PREROUTING鏈的所有規則以及詳細數位,不反解,3.3匹配條件,流入、流出介面(-i、-o) 來源、目的地址(-s、-d) 協議類型 (-p) 來源、目的埠(-sport、-dport),3.3.1按網路介面匹配,-i 例如:-i eth0匹配是否從網路介面eth0

8、進來-i ppp0匹配是否從網路介面ppp0進來-o匹配資料流程出的網路介面 例如:-o eth0-o ppp0,3.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 匹配來自192.168.0.0/16網路的資料包-d 可以是IP、NET、DOMAIN,也可以空 例如:-d 202.106.0.20 匹配去往202.106.0.20的數據包-d 202.106.0.

9、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 0,3.3.4按來源目的埠匹配,-sport 可以是個別埠,可以是埠範圍 例如:-sport 1000 匹配源埠是1000的數據包-sport 1000:3000 匹配源埠是1000-3000的數據包(含1000、3000)-sport :3000 匹配源埠是3000以下的資料包(含3000)-sport 1

10、000: 匹配源埠是1000以上的資料包(含1000)-dport 可以是個別埠,可以是埠範圍 例如:-dport 80 匹配源埠是80的數據包-dport 6000:8000 匹配源埠是6000-8000的數據包(含6000、8000)-dport :3000 匹配源埠是3000以下的資料包(含3000)-dport 1000: 匹配源埠是1000以上的資料包(含1000) 注意:-sport和-dport必須配合-p參數使用,3.3.5匹配應用舉例,1、埠匹配 -p udp -dport 53 匹配網路中目的地址是53的UDP協定資料包2、地址匹配 -s 10.1.0.0/24 -d 17

11、2.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動作(處理方式),ACCEPT DROP SNAT DNAT MASQUERADE,3.4.1 -j ACCEPT,-j ACCEPT通過,允許資料包通過本鏈而不攔截它類似Cisco中ACL裡面的permit例如:ip

12、tables -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:埠-埠(nat 表的PREROUTING 鏈)目的地址轉換,DNAT支援轉換為單IP,也支援轉換到IP位址集區(一組連續的IP地址) 例如: iptables -tnat -APREROUTI

13、NG -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:80 iptables -tnat -APREROUTING -i ppp0 -p tcp -dport 80 -j DNAT -to 192.168.0.1-192.168.0.10,3.4.3 -j SNAT,-j SNAT -to IP-IP:埠-埠(nat

14、 表的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/24 -j SNAT -to 1.1.1.1-1.1.1.10 同上,只不過修改成一個位址集區裡的IP,3.4.5 -j MASQUERADE,-j MASQUERADE

15、 動態源位址轉換(動態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、RELATED、ESTABLISHED、INVALIDNEW:有別於tcp的synESTABLISHED:連接態RELATED:衍生態,與conntrack關聯(

16、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,-m lim

17、it -limit匹配速率-burst緩衝數量用一定速率去匹配資料包 例如:iptables -AFORWARD -d 192.168.0.1 -m limit -limit 50/s -j ACCEPTiptables -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 -

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

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

20、CCEPT DROP實例: iptables -AFORWARD -s 192.168.0.3 -j DROP iptables -AFORWARD -m mac -mac-source 11:22:33:44:55:66 -j DROP iptables -AFORWARD -d -j DROP,4.4內網如何做對外伺服器,服務協定(TCP/UDP) 對外服務埠 內部伺服器私網IP 內部真正服務埠 實例: iptables -tnat -APREROUTING -i ppp0 -p tcp -dport 80 -j DNAT -to 192.168.1.1 iptables -tnat -

21、APREROUTING -i ppp0 -p tcp -dport 81 -j DNAT -to 192.168.1.2:80,4.5連接追蹤模組,為什麼要使用連接追蹤模組FTP協議的傳輸原理傳統防火牆的做法如何使用,4.5.1 FTP協議傳輸原理,使用埠command portdata port傳輸模式主動模式(ACTIVE)被動模式(PASSIVE),4.5.1 FTP協議傳輸原理,主動模式client serverxxxx |-|-|-|21yyyy |21yyyy |-|-|-|zzzzFW1 FW2,4.5.2傳統防火牆的做法,只使用主動模式,打開TCP/20 防火牆打開高範圍埠 配

22、置FTP服務,減小被動模式埠範圍,4.5.3如何使用連接追蹤模組,modprobe ip_nat_ftp iptables -AINPUT -p tcp -dport 21 -j ACCEPT iptables -AINPUT -m state -state RELATED,ESTABLISHED -j ACCEPT iptables -PINPUT DROP,5.網管策略,怕什麼 能做什麼 讓什麼vs不讓什麼 三大“紀律”五項“注意” 其他注意事項,5.1必加項,echo “1“ /proc/sys/net/ipv4/ip_forward echo “1“ /proc/sys/net/ipv

23、4/tcp_syncookies echo “1“ /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses modprobe ip_nat_ftp,5.2可選方案,堵: iptables -AFORWARD -p tcp -dport xxx -j DROP iptables -AFORWARD -p tcp -dport yyy:zzz -j DROP通: iptables -AFORWARD -p tcp -dport xxx -j ACCEPT iptables -AFORWARD -p tcp -dport yyy:zzz -j ACC

24、EPT iptables -AFORWARD -m state -state RELATED,ESTABLISHED -j ACCEPT iptables -PFORWARD DROP,5.3三大“紀律”五項“注意”,三大“紀律”專表專用filternatmangle五項“注意”注意資料包的走向PREROUTINGINPUTFORWARDOUTPUTPOSTROUTING,5.4其他注意事項,養成好的習慣iptables -vnLiptables -tnat -vnLiptables-save注意邏輯順序iptables -AINPUT -p tcp -dport xxx -j ACCEPTi

25、ptables -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 /-p,6. FAQ.1,Q:我設置了iptables -A OUTPUT -d 202.xx.xx.xx -j DROP為何內網用戶還是可以訪問那個位址? A:filter表的OUTPUT鏈是本機訪問外面的必經之

26、路,內網資料不經過該鏈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.2,Q:我應該怎麼查看某個模組具體該如何使用? A:iptables -m模組名-hQ:執行iptable

27、s -A FORWARD -m xxx -j yyy提示iptables: No chain/target/match by that name A:/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_ftp,6. FAQ.3,更多FAQ內容http:/filter.org/

28、documentation/FAQ/netfilter-faq.html,7.實戰.1,CU: 202.106.0.20,202.106.0.254(eth0),192.168.0.254(eth1),client: 192.168.0.1,7.實戰.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:ifconfig eth0 202.10

29、6.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,ESTABLISHED -j ACCE

30、PTiptables -P INPUT DROPiptables -t nat -A POSTROUTING -s 192.168.0.0/24o eth0 -j SNAT -to 202.106.0.254,7.實戰.2,CU: 202.106.0.20,202.106.0.254(eth1),192.168.0.254(eth0),client: 192.168.0.1,web server: 172.17.0.1,172.17.0.254(eth2),7.實戰.2參考答案,CU:ifconfig eth0 202.106.0.20 netmask 255.255.255.0Server:

31、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.0.254

32、 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,

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

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报