自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

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

運(yùn)維 系統(tǒng)運(yùn)維
iptables的啟動(dòng)和關(guān)閉:iptables是Linux內(nèi)核集成的IP信息包過濾系統(tǒng),Linux上更好地控制IP信息包過濾和防火墻配置。那么該如何啟動(dòng)和關(guān)閉iptables呢?本文講述的是iptables的啟動(dòng)和關(guān)閉。

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

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

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

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

  2.查看規(guī)則集

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

  1.   iptables --list  
  2.  

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

  1.   Chain INPUT (policy ACCEPT)  
  2.  
  3.   target prot opt source destination  
  4.  
  5.   Chain FORWARD (policy ACCEPT)  
  6.  
  7.   target prot opt source destination  
  8.  
  9.   Chain OUTPUT (policy ACCEPT)  
  10.  
  11.   target prot opt source destination  
  12.  

  如上例所示,每一個(gè)數(shù)據(jù)包都要通過三個(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程序來讓用戶對(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與沒有定義規(guī)則前已經(jīng)有很大不同,如下所示:

 

  1.  [root@workstation root]# iptables --list  
  2.  
  3.   Chain INPUT (policy ACCEPT)  
  4.  
  5.   target prot opt source destination  
  6.  
  7.   RH-Lokkit-0-50-INPUT all -- anywhere anywhere  
  8.  
  9.   Chain FORWARD (policy ACCEPT)  
  10.  
  11.   target prot opt source destination  
  12.  
  13.   RH-Lokkit-0-50-INPUT all -- anywhere anywhere  
  14.  
  15.   Chain OUTPUT (policy ACCEPT)  
  16.  
  17.   target prot opt source destination  
  18.  
  19.   ......  
  20.  

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

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

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

  3.增加規(guī)則

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

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

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

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

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

  4.刪除規(guī)則

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

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

  5.缺省的策略

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

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

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

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

  6.SYN的使用

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

  剛開始使用iptables的人可以充分利用syn標(biāo)識(shí)來阻止那些未經(jīng)授權(quá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)來設(shè)置規(guī)則,讓它阻止所有沒有經(jīng)過你系統(tǒng)授權(quán)的TCP連接:

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

  這里的-i指的是網(wǎng)卡,-p則是指協(xié)議,--syn則表示帶有syn標(biāo)識(shí)設(shè)置的TCP數(shù)據(jù)包。SYN用于初始化一個(gè)TCP連接,如果自己機(jī)器上沒有運(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ā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.  
  3.   # iptables -t filter -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT  
  4.  
  5.   # iptables -t filter -A FORWARD -i eth1 -o eth0 -j ACCEPT  
  6.  

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

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

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

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

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

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

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

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

  10.規(guī)則的保存

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

  1.   $ iptables-save > iptables-script  
  2.  

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

  1.   $ iptables-restore iptables-script  
  2.  

  如果愿意在每次引導(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

      #丟棄那些流入的宣稱是來自本地機(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)閉就講述到這里啦。

【編輯推薦】

Linux下用iptables上網(wǎng)

使用Iptables進(jìn)行并發(fā)連接限制

如何用IPtables限制網(wǎng)絡(luò)流量

責(zé)任編輯:zhaolei 來源: 開放系統(tǒng)世界
相關(guān)推薦

2011-03-16 15:09:44

關(guān)閉iptables

2011-03-16 14:55:36

關(guān)閉iptables

2011-03-16 15:23:39

UBUNTU關(guān)閉iptables

2011-02-22 14:19:28

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

2011-02-24 09:57:40

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

2010-10-21 15:52:50

sql server服

2011-03-16 15:52:04

關(guān)閉iptables

2010-11-19 15:25:48

關(guān)閉Oracle服務(wù)

2022-05-17 08:44:33

數(shù)據(jù)庫(kù)MySQL

2011-03-15 09:10:42

Linux防火墻Iptables

2010-02-24 13:55:18

Fedora vsFT

2011-02-21 17:58:40

vsFTPd

2011-03-14 13:11:07

Oracle數(shù)據(jù)庫(kù)

2010-10-19 11:33:19

SQLServer命令

2010-01-13 17:00:54

CentOS MySQ

2010-11-15 10:30:04

Oracle數(shù)據(jù)庫(kù)啟動(dòng)

2010-04-15 18:39:56

Unix操作系統(tǒng)

2011-03-01 13:18:59

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

2011-03-15 10:34:51

Iptables命令

2011-03-18 09:26:13

Iptables規(guī)則
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)