linux服務中如何開啟防火墻-創(chuàng)新互聯

這篇文章將為大家詳細講解有關linux服務中如何開啟防火墻,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

創(chuàng)新互聯堅持“要么做到,要么別承諾”的工作理念,服務領域包括:網站設計、網站建設、企業(yè)官網、英文網站、手機端網站、網站推廣等服務,滿足客戶于互聯網時代的西安網站設計、移動媒體設計的需求,幫助企業(yè)找到有效的互聯網解決方案。努力成為您成熟可靠的網絡建設合作伙伴!

存在以下兩種方式:

一、service方式

查看防火墻狀態(tài):

[root@centos6 ~]# service iptables status

iptables:未運行防火墻。

開啟防火墻:

[root@centos6 ~]# service iptables start

關閉防火墻:

[root@centos6 ~]# service iptables stop

二、iptables方式

先進入init.d目錄,命令如下:

[root@centos6 ~]# cd /etc/init.d/

[root@centos6 init.d]#

然后

查看防火墻狀態(tài):

[root@centos6 init.d]# /etc/init.d/iptables status

暫時關閉防火墻:

[root@centos6 init.d]# /etc/init.d/iptables stop

重啟iptables:

[root@centos6 init.d]# /etc/init.d/iptables restart

下面看下Linux防火墻基本知識

一、防火墻的分類

(一)、包過濾防火墻。

 數據包過濾(packet Filtering)技術是在網絡層對數據包進行選擇,選擇的依據是系統內設置的過濾邏輯,稱為訪問控制表(access control lable,ACL)。通過檢查數據流中每個數據包的源地址和目的地址,所用的端口號和協議狀態(tài)等因素,或他們的組合來確定是否允許該數據包通過。
 包過濾防火墻的優(yōu)點是它對用戶來說是透明的,處理速度快且易于維護。缺點是:非法訪問一旦突破防火墻,即可對主機上的軟件和配置漏洞進行攻擊;數據包的源 地址、目的地址和IP的端口號都在數據包的頭部,可以很輕易地偽造?!癐P地址欺騙”是黑客針對該類型防火墻比較常用的攻擊手段。

(二)、代理服務型防火墻

 代理服務(proxy service)也稱鏈路級網關或TCP通道。它是針對數據包過濾和應用網關技術存在的缺點而引入的防火墻技術,其特點是將所有跨躍防火墻的網絡通信鏈路 分為兩段。當代理服務器接收到用戶對某個站點的訪問請求后就會檢查請求是否符合控制規(guī)則。如果規(guī)則允許用戶訪問該站點,代理服務器就會替用戶去那個站點取 回所需的信息,再轉發(fā)給用戶,內外網用戶的訪問都是通過代理服務器上的“鏈接”來實現的,從而起到隔離防火墻內外計算機系統的作用。
 此外,代理服務也對過往的數據包進行分析和注冊登記,并形成報告,同時當發(fā)現有被攻擊跡象時會向網絡管理員發(fā)出警告,并保留攻擊記錄,為證據收集和網絡維護提供幫助。

 二、防火墻的工作原理

(一)、包過濾防火墻的工作原理

 包過濾是在IP層實現的,因此,它可以只用路由器來完成。包過濾根據包的源IP地址、目的IP地址、源端口、目的端口及包傳遞方向等報頭信息來判斷是否允 許包通過,過濾用戶定義的內容,如IP地址。其工作原理是系統在網絡層檢查數據包,與應用層無關。包過濾器的應用非常廣泛,因為CPU用來處理包過濾的時 間可以忽略不計。而且這種防護措施對用戶透明,合法用戶在進出網絡時,根本感覺不到它的存在,使用起來很方便。這樣系統就具有很好的傳輸性能,易擴展。
 但是這種防火墻不太安全,因為系統對應用層信息無感知--也就是說,它們不理解通信的內容,不能在用戶級別上進行過濾,即不能識別不同的用戶和防止地址的 盜用。如果攻擊者把自己主機的IP地址設成一個合法主機的IP地址,就可以很輕易地通過包過濾器,這樣更容易被黑客攻破?;谶@種工作機制,包過濾防火墻 有以下缺陷:
1、通信信息:包過濾防火墻只能訪問部分數據包的頭信息。
2、通信和應用狀態(tài)信息:包過濾防火墻是無狀態(tài)的,所以它不可能保存來自于通信和應用的狀態(tài)信息。
3、信息處理:包過濾防火墻處理信息的能力是有限的。

(二)、代理服務型防火墻工作原理

 代理服務型防火墻在應用層上實現防火墻功能。它能提供部分與傳輸有關的狀態(tài),能外圈提供與應用相關的狀態(tài)和部分傳輸的信息,它還能處理和管理信息。

三、使用iptables實現包過濾防火墻

(一)、iptables概述及原理

 從內核2.4之后使用全新的內核包過慮管理工具--iptables,這個工具使用戶更易于理解其工作原理,更容易被使用,也具有更強大的功能。

iptables只是一個管理內核包過濾的工具,可以加入、插入或刪除核心包過濾表格(鏈)中的規(guī)則。實際上真正執(zhí)行這些過濾規(guī)則的是netfilter(linux核心中一個通用架構)及其相關模塊(如iptables模塊和nat模塊)。
netfilter是linux核心中一個通用架構,它提供一系列的“表”(tables),每個表由若干“鏈”(chains)組成,而每條鏈中可以由一條或數條規(guī)則(rule)組成??梢赃@樣理解,netfilter是表的容器,表是鏈的容器,鏈是規(guī)則的容器。
 系統缺省的表為“filter”,該表中包含了INPUT、FORWARD和OUTPUT 3個鏈。每一條鏈中可以有一條或數條規(guī)則,每一條規(guī)則都是這樣定義的:“如果數據包頭符合這樣的條件,就這樣處理這個數據包”。當一個數據包到達一個鏈 時,系統就會從第一條規(guī)則開始檢查,看是否符合該規(guī)則所定義的條件,如果滿足,系統將根據該條規(guī)則所定義的方法處理該數據包;如果不滿足則繼續(xù)檢查下一條 規(guī)則;最后,如果數據包不符合該鏈中任何一條規(guī)則,系統就會根據該鏈預先定義的策略(policy)來處理該數據包。

(二)、iptables傳輸數據包的過程

 當數據包進入系統時,系統首先根據路由表決定將數據包發(fā)給哪一條鏈,則可能有以下3種情況:

1、數據包的目的地址是本機,則系統將數據包送往INPUT鏈,如果通過規(guī)則檢查,則該包被發(fā)給相應的本地進程處理;如果沒有通過規(guī)則檢查,系統將丟棄該包。

2、數據包的上的地址不是本機,也就是說這個包將被轉發(fā),則系統將數據包送往FORWARD鏈,如果通過規(guī)則檢查,該包被發(fā)給相應的本地進程處理;如果沒有通過規(guī)則檢查,系統將丟棄該包。

3、數據包是由本地系統進程產生的,則系統將其送往OUTPUT鏈,如果通過規(guī)則檢查,則該包被發(fā)給相應的本地進程處理;如果沒有通過規(guī)則檢查,系統將丟棄該包。

 用戶可以給各鏈定義規(guī)則,當數據包到達其中的每一條鏈,iptables就會根據鏈中定義的規(guī)則來處理這個包。iptables將數據包的頭信息與它所傳 遞到的鏈中的每條規(guī)則進行比較,看它是否和每條規(guī)則完全匹配。如果數據包與某條規(guī)則匹配,iptables就對該數據包執(zhí)行由該規(guī)則指定的操作。例如某條 鏈中的規(guī)則決定要丟棄(DROP)數據包,數據包就會在該鏈處丟棄;如果鏈中規(guī)則接受(ACCEPT)數據包,數據包就可以繼續(xù)前進;但是,如果數據包與 這條規(guī)則不匹配,那么它將與鏈中的下一條規(guī)則進行比較。如果該數據包不符合該鏈中的任何一條規(guī)則,那么iptables將根據該鏈預先定義的默認策略來決 定如何處理該數據包,理想的默認策略應該告訴iptables丟棄(DROP)該數據包。

(三)、iptables的優(yōu)點

netfilter/iptables的大優(yōu)點是它可以配置有狀態(tài)的防火墻,這是ipfwadm和ipchains等以前的工具都無法提供的一種重要功 能。有狀態(tài)的防火墻能夠指定并記住為發(fā)送或接收信息包所建立的連接的狀態(tài)。防火墻可以從信息包的連接跟蹤狀態(tài)獲得該信息。在決定新的信息包過濾時,防火墻 所使用的這些狀態(tài)信息可以增加其效率和速度。這里有4種有效狀態(tài),名稱分別為ESTABLISHED、INVALID、NEW和RELATED。

狀態(tài)ESTABLISHED指出該信息包屬于已經建立的連接,該連接一直用于發(fā)送和接收信息包并且完全有效。INVALID狀態(tài)指出該信息包與任何已知的 流或連接都不相關聯,它可能包含錯誤的數據或頭。狀態(tài)NEW表示該信息包已經或將啟動新的連接,或者它與尚未用于發(fā)送和接收信息包的連接相關聯。最 后,RELATED表示該信息包正在啟動新連接,以及它與已建立的連接想關聯。

netflter/iptables的另一個重要優(yōu)點是,它使用戶可以完全控制防火墻配置和信息包過濾??梢远ㄖ谱约旱囊?guī)則來滿足特定需求,從而只允許想要的網絡流量進入系統。

(四)、iptables的基礎知識

1、規(guī)則(rule)

規(guī)則(rule)就是網絡管理員預定的條件,規(guī)則一般定義為“如果數據包頭符合這樣的條件,就這樣處理這個數據包”。規(guī)則存儲在內核空間的信息包過濾表 中,這些規(guī)則分別指定了源地址、目的地址、傳輸協議(TCP、UDP、ICMP)和服務類型(如HTTP、FTP、SMTP)。當數據包與規(guī)則匹配 時,iptables就根據規(guī)則所定義的方法來處理這些數據包,如放行(ACCEPT)、拒絕(REJECT)、或丟棄(DROP)等。配置防火墻的主要 規(guī)則就是添加、修改和刪除這些規(guī)則。

2、鏈(chains)

鏈(chains)是數據包傳播的路徑,每一條鏈其實就是眾多規(guī)則中的一個檢查清單,每一條鏈中可以有一條或數條規(guī)則。當一個數據包到達一個鏈 時,iptables就會從鏈中的第一條規(guī)則開始檢查,看該數據包是否滿足規(guī)則所定義的條件,如果滿足,系統就會根據該條規(guī)則所定義的方法處理該數據包, 否則iptables將繼續(xù)檢查下一條規(guī)則。如果該數據包不符合鏈中任何一何況規(guī)則,iptables就會根據該鏈預先定義的默認策略來處理該數據包。

3、表(tables)

表(tables)提供特定的功能,iptables內置3個表,即filter表、nat表和mangle表,分別用于實現包過濾,網絡地址轉換和包重構的功能。

(1)filter表。filter表主要用于過濾數據包,該表根據系統管理員預定義的一組規(guī)則過濾符合條件的數據包。對防火墻而言,主要利用filter表中指定一系列規(guī)則來實現對數據包進行過濾操作。
filter表是iptables默認的表,如果沒有指定使用哪個表,iptables就默認使用filter表來執(zhí)行所有的命令。filter表包含了 INPUT鏈

(處理進入的數據包)、FORWARD鏈(處理轉發(fā)的數據包)和OUTPUT鏈(處理本地生成的數據包)。在filter表中只允許對數據包 進行接受或丟棄的操作,而無法對數據包進行更改。

(2)nat表。nat青主要用于網絡地址轉換NAT,該表可以實現一對一、一對多和多對多的NAT工作,iptables就是使用該表實現共享上網功能 的。nat表包含了PREROUTING鏈(修改即將到來的數據包)、OUTPUT鏈(修改在路由之前本地生成的數據包)和POSTROUTING鏈(修 改即將出去的數據包)。

(3)mangle表。mangle表主要用于對指定的包進行修改,因為某些特殊應用可能去改寫數據包的一些傳輸特性,例如理性數據包的TTL和TOS等,不過在實際應用中該表的使用率不高。

(五)、關閉系統防火墻

 由于系統的防火墻功能也是使用iptables實現的,如果用戶在系統的iptables之上設置規(guī)則,很容易發(fā)生沖突,所以在進行iptables學習之前,建議關閉系統的防火墻功能。

(六)、iptables命令格式
iptables的命令格式較為復雜,一般格式如下:

#iptables [-t 表] -命令 匹配 操作

 注:iptables對所有選項和參數都區(qū)分大小寫!

1、表選項

 表選項用于指定命令應用于哪個iptables內置表。iptables內置表包括filter表、nat表和mangle表。

2、命令選項

 命令選項用于指定iptables的執(zhí)行方式,包括插入規(guī)則、刪除規(guī)則和添加規(guī)則等:

-P 或--policy 定義默認策略
-L 或--list 查看iptables規(guī)則列表
-A 或--append 在規(guī)則列表的最后增加一條規(guī)則
-I 或--insert 在指定的位置插入一條規(guī)則
-D 或--delete 在規(guī)則列表中刪除一條規(guī)則
-R 或--replace 替換規(guī)則列表中的某條規(guī)則
-F 或--flush 刪除表中的所有規(guī)則
-Z 或--zero 將表中所有鏈的計數和流量計數器都清零

3、匹配選項

 匹配選項指定數據包與規(guī)則匹配所應具有的特征,包括源地址、目的地址、傳輸協議(如TCP、UDP、ICMP)和端口號(如80、21、110)等:
-i 或--in-interface 指定數據包是從哪個網絡接口進入
-o 或--out-interface 指定數據包是從哪個網絡接口輸出
-p 或--porto 指定數據包匹配的協議,如TCP、UDP
-s 或--source 指定數據包匹配的源地址
--sport 指定數據包匹配的源端口號,可以使用“起始端口號:結束端口號”的格式指定一個范圍的端口
-d 或--destination 指定數據包匹配的目標地址
--dport 指定數據包匹配的目標端口號,可以使用“起始端口號:結束端口號”的格式指定一個范圍的端口

4、動作選項

動作選項指定當數據包與規(guī)則匹配時,應該做什么操作,如接受或丟棄等。

ACCEPT 接受數據包
DROP 丟棄數據包
REDIRECT 將數據包重新轉向本機或另一臺主機的某個端口,通常用此功能實現透明代理或對外開放內網的某些服務
SNAT 源地址轉換,即改變數據包的源地址
DNAT 目標地址轉換,即改變數據包的目的地址
MASQUERADE IP偽裝,即常說的NAT技術。MASQUERADE只能用于ADSL等撥號上網的IP偽裝,也就是主機的IP地址是由ISP動態(tài)分配的;如果主機的IP地址是靜態(tài)固定的,就要使用SNAT
 LOG 日志功能,將符合規(guī)則的數據包的相關信息記錄在日志中,以便管理員進行分析和排錯

(七)、iptables命令的使用

1、查看iptables規(guī)則

 初始的iptables沒有規(guī)則,但是如果在安裝時選擇自動安裝防火墻,系統中會有默認的規(guī)則存在,可以先查看默認的防火墻規(guī)則:

#iptables [-t 表名] 
 [-t 表名]:定義查看哪個表的規(guī)則列表,表名可以使用filter、nat和mangle,如果沒有定論表名,默認使用fliter表
 :列出指定表和指定鏈的規(guī)則
 :定義查看指定表中哪個鏈的規(guī)則,如果不指明哪個鏈,將查看某個表中所有鏈的規(guī)則
#iptables -L -n (查看filter表所有鏈的規(guī)則)
注:在最后添加-n參數,可以不進行IP與HOSTNAME的轉換,顯示的速度會快很多。
#iptables -t nat -L OUTPUT (查看nat表OUTPUT鏈的規(guī)則)

2、定義默認策略

 當數據包不符合鏈中任何一條規(guī)則時,iptables將根據該鏈默認策略來處理數據包,默認策略的定義方法如下

#iptables [-t 表名]  
 [-t 表名]:定義查看哪個表的規(guī)則,表名可以使用filter、nat和mangle,如果沒有寶,默認使用filter表
 :定義默認策略
 :定義查看指定表中哪個鏈的規(guī)則,如果不指明,將查看某個表中所有鏈的規(guī)則
 :處理數據包的動作,可以使用ACCEPT(接受)和DROP(丟棄)
 #iptables -P INPUT ACCEPT (將filter表INPUT鏈的默認策略定義為接受)
 #iptables -t nat -P OUTPUT DROP (將nat表OUTPUT鏈的默認策略定義為丟棄)
創(chuàng)建一個最簡單的規(guī)則范例。對于沒有經驗和時間的用戶而言,設置一個簡單而又實用的規(guī)則是必要的,最基本的原則是“先拒絕所有數據包,然后再允許需要的數 據包”,也就是說通常為filter表的鏈定義。一般都將INPUT定義為DROP,這樣就可以阻止任何數據包進入,其他項目定義為ACCEPT,這樣對 外發(fā)送的數據就可以出去。
#iptables -P INPUT DROP
 #iptables -P FORWARD ACCEPT
 #iptables -P OUTPUT ACCEPT 

 3、增加、插入、刪除和替換規(guī)則

#iptables [-t 表名] 鏈名 [規(guī)則編號] [-i | o 網卡] [-p 協議類型] [-s 源IP | 源子網] [--sport 源端口號] [-d 目標IP | 目標子網] [--dport 目標端口號]
 [-t 表名]:定義查看哪個表的規(guī)則,表名可以使用filter、nat和mangle,如果沒有定義,默認使用filter表
-A:新增一條規(guī)則,該規(guī)則將增加到規(guī)則列表的最后一行,該參數不能使用規(guī)則編號
-I:插入一條規(guī)則,原來該位置上的規(guī)則就會身后順序移動,如果沒有指定規(guī)則編號,則在第一條規(guī)則前插入
-D:刪除一條規(guī)則,可以輸入完整規(guī)則,或直接指定規(guī)則編號
-R:替換某條規(guī)則,規(guī)則被替換并不會改變順序,必須要指定替換的規(guī)則編號
 :指定查看指定表中某條鏈的規(guī)則,可以使用INPUT、OUTPUT、FORWARD、PREROUTING、OUTPUT、POSTROUTIN
 [規(guī)則編號]:規(guī)則編號是在插入、刪除和替換規(guī)則時用,編號是按照規(guī)則列表的順序排列,第一條規(guī)則編號為1
 [-i | o 網卡名稱]:i是指數據包從哪塊網卡輸入,o是批數據包從哪塊網卡輸出
[-p 協議類型]:可以指定規(guī)則應用的協議,包含TCP、UDP、ICMP等
[-s 源IP | 源子網]:數據包的源IP或子網
[--sport 源端口號]:數據包的源端口號
[-d 目標IP | 目標子網]:數據包的目標IP或子網
[--dport 目標端口號]:數據包的目標端口號
 :處理數據包的動作
#iptables -A INPUT -i lo -j ACCEPT (追加一條規(guī)則,接受所有來自lo接口的數據包)
 #iptables -A INPUT -s 192.168.0.44 -j ACCEPT (追加一條規(guī)則,接受所有來自192.168.0.44的數據包)
 #iptables -A INPUT -s 192.168.0.44 -j DROP (追加一條規(guī)則,丟棄所有來自192.168.0.44的數據包)
注:iptables的按照順序讀取規(guī)則的,如果兩條規(guī)則沖突,以排在前面的規(guī)則為準。
#iptables -I INPUT 3 -s 192.168.1.0/24 -j DROP (在INPUT鏈中的第3條規(guī)則前插入一條規(guī)則,丟棄所有來自192.168.1.0/24的數據包)
注:-I參數如果沒有指定插入的位置,將插入到所有規(guī)則的最前面
#iptables -D INPUT 2 (刪除filter表中INPUT鏈中的第2條規(guī)則)
 #iptables -R INPUT 2 -s 192.168.10.0/24 -p tcp --dport 80 -j DROP (替換filter表INPUT鏈中第2條規(guī)則為,禁止192.168.10.0/24訪問TCP的80端口)

4、清除規(guī)則和計數器

 在新建規(guī)則時,往往需要清除原有的或舊的規(guī)則,以免影響新規(guī)則。如果規(guī)則較多,逐條刪除比較麻煩,可以使用清除規(guī)則參數快速刪除所有規(guī)則。
#iptables [-t 表名]
 [-t 表名]:指定策略將應用于哪個表,可以使用filter、nat和mangle,如果沒有指定,默認為filter表
-F:刪除指定表中所有規(guī)則
-Z:將指定表中數據包計數器和流量計數器歸零
#iptables -Z (將filter表中數據包計數器和流量計數器請零)
 #iptables -F (刪除filter表中的所有規(guī)則)

5、記錄與恢復防火墻規(guī)則

 可以使用記錄與恢復防火墻規(guī)則命令,將現有防火墻機制復制下來,在需要恢復時直接恢復即可。
#iptables-save > 文件名 (記錄當前防火墻規(guī)則)
 #iptables-restore > 文件名 (將防火墻規(guī)則恢復到當前主機環(huán)境)

關于“l(fā)inux服務中如何開啟防火墻”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

當前標題:linux服務中如何開啟防火墻-創(chuàng)新互聯
當前鏈接:http://bm7419.com/article8/ddppip.html

成都網站建設公司_創(chuàng)新互聯,為您提供網站維護、App開發(fā)、云服務器網站策劃、網站排名網站內鏈

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯

搜索引擎優(yōu)化