




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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框架圖,-PREROUTING-ROUTE-FORWARD-POSTROUTING- mangle | mangle mangle nat |filter |nat | | | | v | INPUT OUTPUT | m
2、angle mangle |filter | nat v -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要操作的表 要操作的
3、鏈 規則號碼 匹配條件 -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 在filter 表的INPUT 鏈裡插入一條規則(插入成第1 條) iptables
4、-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 -j DROP(按內容匹配) 刪除filter 表INPUT 鏈中內
5、容為“-s -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,設置某個鏈的預設規則 例如: iptables -P INPUT DROP 設置
6、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匹配條件,流入、流出介面(-i、-o) 來源、目的地
8、址(-s、-d) 協議類型 (-p) 來源、目的埠(-sport、-dport),3.3.1按網路介面匹配,-i 例如: -i eth0 匹配是否從網路介面eth0進來 -i ppp0 匹配是否從網路介面ppp0進來 -o匹配資料流程出的網路介面 例如: -o eth0 -o ppp0,3.3.2按來源目的地址匹配,-s 可以是IP、NET、DOMAIN,也可空(任何位址) 例如: -s 匹配來自的數據包 -s /24 匹配來自/24網路的資料包 -s /16 匹配來自192.168
9、.0.0/16網路的資料包 -d 可以是IP、NET、DOMAIN,也可以空 例如: -d 0 匹配去往0的數據包 -d /16 匹配去往/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 匹配源埠是
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) 注意:-
11、sport和-dport必須配合-p參數使用,3.3.5匹配應用舉例,1、埠匹配 -p udp -dport 53 匹配網路中目的地址是53的UDP協定資料包 2、地址匹配 -s /24 -d /16 匹配來自/24去往/16的所有資料包 3、埠和位址聯合匹配 -s -d -p tcp -dport 80 匹配來自,去往的80埠的TCP協定資料包 注意: 1、-sport、-dport必須聯合-p使用,必須指明協定類型是什麼 2、條件寫的越多,匹配越細緻,匹配範圍越小,3.4動
12、作(處理方式),ACCEPT DROP SNAT DNAT MASQUERADE,3.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 9 -j DROP 阻止來源地址為9的資料包通過本機,3.4.4 -j D
13、NAT,-j DNAT -to IP-IP:埠-埠(nat 表的PREROUTING 鏈) 目的地址轉換,DNAT支援轉換為單IP,也支援轉換到IP位址集區 (一組連續的IP地址) 例如: iptables -tnat -APREROUTING -i ppp0 -p tcp -dport 80 -j DNAT -to 把從ppp0進來的要訪問TCP/80的數據包目的地址改為 iptables -tnat -APREROUTING -i ppp0 -p tcp -dport 81 -j DNAT -to :80 iptables
14、 -tnat -APREROUTING -i ppp0 -p tcp -dport 80 -j DNAT -to -0,3.4.3 -j SNAT,-j SNAT -to IP-IP:埠-埠(nat 表的POSTROUTING鏈) 源位址轉換,SNAT支援轉換為單IP,也支援轉換到IP位址集區 (一組連續的IP地址) 例如: iptables -t nat -A POSTROUTING -s /24 -j SNAT -to 將內網/24的原地址修改為,用於NAT iptable
15、s -t nat -A POSTROUTING -s /24 -j SNAT -to -0 同上,只不過修改成一個位址集區裡的IP,3.4.5 -j MASQUERADE,-j MASQUERADE 動態源位址轉換(動態IP的情況下使用) 例如: iptables -tnat -APOSTROUTING -s /24 -j MASQUERADE 將源地址是/24的資料包進行位址偽裝,3.5附加模組,按包狀態匹配 (state) 按來源MAC匹配(mac) 按包速率匹配 (limit) 多埠匹配 (mu
16、ltiport),3.5.1 state,-m state -state狀態 狀態:NEW、RELATED、ESTABLISHED、INVALID NEW:有別於tcp的syn ESTABLISHED:連接態 RELATED:衍生態,與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 ma
17、c -mac-source xx:xx:xx:xx:xx:xx -j DROP 阻斷來自某MAC位址的資料包,通過本機 注意: 報文經過路由後,資料包中原有的mac資訊會被替換,所以在路由後的iptables中使用mac模組是沒有意義的,3.5.3 limit,-m limit -limit匹配速率-burst緩衝數量 用一定速率去匹配資料包 例如: iptables -AFORWARD -d -m limit -limit 50/s -j ACCEPT iptables -AFORWARD -d -j DROP 注意: limit英語上看是限制
18、的意思,但實際上只是按一定速率去匹配而已,要想限制的話後面要再跟一條DROP,3.5.4 multiport,-m multiport 埠1,埠2,.,埠n 一次性匹配多個埠,可以區分源埠,目的埠或不指定埠 例如: iptables -AINPUT -p tcp -m multiport -dports 21,22,25,80,110 -j ACCEPT 注意: 必須與-p參數一起使用,4.實例分析,單伺服器的防護 如何做閘道 如何限制內網用戶 內網如何做對外伺服器 連接追蹤模組,4.1單伺服器的防護,弄清對外服務物件 書寫規則 網路介面lo的處理 狀態監測的處理 協議+埠的處理 實例:一個普
19、通的web伺服器 iptables -AINPUT -i lo -j ACCEPT iptables -AINPUT -p tcp -m multiport -dports 22,80 -j ACCEPT iptables -AINPUT -m state -state RELATED,ESTABLISHED -j ACCEPT iptables -PINPUT DROP 注意:確保規則順序正確,弄清邏輯關係,學會時刻使用-vnL,4.2如何做閘道,弄清網路拓撲 本機上網 設置nat 啟用路由轉發 地址偽裝SNAT/MASQUERADE 實例:ADSL撥號上網的拓撲 echo 1 /proc/
20、sys/net/ipv4/ip_forward iptables -tnat -APOSTROUTING -s /24 -o ppp0 -j MASQUERADE,4.3如何限制內網用戶,過濾位置filer表FORWARD 鏈 匹配條件-s -d -p -s/dport 處理動作ACCEPT DROP 實例: iptables -AFORWARD -s -j DROP iptables -AFORWARD -m mac -mac-source 11:22:33:44:55:66 -j DROP iptables -AFORWARD -d -j DR
21、OP,4.4內網如何做對外伺服器,服務協定(TCP/UDP) 對外服務埠 內部伺服器私網IP 內部真正服務埠 實例: iptables -tnat -APREROUTING -i ppp0 -p tcp -dport 80 -j DNAT -to iptables -tnat -APREROUTING -i ppp0 -p tcp -dport 81 -j DNAT -to :80,4.5連接追蹤模組,為什麼要使用連接追蹤模組 FTP協議的傳輸原理 傳統防火牆的做法 如何使用,4.5.1 FTP協議傳輸原理,使用埠 command port dat
22、a port 傳輸模式 主動模式(ACTIVE) 被動模式(PASSIVE),4.5.1 FTP協議傳輸原理,主動模式 client server xxxx |-|-|-|21 yyyy |21 yyyy |-|-|-|zzzz FW1 FW2,4.5.2傳統防火牆的做法,只使用主動模式,打開TCP/20 防火牆打開高範圍埠 配置FTP服務,減小被動模式埠範圍,4.5.3如何使用連接追蹤模組,modprobe ip_nat_ftp iptables -AINPUT -p tcp -dport 21 -j ACCEPT iptables -AINPUT -m state -state RELAT
23、ED,ESTABLISHED -j ACCEPT iptables -PINPUT DROP,5.網管策略,怕什麼 能做什麼 讓什麼vs不讓什麼 三大“紀律”五項“注意” 其他注意事項,5.1必加項,echo 1 /proc/sys/net/ipv4/ip_forward echo 1 /proc/sys/net/ipv4/tcp_syncookies echo 1 /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses modprobe ip_nat_ftp,5.2可選方案,堵: iptables -AFORWARD -p tcp -dpor
24、t 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 ACCEPT iptables -AFORWARD -m state -state RELATED,ESTABLISHED -j ACCEPT iptables -PFORWARD DROP,5.3三大“紀律”五項“注意”,三大“紀律”專表專用 filter nat mangle 五項
25、“注意”注意資料包的走向 PREROUTING 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 所有表名必須小寫 fi
26、lter/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鏈是本機訪問外面的必經之路,內網資料不經過該鏈 Q:我添加了iptables -A FORWARD -d 202.xx.xx.xx -j DROP 為何內網用戶還是可以訪問那個位址? A:檢查整個規則是否存在邏輯錯誤,看是否在DROP前有ACCEPT Q:
27、iptables -t nat -A POSTROUTING -i eth1 -o eth2 -j MASQUERADE 這條語句為何報錯? A:POSTROUTING鏈不支持“流入介面” -i參數 同理,PREROUTING鏈不支持“流出介面” -o參數,6. FAQ.2,Q:我應該怎麼查看某個模組具體該如何使用? A:iptables -m模組名-h Q:執行iptables -A FORWARD -m xxx -j yyy 提示iptables: No chain/target/match by that name A:/lib/modules/uname -r/kernel/net/i
28、pv4/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內容 /documentation/FAQ/netfilter-faq.html,7.實戰.1,CU: 0,54(eth0),54(eth1),client: 19
29、,7.實戰.1參考答案,CU: ifconfig eth0 0 netmask Client: ifconfig eth0 netmask route add default gw 54 Firewall: ifconfig eth0 54 netmask ifconfig eth1 54 netmask service iptables stop mod
30、probe ip_nat_ftp echo 1 /proc/sys/net/ipv4/ip_forward iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -i eth1 -p tcp -dport 22 -j ACCEPT iptables -A INPUT -m state -state RELATED,ESTABLISHED -j ACCEPT iptables -P INPUT DROP iptables -t nat -A POSTROUTING -s /24o eth0 -j SNAT -to 54,7.實戰.2,CU: 20
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 湖南三一工业职业技术学院《普通物理二》2023-2024学年第二学期期末试卷
- 漳州科技职业学院《男装设计》2023-2024学年第二学期期末试卷
- 攀枝花学院《工程图学与计算机绘图甲》2023-2024学年第二学期期末试卷
- 15《搭船的鸟》教学设计-2024-2025学年三年级上册语文统编版
- 金山职业技术学院《外贸专业英语一》2023-2024学年第二学期期末试卷
- 信阳师范大学《工程实训》2023-2024学年第二学期期末试卷
- 铜仁幼儿师范高等专科学校《人力资源管理沙盘模拟》2023-2024学年第二学期期末试卷
- 船舶运力合同范本
- 第 19课《灯泡亮了》教学设计-2023-2024学年青岛版科学四年级下册
- 《7 比较测量纸带和尺子》教学设计-2023-2024学年一年级上册科学教科版
- 人工智能背景下高职五育并举的人才培养研究
- 汽车行业维修记录管理制度
- IQC检验作业指导书
- 城市自来水厂课程设计
- 重庆市2024年小升初语文模拟考试试卷(含答案)
- 2024智慧城市数据采集标准规范
- 【人教版】《劳动教育》七上 劳动项目一 疏通厨房下水管道 课件
- 2024特斯拉的自动驾驶系统FSD发展历程、技术原理及未来展望分析报告
- 2024-2030年中国银行人工智能行业市场深度调研及发展趋势与投资前景研究报告
- 五届全国智能制造应用技术技能大赛数字孪生应用技术员(智能制造控制技术方向)赛项实操样题
- 中国银行中银数字服务(南宁)有限公司招聘笔试真题2023
评论
0/150
提交评论