天天看點

arp:arp工具簡介_arptables_arpwatch

原貼:http://turbolinux.com.cn/turbo/wiki/doku.php?id=arp:arp%E5%B7%A5%E5%85%B7%E7%AE%80%E4%BB%8B_arptables_arpwatch

當主機上的需要發送一個資料到一個目的IP時,裝置驅動程式并不能了解這個IP位址.

系統需要将IP位址轉換為網絡位址,再傳遞給裝置驅動程式發送出去.

ARP(位址解析協定)就是這樣的一種網絡協定.用于将高層協定位址(IP位址)轉換為實體

網絡位址.

linux核心中儲存有一個ARP表,裡面儲存有IP位址和MAC位址的對應關系.使用arp指令

可以檢視主機的ARP表.

arptables是使用者空間工具,用來管理 linux核心中的ARP規則表.這些規則用來

檢查ARP幀.arptables類似于iptables,但沒有那麼複雜.iptables工作于ip層,

用于對ip包進行管理.arptables工作與arp協定層,用于對arp資料幀進行管理.

arptables可以像iptables那樣對arp資料幀進行各種規則設定,可以ACCEPT,

DROP等.

Turbolinux 10.5和11版本中,已經內建有arptables指令.

你也可以從源碼進行安裝:

鍊(chain)

kernel表是用來區分不同設定的不同功能.規則的每個設定叫做一個”鍊”.每個鍊

是有一個排序了的規則清單,用來于ARP幀相比對.如果一個規則與一個ARP幀

相比對,一個”操作說明”會提供需要進行哪些操作.操作說明叫做”目标”.然而,

如果幀與目前鍊中的目前規則不比對,則繼續與鍊中的下一條規則進行檢查.用

戶可以建立一個新的鍊,作為規則的”目标”來使用.

目标(target)

包含有一個ARP幀與一個幀處理說明的防火牆規則說明叫做一個”目标”.當一個

幀與一個規則相比對時,則kernel按”目标”的定義進行下一步操作.“目标”可以是:

ACCEPT,DROP.CONTINUE,RETURN,擴充定義或使用者指定規則.

ACCEPT表示允許這個幀通過.DROP表示這個幀将被丢棄.CONTINUE表示繼續

進行下一條規則.這樣可以很友善的計算,有多少幀經過了某個規則.RETURN表示

不在這個鍊中繼續進行比對,傳回到上一條鍊的下一條規則.

表(table)

在kernel中隻有一個ARP表.這個表是一個過濾器.你可以在arptables指令中使用

’-t filter’參數.使用時,-t參數必須是arptables指令的第一個參數.

-t,–table

是一個過濾器,在kernel中僅有這一個表,它包含2個(2.4.x核心)或3個(2.6.x核心)内建規則:

INPUT(發送幀的源主機),OUTPUT(本地産生的幀),FORWARD(由橋代碼轉發的幀).

2.4.X核心中沒有FORWARD規則.

arptables指令參數

指令行參數分為幾個部分:指令部分,雜項部分,規則說明,比對擴充,螢幕擴充.

指令(command)

arptables指令參數用于指定在使用-t參數定義的表中的執行動作.如果你沒有使用

-t參數指定一個表名,則指令将應用于預設的過濾表.使用-Z指令時,指令行每次隻能

使用一個指令.

-A,–append

在指定的鍊結尾添加一個規則.

-D,–delete

從指定的鍊中删除規則.這個指令有2種用法:

1.指定要删除規則的序号,文法是: start_nr[:end_nr],可以使用負數.

2.指定要删除規則的詳細内容.

-I,–insert

按序号,在指定的鍊中插入規則.如目前的序号為N,則可以使用-N到N+1

作為插入序号.序号0表示表示在最後一條規則後插入新規則,等同于-A參數.

-R,–replace

替換鍊中指定的規則.如果目前的序号是N,則指定的序号可以是1到N之間的

數字.

-P,–policy

在鍊中設定指定目标的政策,可以為:ACCEPT,DROP或RETURN.

-F,–flush

清空指定的鍊.如果沒有指定鍊,則所有的鍊都将被清空.清空鍊不會改變鍊的

政策.

-Z,–zero

将指定鍊的計數器置0.如果沒有指定鍊,則所有計數器都将置0.-Z指令可以與

-L指令結合使用.當同時使用-Z,-L指令時,計數器的值會先被列印出來,然後置0.

-L,–list

輸出指定鍊中的規則.如果沒有指定鍊,所有将輸出所有鍊中的規則.

-N,–new-chain

建立新的使用者鍊.使用者鍊的數量沒有限制,但使用者鍊的名稱最多可以有31個字元.

-X,–delete-chain

删除指定的使用者鍊.使用者鍊中必須為空.如果沒有指定使用者鍊,則所有為空的使用者鍊

将被删除.

-E,–rename-chain

重命名指定鍊.你可以重命名一個使用者鍊,也可以重命名一個标準鍊名.

<其他指令>

-V,–version

顯示arptables程式的版本号.

-h,–help

輸出文法幫助資訊.

-j,–jump 目标

規則的目标.可以是:ACCEPT,DROP,CONTINUE,RETURN,目标擴充或使用者

定義鍊名.

<規則說明>

-s,–source-ip [!] IP位址[/掩碼]

源IP位址

-d,–destination-ip [!] IP位址[/掩碼]

目的IP位址

–source-mac [!] MAC位址[/掩碼]

源MAC位址

–destination-mac [!] MAC位址[/掩碼]

目的MAC位址.

-i,–in-interface [!] 裝置名

用于接收幀的接口(應用于INPUT,FORWARD鍊).–in-if是這個選項的别名.

-o,–out-interface [!] 裝置名

用于發送幀的接口(應用于OUTPUT,FORWARD鍊).–out-if是這個選項的别名.

-l,–h-length 長度[/掩碼]

硬體長度(機關位元組).

–opcode 代碼[/掩碼]

操作碼(2位元組).可以使用:1=請求,2=回複,3=反解析請求,4=反解析回複,

5=動态反解析請求,6=動态反解析回複,7=動态反解析錯誤,8=逆向ARP請求,

9=ARP_NAK

–h-type 類型[/掩碼]

硬體類型(2位元組,十六進制).可以使用:1=Ethernet.

–proto-type 類型[/mask]

協定類型(2位元組).可以使用:0×800=IPv4

arpwatch用來監聽網絡中的ARP資料包并進行記錄,同時将監聽到的

變化通過E-mail來報告給系統管理者.

arpwatch使用pcap(3)來監聽本地以太接口的arp資料包.

Turbolinux 10.5和11版本中,已經內建有arpwatch.

你也可以從源碼安裝:

-d 标記用來啟用調試模式.

-f 标記用來設定使用的資料庫名,預設是arp.dat.

-i 用來指定網絡接口.

-n 用于說明本地網絡.

-r 指定讀取一個由tcpdump或pcapture生成資訊檔案,而不從網絡接口中

-s 用于指定sendmail程式的路徑.

-p 指定禁用”混合模式”.網絡接口不是”混合模式”時,ARP廣播也可以通過.

-a 預設情況下,arpwatch僅記錄預設網絡接口上,第一個IP位址子網的arp

資訊.使用-a參數,則記錄網絡接口上所有IP位址子網的arp資訊.

-m 指定一個用于接收變更資訊的郵件位址.