偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

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

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

iptables啟動關(guān)閉:

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

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

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

  2.查看規(guī)則集

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

  1.   iptables --list  
  2.  

  下面是沒有定義規(guī)劃時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.  

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

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

   iptables/啟動/關(guān)閉

 

圖1 Red Hat 9.0中安全設置的GUI工具

  在Red Hat 9.0中,提供一個GUI程序來讓用戶對系統(tǒng)的安裝級別進行簡單的配置。該工具的啟動方法是:主選單→系統(tǒng)設置→安全工具(如圖1所示)。在此將安全級別設為“高級”,并選擇使用默認的防火墻規(guī)則。點擊確定后,再用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)實中一般不使用這個GUI工具,因為它的功能有限,也不夠透明。相比較而言,SuSE 9.0中相應的配置工具要好得多,它可以在GUI下對防火墻進行更加細化的配置(比如增加了IP轉(zhuǎn)發(fā)和偽裝等功能的配置)。盡管這樣,一般還是自己來增加和刪除規(guī)則。 

IPtables/啟動/關(guān)閉

圖2 SuSE 9.0中YaST配置工具中的防火墻設置

  3.增加規(guī)則

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

  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àn)有的鏈添加規(guī)則。

  4.刪除規(guī)則

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

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

  5.缺省的策略

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

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

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

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

  6.SYN的使用

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

  剛開始使用iptables的人可以充分利用syn標識來阻止那些未經(jīng)授權(quán)的訪問。iptables只檢測數(shù)據(jù)包的報頭,事實上,除iptables以外,很多其它有用的數(shù)據(jù)包分析都是基于報頭的。比如,在進行Web沖浪時,一個請求從你的PC發(fā)送至其它地方的Web服務器上,該服務器會響應請求并發(fā)回一個數(shù)據(jù)包,同時得到你系統(tǒng)上的一個臨時端口。與響應請求不同的是,服務器并不關(guān)心所傳送的內(nèi)容??梢岳眠@種特點來設置規(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標識設置的TCP數(shù)據(jù)包。SYN用于初始化一個TCP連接,如果自己機器上沒有運行任何服務器,別人也就不會向你發(fā)送SYN數(shù)據(jù)包。

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

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

  8.共享一個Internet連接

  網(wǎng)絡地址翻譯和IP偽裝都可以實現(xiàn)多臺主機共享一個Internet連接,這個局域網(wǎng)可以是Linux和Windows系統(tǒng)組成的多系統(tǒng)局域網(wǎng)。假設現(xiàn)在有一臺機器,配有兩個網(wǎng)卡,其中eth0為“公共”網(wǎng)卡,eth1為“私有”網(wǎng)卡,即eth0被分配了一個靜態(tài)的、可路由的IP地址,而eth1被分配了一個私有的、不能路由的IP,該IP是屬于該局域網(wǎng)子網(wǎng)的。要實現(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ù)包檢測的價值。請注意,這里是如何實現(xiàn)流入數(shù)據(jù)包只有在屬于一個已經(jīng)存在的連接時才被允許,而所有來自局域網(wǎng)內(nèi)流向外的數(shù)據(jù)包則都允許通過。第一條規(guī)則讓所有流出的信息看起來都是來自防火墻機器的,而并不會顯示出防火墻后面還有一個局域網(wǎng)。

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

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

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

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

  9.運行服務器時的情況

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

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

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

  信息包過濾表中的所有規(guī)則都被保存在文件iptables-script中。無論何時再次引導系統(tǒng),都可以使用iptables-restore命令將規(guī)則集從該腳本文件恢復到信息包過濾表?;謴兔钊缦滤荆?/p>

  1.   $ iptables-restore iptables-script  
  2.  

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

  下面的例子并不是一個完整的腳本,它只是描述了如何使用變量及提供了一些附加的規(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),將其設置為可用狀態(tài):

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

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

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

      #每次重啟這個腳本時,最好清除以前所設的規(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

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

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

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

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

      #限制一些流出的信息
     

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

【編輯推薦】

Linux下用iptables上網(wǎng)

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

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

責任編輯: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

2010-10-21 15:52:50

sql server服

2011-02-24 09:57:40

vsFTPd啟動關(guān)閉

2011-02-22 14:19:28

vsFTPd啟動關(guān)閉

2010-11-19 15:25:48

關(guān)閉Oracle服務

2022-05-17 08:44:33

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

2011-03-16 15:52:04

關(guān)閉iptables

2010-02-24 13:55:18

Fedora vsFT

2011-03-15 09:10:42

Linux防火墻Iptables

2011-02-21 17:58:40

vsFTPd

2011-03-14 13:11:07

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

2010-01-13 17:00:54

CentOS MySQ

2010-10-19 11:33:19

SQLServer命令

2010-04-15 18:39:56

Unix操作系統(tǒng)

2010-11-15 10:30:04

Oracle數(shù)據(jù)庫啟動

2011-03-01 13:18:59

vsFTPd啟動關(guān)閉

2011-03-15 10:34:51

Iptables命令

2011-04-22 17:05:04

電腦啟動關(guān)閉
點贊
收藏

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