




已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
Linux防火墻概述 Linux系統(tǒng)的防火墻功能是由內(nèi)核實現(xiàn)的 2.0 版內(nèi)核中,包過濾機制是ipfw,管理工具是ipfwadm 2.2 版內(nèi)核中,包過濾機制是ipchain,管理工具是ipchains 2.4 版及以后的內(nèi)核中,包過濾機制是netfilter,管理工具是iptables netfilter 位于Linux內(nèi)核中的包過濾防火墻功能體系 稱為Linux防火墻的“內(nèi)核態(tài)” iptables 位于/sbin/iptables,是用來管理防火墻的命令工具 為防火墻體系提供過濾規(guī)則/策略,決定如何過濾或處理到達防火墻主機的數(shù)據(jù)包 稱為Linux防火墻的“用戶態(tài)” 習(xí)慣上,上述2種稱呼都可以代表Linux防火墻 包過濾防火墻工作在TCP/IP的網(wǎng)絡(luò)層鏈路層網(wǎng)絡(luò)層傳輸層應(yīng)用代理上層程序鏈路層網(wǎng)絡(luò)層傳輸層應(yīng)用層客戶程序鏈路層網(wǎng)絡(luò)層傳輸層應(yīng)用層服務(wù)程序外部網(wǎng)絡(luò)網(wǎng)絡(luò)層防火墻受保護網(wǎng)絡(luò)iptables的規(guī)則表、鏈結(jié)構(gòu) 規(guī)則鏈 規(guī)則的作用在于對數(shù)據(jù)包進行過濾或處理,根據(jù)處理時機的不同,各種規(guī)則被組織在不同的“鏈”中規(guī)則鏈?zhǔn)欠阑饓σ?guī)則/策略的集合默認(rèn)的5種規(guī)則鏈: INPUT:處理入站數(shù)據(jù)包 OUTPUT:處理出站數(shù)據(jù)包 FORWARD:處理轉(zhuǎn)發(fā)數(shù)據(jù)包 POSTROUTING鏈:在進行路由選擇后處理數(shù)據(jù)包 PREROUTING鏈:在進行路由選擇前處理數(shù)據(jù)包iptables規(guī)則鏈?zhǔn)疽鈭D:Prerouting城門入口Forward 街道Postrouting城門出口Input 皇宮入口Output 皇宮出口皇宮 以上主要是介紹規(guī)則鏈的概念,并分別舉例說明5種規(guī)則鏈的作用: INPUT鏈用于處理訪問防火墻本機的數(shù)據(jù),OUTPUT鏈用于處理防火墻本機訪問其他主機的數(shù)據(jù) FORWARD鏈用于處理需要經(jīng)過防火墻轉(zhuǎn)發(fā)的數(shù)據(jù)包,源地址、目標(biāo)地址均不是防火墻本機 POSTROUTING、PREROUTING鏈分別用于在確定路由后、確定路由前對數(shù)據(jù)包進行處理 在“主機防火墻”中,主要針對服務(wù)器本機進出的數(shù)據(jù)實施控制, 多以INPUT、OUTPUT鏈的應(yīng)用為主 在“網(wǎng)絡(luò)防火墻”中,主要針對數(shù)據(jù)轉(zhuǎn)發(fā)實施控制,特別是防火墻主機作為網(wǎng)關(guān)使用時的情況 ,因此多以FORWARD、PREROUTING、POSTROUTING鏈的應(yīng)用為主 規(guī)則表 具有某一類相似用途的防火墻規(guī)則,按照不同處理時機區(qū)分到不同的規(guī)則鏈以后,被歸置到不同的“表”中 規(guī)則表是規(guī)則鏈的集合默認(rèn)的4個規(guī)則表: raw表:確定是否對該數(shù)據(jù)包進行狀態(tài)跟蹤 mangle表:為數(shù)據(jù)包設(shè)置標(biāo)記 nat表:修改數(shù)據(jù)包中的源、目標(biāo)IP地址或端口 filter表:確定是否放行該數(shù)據(jù)包(過濾)每個規(guī)則表包含的規(guī)則鏈: 還可以使用iptables查看每個規(guī)則表內(nèi)包含的規(guī)則鏈rootserver # iptables -L -t nat Chain PREROUTING (policy ACCEPT)target prot opt source destination Chain POSTROUTING (policy ACCEPT)target prot opt source destination Chain OUTPUT (policy ACCEPT)target prot opt source destination 這些都是系統(tǒng)默認(rèn)自帶的規(guī)則鏈,也可以用戶自定義一些規(guī)則鏈 以上主要介紹規(guī)則表的概念、作用,并分別舉例說明4個規(guī)則表的作用,并強調(diào)filter表、nat表是最常用的、也是我們的學(xué)習(xí)重點 mangle表可以對數(shù)據(jù)包進行特殊標(biāo)記,結(jié)合這些標(biāo)記可以在filter表中對數(shù)據(jù)包進行有選擇性的處理(如“策略路由”,舉個例子,網(wǎng)關(guān)主機有兩條ADSL線路,分別使用網(wǎng)通、電信的接口,可以將訪問網(wǎng)通服務(wù)器的數(shù)據(jù)交給網(wǎng)通ADSL接口,而訪問電信服務(wù)器的數(shù)據(jù)交給電信ADSL接口) raw表是自1.2.9以后版本的iptables新增的表,主要用于決定數(shù)據(jù)包是否被狀態(tài)跟蹤機制處理,目前raw表中的應(yīng)用尚不多見數(shù)據(jù)包過濾匹配流程 規(guī)則表間的優(yōu)先順序 依次為:raw、mangle、nat、filter 規(guī)則鏈間的匹配順序 入站數(shù)據(jù):PREROUTING、INPUT 出站數(shù)據(jù):OUTPUT、POSTROUTING 轉(zhuǎn)發(fā)數(shù)據(jù):PREROUTING、FORWARD、POSTROUTING 規(guī)則鏈內(nèi)的匹配順序 按順序依次進行檢查,找到相匹配的規(guī)則即停止(LOG策略會有例外) 若在該鏈內(nèi)找不到相匹配的規(guī)則,則按該鏈的默認(rèn)策略處理其中加粗的鏈為最常用的幾個規(guī)則鏈,包括:filter表的INPUT、OUTPUT、FORWARD鏈;nat表的PREROUTING、POSTROUTING鏈入站數(shù)據(jù)流向:來自外界的數(shù)據(jù)包到達防火墻后,首先被PREROUTING規(guī)則鏈處理(是否修改數(shù)據(jù)包地址等),之后會進行路由選擇(判斷該數(shù)據(jù)包應(yīng)該發(fā)往何處),如果數(shù)據(jù)包的目標(biāo)地址是防火墻本機(如Internet用戶訪問防火墻主機中Web服務(wù)的數(shù)據(jù)包),那么內(nèi)核將其傳遞給INPUT鏈進行處理(決定是否允許通過等),通過以后再交給系統(tǒng)上層的應(yīng)用程序(如httpd服務(wù)器)進行響應(yīng) 轉(zhuǎn)發(fā)數(shù)據(jù)流向:來自外界的數(shù)據(jù)包到達防火墻后,首先被PREROUTING規(guī)則鏈處理,之后會進行路由選擇,如果數(shù)據(jù)包的目標(biāo)地址是其他外部地址(如局域網(wǎng)用戶通過網(wǎng)關(guān)訪問QQ站點的數(shù)據(jù)包),則內(nèi)核將其傳遞給FORWARD鏈進行處理(是否轉(zhuǎn)發(fā)或攔截),然后再交給POSTROUTING規(guī)則鏈(是否修改數(shù)據(jù)包的地址等)進行處理出站數(shù)據(jù)流向:防火墻本機向外部地址發(fā)送的數(shù)據(jù)包(如在防火墻主機中測試公網(wǎng)DNS服務(wù)時),首先被OUTPUT規(guī)則鏈處理,之后進行路由選擇,然傳遞給POSTTOUTING規(guī)則鏈(是否修改數(shù)據(jù)包的地址等)進行處理管理和設(shè)置iptables規(guī)則 iptables命令的語法格式 iptables -t 表名 管理選項 鏈名 條件匹配 -j 目標(biāo)動作或跳轉(zhuǎn) 幾個注意事項 不指定表名時,默認(rèn)表示filter表 不指定鏈名時,默認(rèn)表示該表內(nèi)所有鏈 除非設(shè)置規(guī)則鏈的缺省策略,否則需要指定匹配條件 設(shè)置規(guī)則內(nèi)容: -A:在鏈尾追加一條新的規(guī)則 -I:在指定位置(或鏈?zhǔn)祝┎迦胍粭l新的規(guī)則 -R:修改、替換指定位置或內(nèi)容的規(guī)則 -P:設(shè)置指定鏈的默認(rèn)策略 列表查看規(guī)則 -L:列表查看各條規(guī)則信息 -line-numbers:查看規(guī)則信息時顯示規(guī)則的行號 -n:以數(shù)字形式顯示IP地址、端口等信息 -v:顯示數(shù)據(jù)包個數(shù)、字節(jié)數(shù)等詳細(xì)信息 相關(guān)操作rootserver # iptables -t filter -A INPUT -p tcp -j ACCEPT =在末尾追加規(guī)則rootserver # iptables -I INPUT -p udp -j ACCEPT =默認(rèn)插入規(guī)則的行號為1rootserver # iptables -I INPUT 2 -p icmp -j ACCEPT =默認(rèn)插入規(guī)則的行號為2rootserver # iptables -P INPUT DROP =更改默認(rèn)策略,默認(rèn)是acceptrootserver # iptables -L -n line =查看規(guī)則,默認(rèn)是filterChain INPUT (policy DROP)num target prot opt source destination 1 ACCEPT udp - /0 /0 2 ACCEPT icmp - /0 /0 3 ACCEPT tcp - /0 /0 Chain FORWARD (policy ACCEPT)num target prot opt source destination Chain OUTPUT (policy ACCEPT)num target prot opt source destination 清除規(guī)則 -D:刪除指定位置或內(nèi)容的規(guī)則 -F:清空規(guī)則鏈內(nèi)的所有規(guī)則 自定義規(guī)則鏈 -N:創(chuàng)建一條新的規(guī)則鏈 -X:刪除自定義的規(guī)則鏈具體操作rootserver # iptables -D INPUT 2 =刪除行號為2的規(guī)則rootserver # iptables -F =清除filter的所有規(guī)則rootserver # iptables -t nat -F =清楚規(guī)則表nat的所有規(guī)則rootserver # iptables -t filter -N lth =添加自定義規(guī)則鏈rootserver # iptables -t filter -L =查看filter規(guī)則表的所有規(guī)則Chain INPUT (policy DROP)target prot opt source destination Chain FORWARD (policy ACCEPT)target prot opt source destination Chain OUTPUT (policy ACCEPT)target prot opt source destination Chain lth (0 references)target prot opt source destination設(shè)置匹配數(shù)據(jù)包的條件 通用條件匹配 可直接使用,不依賴于其他的條件或擴展模塊 包括網(wǎng)絡(luò)協(xié)議、IP地址、網(wǎng)絡(luò)接口等匹配方式通用條件匹配有分為以下三類: 協(xié)議匹配 使用“-p 協(xié)議名”的形式 協(xié)議名可使用在“/etc/protocols”文件中定義的名稱 常用的協(xié)議包括tcp、udp、icmp等 地址匹配 使用“-s 源地址”、 “-d 目標(biāo)地址”的形式 地址可以是單個IP地址、網(wǎng)絡(luò)地址(帶掩碼長度) 接口匹配 使用“-i 網(wǎng)絡(luò)接口名”、 “-o 網(wǎng)絡(luò)接口名”的形式,分別對應(yīng)接收、發(fā)送數(shù)據(jù)包的網(wǎng)絡(luò)接口具體操作:rootserver # iptables -I INPUT -p icmp -j REJECT =限制icmp對本機的訪問rootserver # iptables -A FORWARD -p ! icmp -j ACCEPT =接受所有非icmp的訪問rootlocalhost # iptables -A FORWARD -s 1 -j REJECT =拒絕所有來自1 IP地址的轉(zhuǎn)發(fā)請求rootlocalhost # iptables -A INPUT -i eth1 -s /12 -j DROP=丟棄所有來自/12網(wǎng)段從eth1網(wǎng)卡進入的對本機的訪問請求rootlocalhost # iptables -A FORWARD -o eth1 -d -j DROP=丟棄所有去往地址的從eth1網(wǎng)卡出去的轉(zhuǎn)發(fā)請求 隱含條件匹配 一般需要以特定的協(xié)議匹配作為前提 包括端口、TCP標(biāo)記、ICMP類型等匹配方式 端口匹配 使用“-sport 源端口”、“-dport 目標(biāo)端口”的形式 采用“端口1:端口2”的形式可以指定一個范圍的端口 TCP標(biāo)記匹配 使用“-tcp-flags 檢查范圍 被設(shè)置的標(biāo)記”的形式 如“-tcp-flags SYN,RST,ACK SYN”表示檢查SYN、RST、ACK這3個標(biāo)記,只有SYN為1時滿足條件 ICMP類型匹配 使用“-icmp-type ICMP類型”的形式 ICMP類型可以使用類型字符串或者對應(yīng)的數(shù)值,例如Echo-Request、Echo-Reply分別講解幾種隱含匹配的作用、使用形式,酌情進行操作演示(可以參考教材中的例子)端口匹配需以“-p tcp”或者“-p udp”為前提條件;TCP標(biāo)記匹配需以“-p tcp”為前提條件,以“!”可以取反;ICMP類型匹配需以“-p icmp”為前提條件ICMP協(xié)議的消息類型可以通過“iptables -p icmp -h”命令進行查看-syn的用法為兼容舊版本iptables的形式,此處等同于-tcp-flags SYN,RST,ACK SYN 顯式條件匹配 需要使用“-m 擴展模塊”的形式明確指定匹配方式 包括多端口、MAC地址、IP地址范圍、數(shù)據(jù)包狀態(tài)等匹配方式顯示匹配又分為以下三種 MAC地址匹配 使用“-m mac”結(jié)合“-mac-source MAC地址”的形式 多端口匹配 使用“-m multiport”結(jié)合“-sports 源端口列表”或者“-dports 目標(biāo)端口列表”的形式 多個端口之間使用逗號“,”分隔,連續(xù)的端口也可以使用冒號“:”分隔 IP地址范圍匹配 使用“-m iprange”結(jié)合“-src-range 源IP范圍”或者“-dst-range 目標(biāo)IP范圍” 的形式 以“-”符號連接起始IP地址、結(jié)束IP地址 數(shù)據(jù)包狀態(tài)匹配 使用“-m state”結(jié)合“-state 狀態(tài)類型”的形式 同時表示多種狀態(tài)時以逗號“,”分隔 常見的數(shù)據(jù)包狀態(tài)包括:NEW、ESTABLISHED、RELATED具體操作:rootlocalhost # iptables -A FORWARD -m mac mac-source 00:0C:29:27:55:3F -j DROP #使用源mac地址匹配,丟棄所有來自以上mac地址的所有轉(zhuǎn)發(fā)數(shù)據(jù)包rootlocalhost # iptables -A INPUT -p tcp -m multiport dport 20,21,25,110,1250:1280 -j ACCEPT #允許訪問本機的以上所有端口rootlocalhost # iptables -A FORWARD -p tcp -m iprange src-range 0-9 -j DROP #丟棄一段范圍的ip的轉(zhuǎn)發(fā)請求rootlocalhost # iptables -A FORWARD -m state -state NEW -p tcp ! syn -j DROP =狀態(tài)為NEW,syn號不為1的都拒絕rootlocalhost # iptables -A INPUT -p tcp -m state state NEW -j DROP=不允許訪問防火墻本身。rootlocalhost # iptables -A INPUT -p tcp -m state state ESTABLISHED,RELATED -j ACCEPT 數(shù)據(jù)包控制 常見的數(shù)據(jù)包處理方式 ACCEPT:放行數(shù)據(jù)包 DROP:丟棄數(shù)據(jù)包 REJECT:拒絕數(shù)據(jù)包 LOG:記錄日志信息,并傳遞給下一條規(guī)則處理 用戶自定義鏈名:傳遞給自定義鏈內(nèi)的規(guī)則進行處理 SNAT:修改數(shù)據(jù)包的源地址信息 DNAT:修改數(shù)據(jù)包的目標(biāo)地址信息rootlocalhost # iptables -A INPUT -p tcp -dport 22 -m limit -limit 3/minute limit-burst 8 -j LOG 每分鐘新增3個匹配,一次最多匹配八個rootlocalhost # iptables -A INPUT -p tcp -dport 22 -j DROProotlocalhost # iptables -t filter -N MyLAN1rootlocalhost # iptables -A FORWARD -s /24 -j MyLAN1 將需求轉(zhuǎn)給自定義鏈mylan1處理rootlocalhost # iptables -A FORWARD -d /24 -j MyLAN1rootlocalhost # iptables -A MyLAN1 -p icmp -j DROP rootlocalhost # iptables -A MyLAN1 導(dǎo)入導(dǎo)出防火墻規(guī)則 導(dǎo)出規(guī)則 iptables-save 結(jié)合重定向輸出“”符號保存規(guī)則信息 導(dǎo)入規(guī)則 iptables-restore 結(jié)合重定向輸入“ /etc/sysconfig/iptablesrootlocalhost # service iptables restartrootlocalhost # chkconfig level 35 iptables onrootlocalhost # iptables-restore /proc/sys/net/ipv4/ip_forward 方法3:修改/etc/sysctl.conf,設(shè)置 net.ipv4.ip_forward = 14.用于添加的具體防火墻規(guī)則內(nèi)容 清空原有規(guī)則,建立新的規(guī)則 加載模塊 /sbin/depmod a /檢查所有模塊的依賴關(guān)系 /sbin/modprobe ip_nat_ftp 加載支持對ftp連接進行nat轉(zhuǎn)換的功能模塊 sbin/modprobe ip_conntrack_ftp 加載支持ftp連接跟蹤的功能模塊加載完成之后可以使用lsmod查看是否成功加載rootserver # lsmod | grep ip_nat_ftpip_nat_ftp 7361 0 ip_conntrack_ftp 11569 1 ip_nat_ftpip_nat 21101 2 ip_nat_ftp,iptable_natip_conntrack 53281 4 ip_nat_ftp,ip_conntrack_ftp,iptable_nat,ip_natrootserver # lsmod | grep ip_conntrack_ftpip_conntrack_ftp 11569 1 ip_nat_ftpip_conntrack 53281 4 ip_nat_ftp,ip_conntrack_ftp,iptable_nat,ip_nat模塊所在路徑:rootserver netfilter# pwd/lib/modules/2.6.18-194.el5/kernel/net/ipv4/netfilter開啟路由轉(zhuǎn)發(fā)功能:rootserver netfilter# vi /etc/sysctl.conf net.ipv4.ip_forward = 1 =將原來的0改為1rootserver netfilter# sysctl -p =查看iptables腳本開頭語句,清除原來的配置 /sbin/iptables -X /sbin/iptables -t nat -X /sbin/iptables -t mangle X /sbin/iptables -t raw -X /sbin/iptables F /sbin/iptables -t nat F /sbin/iptables -t mangle-F /sbin/iptables -t raw -F /sbin/iptables -P INPUT ACCEPT /sbin/iptables -P OUTPUT ACCEPT /sbin/iptables -P FORWARD ACCEPT防火墻練習(xí):需求描述 入站控制: 允許從Internet訪問本機的21、25、80、110、143,53端口 允許從主機 35訪問本機的22端口(遠(yuǎn)程登錄服務(wù)),每15分鐘記錄一次日志 允許從主機 25(MAC地址為40:61:86:8F:BB:9B訪問網(wǎng)關(guān)的22端口 允許局域網(wǎng)主機(LAN1:/24)訪問本機的3128端口(代理服務(wù)) squid服務(wù) rootserver # yum install squid -y 轉(zhuǎn)發(fā)控制:允許LAN1的主機訪問位于LAN2的DNS服務(wù)器(25)Eth0:1 21實驗拓?fù)鋱D:網(wǎng)關(guān)服務(wù)器也就是防火墻Eth0 21internetDNS緩存服務(wù)器25遠(yuǎn)程控制工作站35需要添加的路由:DNS緩存服務(wù)器:route add -net netmask gw 21遠(yuǎn)程控制工作站:route add -net netmask gw 21防火墻:要記得刪除默認(rèn)路由route add -net netmask gw 21route add -net netmask gw 21防火墻規(guī)則腳本:#!/bin/bash/sbin/iptables -F/sbin/iptables -t nat -F/sbin/iptables -t mangle -F/sbin/iptables -t raw -F/sbin/iptables -P INPUT DROP#/sbin/iptables -P OUTPUT DROP/sbin/iptables -P FORWARD DROP/sbin/iptables -A FORWARD -p icmp -s 35 -d 25 -j ACCEPT #允許從35到25的icmp數(shù)據(jù)包/sbin/ip
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年專用儀器儀表:化工儀表項目規(guī)劃申請報告
- 2025屆七臺河市桃山區(qū)三年級數(shù)學(xué)第一學(xué)期期末檢測試題含解析
- 參與市政工程考試聯(lián)合體的試題及答案
- 行政管理經(jīng)濟法概論數(shù)據(jù)信息歸納與試題及答案
- 公共關(guān)系與社會責(zé)任試題及答案
- 2025年項目實施階段的風(fēng)險應(yīng)對策略試題及答案
- 高效應(yīng)對中級經(jīng)濟師試題及答案指南
- 秋季防護及保健課件
- 小學(xué)二年級預(yù)防踩踏安全教育
- 餐廳廚師用工協(xié)議書
- 全國各氣象臺站區(qū)站號及經(jīng)緯度
- 經(jīng)典話劇劇本《雷雨》
- DL∕T 2006-2019 干式空心電抗器匝間絕過電壓試驗設(shè)備技術(shù)規(guī)范
- 糧食平房倉設(shè)計規(guī)范課件
- 物質(zhì)創(chuàng)造普遍秩序中文版
- 國家級高技能人才培訓(xùn)基地建設(shè)項目申請書
- 高校在完善國防動員機制中的作用與實現(xiàn)路徑
- 化工原理習(xí)題(譚天恩)解答上
- 庫欣綜合征英文教學(xué)課件cushingsyndrome
- 聚酯合成的酯化與縮聚課件
- 交管12123駕駛證學(xué)法減分題庫與答案(通用版)
評論
0/150
提交評論