IT貓撲網(wǎng):您身邊最放心的安全下載站! 最新更新|軟件分類(lèi)|軟件專(zhuān)題|手機(jī)版|論壇轉(zhuǎn)貼|軟件發(fā)布

您當(dāng)前所在位置:首頁(yè)操作系統(tǒng)LINUX → Linux系統(tǒng)Iptables防火墻

Linux系統(tǒng)Iptables防火墻

時(shí)間:2015/6/28來(lái)源:IT貓撲網(wǎng)作者:網(wǎng)管聯(lián)盟我要評(píng)論(0)

  Linux 的內(nèi)置firewall機(jī)制,是通過(guò)kernel中的netfilter模塊實(shí)現(xiàn)的(www.netfilter.ort)。Linux kernel使用netfilter對(duì)進(jìn)出的數(shù)據(jù)包進(jìn)行過(guò)濾,netfilter由三個(gè)規(guī)則表組成,每個(gè)表又有許多內(nèi)建的鏈組成。通過(guò)使用iptables命令可以對(duì)這些表鏈進(jìn)行操作,如添加、刪除和列出規(guī)則等。

  一、Netfilter規(guī)則表—filter nat mangle

  filter,用于路由網(wǎng)絡(luò)數(shù)據(jù)包。是默認(rèn)的,也就是說(shuō)如果沒(méi)有指定-t參數(shù),當(dāng)創(chuàng)建一條新規(guī)則時(shí),它會(huì)默認(rèn)存放到該表內(nèi)。

  INPUT 網(wǎng)絡(luò)數(shù)據(jù)包流向服務(wù)器

  OUTPUT 網(wǎng)絡(luò)數(shù)據(jù)包從服務(wù)器流出

  FORWARD 網(wǎng)絡(luò)數(shù)據(jù)包經(jīng)服務(wù)器路由

  nat,用于NAT表.NAT(Net Address Translation )是一種IP地址轉(zhuǎn)換方法。

  PREROUTING 網(wǎng)絡(luò)數(shù)據(jù)包到達(dá)服務(wù)器時(shí)可以被修改

  OUTPUT 網(wǎng)絡(luò)數(shù)據(jù)包由服務(wù)器流出

  POSTROUTING 網(wǎng)絡(luò)數(shù)據(jù)包在即將從服務(wù)器發(fā)出時(shí)可以被修改

  mangle,用于修改網(wǎng)絡(luò)數(shù)據(jù)包的表,如TOS(Type Of Service),TTL(Time To Live),等

  INPUT 網(wǎng)絡(luò)數(shù)據(jù)包流向服務(wù)器

  OUTPUT 網(wǎng)絡(luò)數(shù)據(jù)包流出服務(wù)器

  FORWARD 網(wǎng)絡(luò)數(shù)據(jù)包經(jīng)由服務(wù)器轉(zhuǎn)發(fā)

  PREROUTING 網(wǎng)絡(luò)數(shù)據(jù)包到達(dá)服務(wù)器時(shí)可以被修改

  POSTROUTING 網(wǎng)絡(luò)數(shù)據(jù)包在即將從服務(wù)器發(fā)出時(shí)可以被修改

  1.配置Iptables

  當(dāng)數(shù)據(jù)包進(jìn)入服務(wù)器時(shí),Linux Kernel會(huì)查找對(duì)應(yīng)的鏈,直到找到一條規(guī)則與數(shù)據(jù)包匹配。如果該規(guī)則的target是ACCEPT,就會(huì)跳過(guò)剩下的規(guī)則,數(shù)據(jù)包會(huì)被繼續(xù)發(fā)送。如果該規(guī)則的target是DROP,該數(shù)據(jù)包會(huì)被攔截掉,kernel不會(huì)再參考其他規(guī)則。

  Note:如果從始至終都沒(méi)有一條規(guī)則與數(shù)據(jù)包匹配,而且表末尾又沒(méi)有drop all的規(guī)則,那末該數(shù)據(jù)包會(huì)被accept。Cisco則相反,在表末尾會(huì)因含deny all的規(guī)則。

  1.) Iptables的命令選項(xiàng)

  iptables [-t tables] command option parameter target

  -A 在鏈尾添加一條規(guī)則

  -C 將規(guī)則添加到用戶(hù)定義鏈之前對(duì)其進(jìn)行檢查

  -D 從鏈中刪除一條規(guī)則

  -E 重命名用戶(hù)定義的鏈,不改變鏈本身

  -F 清空鏈,刪除鏈上的所有規(guī)則

  -I 在鏈中插入一條規(guī)則

  -L 列出某個(gè)鏈上的規(guī)則,如iptables –L INPUT 列出INPUT鏈的規(guī)則

  -N 創(chuàng)建一個(gè)新鏈

  -P 定義某個(gè)鏈的默認(rèn)策略

  -R 替換鏈上的某條規(guī)則

  -X 刪除某個(gè)用戶(hù)相關(guān)的鏈

  -Z 將所有表的所有鏈的字節(jié)和數(shù)據(jù)包計(jì)數(shù)器清零

  2.) Iptables的命令參數(shù)

  -p –protocol

  應(yīng)用于數(shù)據(jù)包的協(xié)議類(lèi)型,可以是TCP UDP ICMP或ALL。!也可使用。

  當(dāng)使用-p tcp時(shí),還可使用其他可以選項(xiàng),以便允許進(jìn)一步定義規(guī)則。選項(xiàng)包括:

  ——sport 允許指定匹配數(shù)據(jù)包源端口.port1:port ,表示port1和port2之間的所有端口

  ——dport 目的端口,和——sport雷同。

  當(dāng)使用-p !udp時(shí),也有特殊的選項(xiàng)供使包括:

  ——sport,——dport,與-p tcp 相同,只不過(guò)用以用于UDP包。

  使用-p icmp參數(shù)時(shí),只有一個(gè)選項(xiàng)可用。

  ——icmp-type,允許在過(guò)濾規(guī)則中指定icmp類(lèi)型。

  -s –source 指定數(shù)據(jù)包的源地址。該參數(shù)后跟一個(gè)IP地址,一個(gè)帶有sub-net mask的網(wǎng)絡(luò)地址,或一個(gè)主機(jī)名。(不建議使用主機(jī)名)

  -d,- - destination 數(shù)據(jù)包的目的地址,同-s.

  -j,——jump 用于指定一個(gè)target,告訴規(guī)則將該匹配的數(shù)據(jù)包發(fā)送到該 target。Target可以是ACCEPT,DROP,QUEUE,RETURN.如果沒(méi)有-j,那么不會(huì)對(duì)數(shù)據(jù)包進(jìn)行任何操作,只是將計(jì)數(shù)器加1。

  -i - - in-interface ,對(duì)于INPUT FORWARD PREROUTING鏈,該參數(shù)指定數(shù)據(jù)包到達(dá)服務(wù)器時(shí)所使用的端口。

  -o - - out-interface,對(duì)于OUTPUT FORWARD POSTROUTING鏈,該參數(shù)指定數(shù)據(jù)包離開(kāi)服務(wù)器時(shí)使用的端口。

  3.) Iptables的命令target

  創(chuàng)建規(guī)則的最后一步是指定Iptables對(duì)數(shù)據(jù)包的操作。只要某一規(guī)則匹配該數(shù)據(jù)包,就不會(huì)再有別的規(guī)則的操作。內(nèi)建的target有:ACCEPT DROP QUEUE RETURN。

  ACCEPT:允許數(shù)據(jù)包通過(guò),到達(dá)目的地。

  DROP:拒絕數(shù)據(jù)包通過(guò),丟棄該包。

  QUEUE:將數(shù)據(jù)包發(fā)送回到用戶(hù)應(yīng)用程序處理。

  RETURN:不再根據(jù)當(dāng)前鏈的其他規(guī)則來(lái)檢查數(shù)據(jù)包,而是直接返回,繼續(xù)被發(fā)送到其目的地址,或下一個(gè)鏈。

  2.應(yīng)用Iptables規(guī)則 示例

  允許WWW

  iptables –A INPUT –p tcp –dport 80 –j ACCEPT

  該規(guī)則被添加到filter表的INPUT鏈,允許目的端口是80的數(shù)據(jù)包。

  在內(nèi)部接口上允許DHCP

  iptables –A INPUT –i eth0 –p tcp - - sport 68 - -dport 67 ACCEPT

  iptables –A INPUT –i eth0 –p ucp - -sport 68 - -dport 67 ACCEPT

  以上同時(shí)允許TCP和UDP協(xié)議。

  3.保存和恢復(fù)Iptables

  保存Iptables

  使用iptables-save可將現(xiàn)行的iptables規(guī)則保存,

  iptables-save > iptables保存路徑,如# iptables-save > /etc/iptables.up.rule

  恢復(fù)Iptables

  使用iptables-restore 可從配置文檔恢復(fù)iptables表到現(xiàn)行iptables表.

  iptables-restore < /etc/iptables.up.rule

  二、Ubuntu Server中的Iptables

  Ubuntu Server6.06中已經(jīng)默認(rèn)安裝iptables,版本是1.3.3.默認(rèn)狀態(tài)是關(guān)閉。

  通過(guò)修改/etc/interfaces可將iptables打開(kāi):

  auto lo

  Iface lo inet loopback

  auto eth0

  iface eth0 inet dhcp

  #添加以下內(nèi)容

  pre-up iptables-restore < /etc/iptables.up.rule

  #call the restored rule when active the eth0

  post-down iptables-save > /etc/iptables.up.rule

  #restore the iptables rule when shutdown the interface eth0

  然后重新激活eth0即可。

  另外,可隨時(shí)修改/etc/iptables.up.rule配置文件,來(lái)更改iptables的規(guī)則。Iptables.up.rule格式如下:

  #Generated by iptables-save V1.3.3 on Tue Jul 31 14:18:44 2007

  *filter

  :INPUT ACCEPT [73:8213]

  :FORWARD ACCEPT [0:0]

  :OUTPUT ACCEPT [8:825]

  -A INPUT –i lo –p icmp –j DROP

  -A INPUT –i eth0 –p icmp –j DROP

  COMMIT

  #Completed on Tue Jul 31 14:10:44 2007

  行與行之間不能有空行。

  三.Summary

  iptables表鏈中每條規(guī)則的順序很重要,如果首條是accept all,那末所有的數(shù)據(jù)包都會(huì)被允許通過(guò)firewall,因此應(yīng)當(dāng)適當(dāng)?shù)陌才乓?guī)則順序。

  通常的法則是:拒絕所有 允許少數(shù).

關(guān)鍵詞標(biāo)簽:Linux系統(tǒng),Iptables,防

相關(guān)閱讀

文章評(píng)論
發(fā)表評(píng)論

熱門(mén)文章 安裝紅帽子RedHat Linux9.0操作系統(tǒng)教程安裝紅帽子RedHat Linux9.0操作系統(tǒng)教程使用screen管理你的遠(yuǎn)程會(huì)話使用screen管理你的遠(yuǎn)程會(huì)話GNU/Linux安裝vmwareGNU/Linux安裝vmware如何登錄linux vps圖形界面 Linux遠(yuǎn)程桌面連如何登錄linux vps圖形界面 Linux遠(yuǎn)程桌面連

相關(guān)下載

人氣排行 Linux下獲取CPUID、硬盤(pán)序列號(hào)與MAC地址linux tc實(shí)現(xiàn)ip流量限制dmidecode命令查看內(nèi)存型號(hào)linux下解壓rar文件安裝紅帽子RedHat Linux9.0操作系統(tǒng)教程Ubuntu linux 關(guān)機(jī)、重啟、注銷(xiāo) 命令lcx.exe、nc.exe、sc.exe入侵中的使用方法查看linux服務(wù)器硬盤(pán)IO讀寫(xiě)負(fù)載