• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            isware

            iptables的啟動(dòng)和關(guān)閉

            iptables啟動(dòng)關(guān)閉:

            1.啟動(dòng)和關(guān)閉iptables

            下面將正式使用iptables來(lái)創(chuàng)建防火墻。啟動(dòng)和關(guān)閉iptables的方法取決于所使用的Linux發(fā)行版,可以先查看所使用Linux版本的文檔。

            一般情況下,iptables已經(jīng)包含在Linux發(fā)行版中,運(yùn)行iptables --version來(lái)查看系統(tǒng)是否安裝了iptables。在Red Hat 9.0中,安裝的版本是iptables v1.2.7a。如果系統(tǒng)沒(méi)有安裝iptables,則可以從netfilter官網(wǎng)下載。

            2.查看規(guī)則集

            上面僅對(duì)iptables的用法做了一個(gè)簡(jiǎn)單介紹,使用中可以運(yùn)行man iptables來(lái)查看所有命令和選項(xiàng)的完整介紹,或者運(yùn)行iptables -help來(lái)查看一個(gè)快速幫助。要查看系統(tǒng)中現(xiàn)有的iptables規(guī)劃集,可以運(yùn)行以下命令:

            1. iptables --list  

            下面是沒(méi)有定義規(guī)劃時(shí)iptables的樣子:

            1. Chain INPUT (policy ACCEPT)  
            2. target prot opt source destination  
            3. Chain FORWARD (policy ACCEPT)  
            4. target prot opt source destination  
            5. Chain OUTPUT (policy ACCEPT)  
            6. target prot opt source destination  

            如上例所示,每一個(gè)數(shù)據(jù)包都要通過(guò)三個(gè)內(nèi)建的鏈(INPUT、OUTPUT和FORWARD)中的一個(gè)。

            filter是最常用的表,在filter表中最常用的三個(gè)目標(biāo)是ACCEPT、DROP和REJECT。DROP會(huì)丟棄數(shù)據(jù)包,不再對(duì)其進(jìn)行任何處理。REJECT會(huì)把出錯(cuò)信息傳送至發(fā)送數(shù)據(jù)包的主機(jī)。

            iptables/啟動(dòng)/關(guān)閉

            圖1 Red Hat 9.0中安全設(shè)置的GUI工具

            在Red Hat 9.0中,提供一個(gè)GUI程序來(lái)讓用戶對(duì)系統(tǒng)的安裝級(jí)別進(jìn)行簡(jiǎn)單的配置。該工具的啟動(dòng)方法是:主選單→系統(tǒng)設(shè)置→安全工具(如圖1所示)。在此將安全級(jí)別 設(shè)為“高級(jí)”,并選擇使用默認(rèn)的防火墻規(guī)則。點(diǎn)擊確定后,再用iptables -list顯示,發(fā)現(xiàn)iptables與沒(méi)有定義規(guī)則前已經(jīng)有很大不同,如下所示:

             

            1.  [root@workstation root]# iptables --list  
            2. Chain INPUT (policy ACCEPT)  
            3. target prot opt source destination  
            4. RH-Lokkit-0-50-INPUT all -- anywhere anywhere  
            5. Chain FORWARD (policy ACCEPT)  
            6. target prot opt source destination  
            7. RH-Lokkit-0-50-INPUT all -- anywhere anywhere  
            8. Chain OUTPUT (policy ACCEPT)  
            9. target prot opt source destination  
            10. ......  

            現(xiàn)實(shí)中一般不使用這個(gè)GUI工具,因?yàn)樗墓δ苡邢蓿膊粔蛲该鳌O啾容^而言,SuSE 9.0中相應(yīng)的配置工具要好得多,它可以在GUI下對(duì)防火墻進(jìn)行更加細(xì)化的配置(比如增加了IP轉(zhuǎn)發(fā)和偽裝等功能的配置)。盡管這樣,一般還是自己來(lái)增加和刪除規(guī)則。 

            IPtables/啟動(dòng)/關(guān)閉

            圖2 SuSE 9.0中YaST配置工具中的防火墻設(shè)置

            3.增加規(guī)則

            本例中的規(guī)則將會(huì)阻止來(lái)自某一特定IP范圍內(nèi)的數(shù)據(jù)包,因?yàn)樵揑P地址范圍被管理員懷疑有大量惡意攻擊者在活動(dòng):

            1. # iptables -t filter -A INPUT -s 123.456.789.0/24 -j DROP  

            也可以很輕易地阻止所有流向攻擊者IP地址的數(shù)據(jù)包,該命令稍有不同:

            1. # iptables -t filter -A OUTPUT -d 123.456.789.0/24 -j DROP  

            注意這里的A選項(xiàng),如前所述,使用它說(shuō)明是給現(xiàn)有的鏈添加規(guī)則。

            4.刪除規(guī)則

            網(wǎng)絡(luò)上的惡意攻擊者總是在變化的,因此需要不斷改變IP。假設(shè)一個(gè)網(wǎng)上攻擊者轉(zhuǎn)移到新的IP地址,而其老的IP地址被分配給一些清白的用戶,那么這時(shí)這些用戶的數(shù)據(jù)包將無(wú)法通過(guò)你的網(wǎng)絡(luò)。這種情況下,可以使用帶-D選項(xiàng)的命令來(lái)刪除現(xiàn)有的規(guī)則:

            1. # iptables -t filter -D OUTPUT -d 123.456.789.0/24 -j DROP  

            5.缺省的策略

            創(chuàng)建一個(gè)具有很好靈活性、可以抵御各種意外事件的規(guī)則需要大量的時(shí)間。對(duì)于那些沒(méi)有時(shí)間這樣做的人,最基本的原則是“先拒絕所有的數(shù)據(jù)包,然后再允許需要的”。下面來(lái)為每一個(gè)鏈設(shè)置缺省的規(guī)則:

            1. # iptables -P INPUT DROP  
            2. # iptables -P FORWARD DROP  
            3. # iptables -P OUTPUT ACCEPT  

            這里選項(xiàng)-P用于設(shè)置鏈的策略,只有三個(gè)內(nèi)建的鏈才有策略。這些策略可以讓信息毫無(wú)限制地流出,但不允許信息流入。很多時(shí)候需要接收外部信息,則可使用以下命令:

            1. # iptables -t filter -A INPUT -s 123.456.789.0/24 -j ACCEPT  

            6.SYN的使用

            不能關(guān)閉所有端口,也不能只指定某些端口處于打開(kāi)狀態(tài),那么怎樣才能設(shè)置一個(gè)有效的規(guī)則,既可以允許普通用戶正常通過(guò),又可以阻止惡意攻擊者訪問(wèn)網(wǎng)絡(luò)呢?

            剛開(kāi)始使用iptables的人可以充分利用syn標(biāo)識(shí)來(lái)阻止那些未經(jīng)授權(quán)的訪問(wèn)。iptables只檢測(cè)數(shù)據(jù)包的報(bào)頭,事實(shí)上,除 iptables以外,很多其它有用的數(shù)據(jù)包分析都是基于報(bào)頭的。比如,在進(jìn)行Web沖浪時(shí),一個(gè)請(qǐng)求從你的PC發(fā)送至其它地方的Web服務(wù)器上,該服務(wù) 器會(huì)響應(yīng)請(qǐng)求并發(fā)回一個(gè)數(shù)據(jù)包,同時(shí)得到你系統(tǒng)上的一個(gè)臨時(shí)端口。與響應(yīng)請(qǐng)求不同的是,服務(wù)器并不關(guān)心所傳送的內(nèi)容。可以利用這種特點(diǎn)來(lái)設(shè)置規(guī)則,讓它阻 止所有沒(méi)有經(jīng)過(guò)你系統(tǒng)授權(quán)的TCP連接:

            1. # iptables -t filter -A INPUT -i eth0 -p tcp --syn -j DROP  

            這里的-i指的是網(wǎng)卡,-p則是指協(xié)議,--syn則表示帶有syn標(biāo)識(shí)設(shè)置的TCP數(shù)據(jù)包。SYN用于初始化一個(gè)TCP連接,如果自己機(jī)器上沒(méi)有運(yùn)行任何服務(wù)器,別人也就不會(huì)向你發(fā)送SYN數(shù)據(jù)包。

            7.有狀態(tài)的數(shù)據(jù)包的檢測(cè)

            前邊的例子把每一個(gè)數(shù)據(jù)包看成是獨(dú)立的,而不是相互關(guān)聯(lián)的,依靠的是數(shù)據(jù)包的頭信息。iptables會(huì)檢查數(shù)據(jù)包的源和目的IP地址、源和目的端 口、流入數(shù)據(jù)包的順序號(hào)、TCP先后順序的信息及頭標(biāo)記(SYN、ACK、FIN、RST等)的狀態(tài),即它會(huì)跟蹤整個(gè)連接會(huì)話,從而使整個(gè)過(guò)濾過(guò)程是相互 關(guān)聯(lián)的。

            8.共享一個(gè)Internet連接

            網(wǎng)絡(luò)地址翻譯和IP偽裝都可以實(shí)現(xiàn)多臺(tái)主機(jī)共享一個(gè)Internet連接,這個(gè)局域網(wǎng)可以是Linux和Windows系統(tǒng)組成的多系統(tǒng)局域網(wǎng)。假 設(shè)現(xiàn)在有一臺(tái)機(jī)器,配有兩個(gè)網(wǎng)卡,其中eth0為“公共”網(wǎng)卡,eth1為“私有”網(wǎng)卡,即eth0被分配了一個(gè)靜態(tài)的、可路由的IP地址,而eth1被 分配了一個(gè)私有的、不能路由的IP,該IP是屬于該局域網(wǎng)子網(wǎng)的。要實(shí)現(xiàn)上述功能,需要向nat和filter表中添加一些鏈:

            1. # iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE  
            2. # iptables -t filter -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT  
            3. # iptables -t filter -A FORWARD -i eth1 -o eth0 -j ACCEPT  

            這顯示了有狀態(tài)的數(shù)據(jù)包檢測(cè)的價(jià)值。請(qǐng)注意,這里是如何實(shí)現(xiàn)流入數(shù)據(jù)包只有在屬于一個(gè)已經(jīng)存在的連接時(shí)才被允許,而所有來(lái)自局域網(wǎng)內(nèi)流向外的數(shù)據(jù)包則都允許通過(guò)。第一條規(guī)則讓所有流出的信息看起來(lái)都是來(lái)自防火墻機(jī)器的,而并不會(huì)顯示出防火墻后面還有一個(gè)局域網(wǎng)。

            下面的命令為FORWARD和POSTROUTING鏈設(shè)置缺省的策略,在使用偽裝時(shí),有一個(gè)缺省的POSTROUTING DROP策略非常重要,否則就可能有心懷惡意的用戶突破網(wǎng)關(guān)后偽裝自己的身份。

            1. # iptables -t filter -P FORWARD DROP  
            2. # iptables -t nat -P POSTROUTING DROP  

            下面的命令為撥號(hào)連接設(shè)置,它可以動(dòng)態(tài)地分配IP地址:

            1. # iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE  

            9.運(yùn)行服務(wù)器時(shí)的情況

            有時(shí)也會(huì)把服務(wù)器放置在防火墻后面,這時(shí)iptables就需要知道從哪兒通過(guò)數(shù)據(jù)包,設(shè)置如下所示:

            1. # iptables -t nat -A PREROUTING -i eth0 -p tcp -dport 80 -j DNAT -to 192.168.0.10:80  
            2. # iptables -t nat -A PREROUTING -i eth0 -p tcp -dport 25 -j DNAT -to 192.168.0.11:25  

            10.規(guī)則的保存

            到現(xiàn)在為止,所有的例子都是在命令行中進(jìn)行的。在測(cè)試新的規(guī)則時(shí),這是一種很好的方式,但一旦測(cè)試結(jié)果令人滿意,就可以將它們保存為腳本。可以使用 iptables-save 命令來(lái)實(shí)現(xiàn):

            1. $ iptables-save > iptables-script  

            信息包過(guò)濾表中的所有規(guī)則都被保存在文件iptables-script中。無(wú)論何時(shí)再次引導(dǎo)系統(tǒng),都可以使用iptables-restore命令將規(guī)則集從該腳本文件恢復(fù)到信息包過(guò)濾表。恢復(fù)命令如下所示:

            1. $ iptables-restore iptables-script  

            如果愿意在每次引導(dǎo)系統(tǒng)時(shí)自動(dòng)恢復(fù)該規(guī)則集,則可以將上面指定的這條命令放到任何一個(gè)初始化Shell腳本中。

            下面的例子并不是一個(gè)完整的腳本,它只是描述了如何使用變量及提供了一些附加的規(guī)則樣例。

            1. #!/bin/sh   

              #為變量賦值

              IPTABLES=/sbin/iptables

              LAN_NET="192.168.1.0/24"

              IFACE= "eth0"

              LO_IFACE="lo"

              LO_IP="127.0.0.1"

              #加載所需的內(nèi)核

              /sbin/modprobe ip_conntrack

              /sbin/modprobe iptable_nat

              #缺省情況下,IP轉(zhuǎn)發(fā)都處于不可用狀態(tài),將其設(shè)置為可用狀態(tài):

              echo "1" > /proc/sys/net/ipv4/ip_forward

              #使IP的動(dòng)態(tài)分配功能可用

              echo "1" > /proc/sys/net/ipv4/ip_dynaddr

              #每次重啟這個(gè)腳本時(shí),最好清除以前所設(shè)的規(guī)則

              $IPTABLES -P INPUT DROP

              $IPTABLES -F INPUT

              $IPTABLES -P OUTPUT ACCEPT

              $IPTABLES -F OUTPUT

              $IPTABLES -P FORWARD DROP

              $IPTABLES -F FORWARD

              $IPTABLES -F -t nat

              #只允許在LAN中使用SSH連接

              $IPTABLES -A INPUT -s LAN_NET -p tcp --destination-port ssh -j ACCEPT

              #允許loopback!

              $IPTABLES -A INPUT -i lo -p all -j ACCEPT

              $IPTABLES -A OUTPUT -o lo -p all -j ACCEPT

              #丟棄那些流入的宣稱是來(lái)自本地機(jī)器的數(shù)據(jù)包

              #丟棄那些流出的不是出自本地機(jī)的數(shù)據(jù)包

              $IPTABLES -A INPUT -i $IFACE -s $LAN_NET -j DROP

              $IPTABLES -A OUTPUT -o $IFACE -s ! $LAN_NET -j DROP

              #限制一些流出的信息
               

            iptables的啟動(dòng)和關(guān)閉就講述到這里啦。

            posted on 2011-06-01 11:29 艾斯維亞 閱讀(3447) 評(píng)論(0)  編輯 收藏 引用


            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


            成人久久免费网站| 久久91精品国产91| 一本大道加勒比久久综合| 国产精品99久久精品爆乳| 久久久久99精品成人片三人毛片| 久久无码一区二区三区少妇| 国产成人精品综合久久久| 99999久久久久久亚洲| 久久久久久青草大香综合精品| 亚洲国产精品成人久久蜜臀 | 模特私拍国产精品久久| 久久超乳爆乳中文字幕| 国产综合成人久久大片91| 久久人做人爽一区二区三区| 99热都是精品久久久久久| 久久精品国产99久久久古代 | 久久精品国产亚洲AV久| 久久久久综合网久久| 久久久久se色偷偷亚洲精品av| 久久福利青草精品资源站免费| 亚洲日本久久久午夜精品| 国内精品久久久久久久涩爱| 精品久久久久久无码专区| 香蕉久久AⅤ一区二区三区| 97精品国产97久久久久久免费| 香蕉久久av一区二区三区| 区亚洲欧美一级久久精品亚洲精品成人网久久久久| 中文字幕无码精品亚洲资源网久久| 91精品国产91热久久久久福利| 亚洲AV无码1区2区久久| 综合网日日天干夜夜久久| 亚洲伊人久久综合中文成人网| 99久久精品免费| 99久久夜色精品国产网站| 精品久久8x国产免费观看| 亚洲色欲久久久综合网东京热| 欧美精品一区二区久久 | 一97日本道伊人久久综合影院| 久久婷婷色综合一区二区| 久久涩综合| 久久精品国产2020|