精品专区-精品自拍9-精品自拍三级乱伦-精品自拍视频-精品自拍视频曝光-精品自拍小视频

網站建設資訊

NEWS

網站建設資訊

iptables的學習-創新互聯

1 Linux防火墻概述

Linux防火墻實際指的是Linux下的Netfilter/Iptables。Netfilter/Iptables是2.4.x/2.6.x版本Linux內核集成的IP信息包過濾系統。

站在用戶的角度思考問題,與客戶深入溝通,找到惠安網站設計與惠安網站推廣的解決方案,憑借多年的經驗,讓設計與互聯網技術結合,創造個性化、用戶體驗好的作品,建站類型包括:成都網站建設、網站設計、企業官網、英文網站、手機端網站、網站推廣、主機域名、網頁空間、企業郵箱。業務覆蓋惠安地區。

查看Linux內核版本

iptables的學習

 

 

Netfilter/Iptables 信息包過濾系統可以當成一個整體,netfilter是內核的模塊實現,iptables是對上層操作工具。

Netfilter是Linux核心中的一個通用架構,工作于內核空間。

Netfilter支持一下方式對數據包進行分類:

  • 源IP地址
  • 目標IP地址
  • 使用接口
  • 使用協議
  • 端口號
  • 連接狀態

其提供了一系列的表(tables),每個表由若干個鏈(chains)組成,每條鏈可以由一條或若干條規則(rules)組成,其規則由一些信息包過濾表組成,這些表包含內核用來控制信息包過濾處理的規則集。

chain的本質是Netfilter定義的不同過濾點??偣捕x了5個過濾點。INPUT,FORWARDING,OUTPUT,PREROUTING,POSTROUTIONG。

Table的本質是Netfilter定義的不同功能的劃分。

filter用于執行基本過濾。

nat是對數據IP進行修改。

mangle是對數據包進行高級修改。

不同的Table只能用于特定的Chain。

 

Iptables 是一個管理內核包過濾的工具,可以用來配置核心包過濾表格中的規則。運行于用戶空間。

 

 

1.1 Linux防火墻的應用

Linux防火墻在企業應用中非常有用,舉例如下:

  • 中小企業與網吧里有iptables作為企業的NAT路由器,可以用來代替傳統路由器,而節約成本。
  • IDC機房一般沒有硬件防火墻,IDC機房的服務器可以用Linux防火墻代替硬件防火墻。
  • iptables可以結合squid作為企業內部上網的透明代理。傳統代理需要在瀏覽器里配置代理服務器信息,而iptables+squid的透明代理則可以把客戶端的請求重定向到代理服務器的端口??蛻舳瞬灰魅魏卧O置,而感覺不到代理的存在。
  • 將iptables作為企業NAT路由器時,可以使用iptables的擴展模塊屏蔽P2P流量,還可以禁止非法網頁。
  • iptables可以用于外網IP向內網IP映射。
  • iptables可以輕松防止輕量級DOS攻擊,比如ping攻擊及SYN洪水攻擊。

綜述,Iptables有兩種應用模式:主機防火墻,NAT路由器。

 

 

1.2 iptables的基本組件

1.2.1 規則

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

 

1.2.2 鏈

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

每個鏈上都有默認的規則。

  • PREROUTING:數據包進入本機,進入路由器之前??梢杂糜谀繕说刂忿D換(DNAT)。
  • INPUT:通過路由表后目的地為本機。
  • FORWARDING:通過路由表后,目的地不為本機??梢杂糜谵D發數據。
  • OUTPUT:由本機產生,向外轉發。
  • POSTROUTIONG:通過路由表后,發送到網卡接口之前??梢杂糜谵D發數據(SNAT,MASQUERADE)

 

1.2.3 表

表(tables)提供特定的功能,iptables有4個表,即raw表、filter表、nat表和mangle表,分別用于實現包過濾,網絡地址轉換和包重構的功能。表中的規則寫在鏈上。

filter表

主要用于數據報文過濾。該表根據系統管理員預定義的一組規則過濾符合條件的數據包。對于防火墻而言,主要利用在filter表中指定的規則來實現對數據包的過濾。filter表是默認的表,如果沒有指定哪個表,iptables 就默認使用filter表來執行所有命令,filter表包含了INPUT鏈,RORWARD鏈,OUTPUT鏈。在filter表中只能允許對數據包進行接受,丟棄的操作,而無法對數據包進行更改。

 

nat表

主要用于網絡地址轉換NAT,該表可以實現一對一,一對多,多對多等NAT工作(SNAT,DNAT,PNAT),iptables就是使用該表實現共享上網的,NAT表包含了PREROUTING鏈,POSTROUTING鏈,OUTPUT鏈。

nat規則表擁有 prerouting 和 postrouting 兩個規則鏈,主要功能為進行一對一、一對多、多對多等網址轉換工作(SNAT,DNAT),由于轉換的特性,需進行目的地網址轉換的數據包,就不需要進行來源網址轉換,反之亦然,因此為了提升改寫封包的效率,在防火墻運作時,每個封包只會經過這個規則表一次。如果我們把數據包過濾的規則定義在這個數據表里,將會造成無法對同一包進行多次比對,因此這個規則表除了作網址轉換外,請不要做其它用途。

 

mangle表

主要用作功能修改數據報文的屬性。比如TCP報文的6個標志位。在內核版本2.4.18 后的linux版本中該表包含的鏈為:INPUT鏈(處理進入的數據包),RORWARD鏈(處理轉發的數據包),OUTPUT鏈(處理本地生成的數據包)POSTROUTING鏈(修改即將出去的數據包),PREROUTING鏈(修改即將到來的數據包)

mangle表主要用于對指定數據包進行更改,在內核版本2.4.18 后的linux版本中該表包含的鏈為:INPUT鏈(處理進入的數據包),RORWARD鏈(處理轉發的數據包),OUTPUT鏈(處理本地生成的數據包)POSTROUTING鏈(修改即將出去的數據包),PREROUTING鏈(修改即將到來的數據包)。

 

raw表

只使用在PREROUTING鏈和OUTPUT鏈上,優先級最高,可以對收到的數據包在連接跟蹤前進行處理。一但用戶使用了RAW表,在某個鏈上RAW表處理完后,將跳過NAT表和 ip_conntrack處理,即不再做地址轉換和數據包的鏈接跟蹤處理了。

 

規則表之間的優先順序:

raw > mangle > nat > filter

iptables的學習

 

 

 

 

1.3 Linux防火墻基本原理

Linux防火墻的原理主要是對數據包的控制,看下圖(以下圖片均來自互聯網):netfilter五條鏈相互關系,即iptables數據包轉發流程圖。

 iptables的學習

iptables的學習

(1)數據包進入網卡時,先進入PREROUTING(路由前)鏈,之后做路由判斷數據包應發往何處,本機或其他機器。

(2)若數據包原目標地址是本機的,數據包會前往INPUT鏈。到達INPUT鏈后,任何進程都會收到它。

(3)本機程序發送出數據包,數據包會經過OUTPUT鏈,然后到達POSTROUTING鏈輸出。

(4)若數據包原目標地址非本機,則需要轉發出去的,且內核允許轉發,數據包前往 FORWARD鏈,然后到達POSTROUTING(路由后)鏈輸出。

 

Netfilter在五個鏈上,使用HOOK技術做規則檢查。

 

 

1.4 iptables規則執行

iptables執行規則時,是從規則表中從上至下順序執行的。

若沒遇到匹配的規則,就一條一條往下匹配;

若完全沒有匹配的規則,則執行該鏈上的默認規則;

若遇到匹配的規則,則執行規則,執行后根據本規則的動作(accept,reject,log,drop等),決定下一步執行的情況,后續執行一般有三種情況:

  • 繼續執行當前規則隊列內的下一條規則。比如執行過Filter隊列內的LOG后,還會執行Filter隊列內的下一條規則。
  • 中止當前規則隊列的執行,轉到下一條規則隊列。比如從執行過accept后就中斷Filter隊列內其它規則,跳到nat隊列規則去執行。
  • 中止所有規則隊列的執行。

iptables的學習

透過這種機制所帶來的好處是,可以進行復雜、多重的封包過濾,簡單的說,iptables可以進行縱橫交錯式的過濾(tables)而非鏈狀過濾(chains)。

 

 

1.5 數據包的狀態

包的狀態依據IP所包含的協議不同而不同,但在內核外部,也就是用戶空間里,只有4種 狀態:NEW,ESTABLISHED,RELATED 和INVALID。它們主要是和狀態匹配一起使用。

數據包在用戶空間的狀態:

  • NEW:表示信息包已經或將啟動新的連接,或者它與尚未用于發送和接收信息包的連接相關聯。若主機向遠程機器發送一個連接請求,這個數據包的狀態是NEW。
  • ESTABLISHED:狀態指出該信息包屬于已建立的連接,該連接一直用于發送和接收信息包并且完全有效。在連接建立之后(完成TCP的三次握手之后),遠程主機和主機通信數據狀態為ESTABLISHED。
  • RELATED:和現有聯機相關的新聯機封包。像FTP這樣的服務,用21端口傳送命令,而用20端口(port模式)或其他端口(PASV模式)傳送數據。在已有的21端口上建立好連接后發送命令,用20或其他端口傳送的數據(FTP-DATA),其狀態是RELATED。
  • INVALID:狀態指出該信息包與任何已知的流或連接都不相關聯,它可能包含錯誤的數據或頭。即無效的數據包,不能被識別屬于哪個連接或沒有任何狀態,通常這種狀態的數據包會被丟棄。

這些狀態可以一起使用,以便匹配數據包。這可以使防火墻非常強壯和有效。

 

 

 

2 iptables實戰概述

iptables的實驗請盡量在虛擬機或非遠程的系統中操作,避免不小心的誤操作可能導致ssh無法使用。

一般來講,iptables防火墻已經內置于CentOS 6及其他Linux版本中,而且iptables服務默認都是啟動的。  iptables應用于IPv4, 如果要用IPv6,需要使用ip6tables。

iptables和ip6_tables、arp_tables一同都是建構在Xtables的架構下,這個方案讓系統管理員定義“表(tables)”、“鏈(chain)”、“規則(rules)”三個數據來處理數據包的運送。每一個“表”都和不同的數據包處理有關、決定數據包是否可以穿越的是“鏈”、而一條“規則”在鍵里面則可以決定是否送往下一條鏈(或其它的動作),這個處理可以在嵌套的結構里面重復使用。每一個網絡數據包從抵達到離開該計算機至少會經過一個鏈(亦即轉送或本機路由)。

查看有沒有安裝iptables:rpm -qa | grep iptables

iptables的學習

若機器上安裝了man命令。則使用man iptables查看iptables的幫助文檔。

 

 

2.1 iptables服務相關

2.1.1 開啟iptables服務

service iptables start
#或
/etc/init.d/iptables start

當前名稱:iptables的學習-創新互聯
文章鏈接:http://m.jcarcd.cn/article/dpposi.html
主站蜘蛛池模板: 国产亚洲精品自拍 | 亚洲无码视频在线观看 | 97精品国| 精品午夜一二 | 日本强乱视频在线 | 久福利丫 | 91制片一二三 | 精品视频免费 | 日本深夜刺激视频 | 欧美日韩国产中文 | 国产精品熟女一 | 国产免费毛卡片 | 日韩高清在线亚洲 | 国产伊煮焦成品75 | 日韩经典第一页 | 91啪日韩一区二区 | 亚洲无码久久影视 | 91福利试看 | 午夜福利体验区 | 国产激情免费视频在 | 97在线观看 | 国产网站免费视频 | 日本中文高清国产 | 国产精品影院 | 精品欧美乱伦 | 91浮力在线视频 | 国产理论影院 | 飘花电影网| 国产精品毛多 | 日韩欧美中文在线 | 国产综合 | 91一二三区| 国语自产精 | 日韩在线影院 | 福利导航网 | 激情视频在线观看 | 国产黄页网址大全 | 欧美日韩综合在线 | 最新热门影视资源在线看 | 国产精品国色 | 福利性影院|