arp:arpツール紹介_アーptables_arpwatch

6982 ワード

原紙:http://turbolinux.com.cn/turbo/wiki/doku.php?id=arp:arp%E5%B7%A5%E5%85%B7%E7%AE%80%E4%BB%8B_アーptables_arpwatch
一.ARP協議概要
ホスト上のデータを目的IPに送信する必要がある場合、デバイスドライバはこのIPアドレスを理解できません.システムはIPアドレスをネットワークアドレスに変換して、デバイスドライバに転送します.ARP(アドレス解析プロトコル)はこのようなネットワークプロトコルです.トッププロトコルアドレス(IPアドレス)を物理ネットワークアドレスに変換します.linuxカーネルにはARPテーブルが保存されています.中にはIPアドレスとMACアドレスの対応関係が保存されています.arpコマンドを使ってホストのARPテーブルを確認できます.
# arp -a
m1 (192.168.0.1) at 00:E0:4C:FF:D7:31 [ether] on eth0
二.ARPプロトコル関連ツール
1.arptables
a)arptables概要
arptablesは、ユーザ空間ツールであり、linuxカーネル内のARPルールテーブルを管理するために使用されています.これらのルールは、ARPフレームを検査するために使用されます.arptablesはiptablesに似ていますが、さほど複雑ではありません.ipパケットを管理するためにip層に動作します.arpデータフレームを管理するために使用されます.arptablesは、様々なルールを設定します.ACCEPT、DROPなどができます.
b)arptablesのインストール
Turbolinux 10.5と11のバージョンでは、すでにarptablesコマンドが統合されています.ソースからインストールすることもできます.
# wget -c http://jaist.dl.sourceforge.net/sourceforge/ebtables/arptables-v0.0.3-3.tar.gz
# tar zxvf arptables-v0.0.3-3.tar.gz
# cd arptables-v0.0.3-3
# make
# make install
c)arptables命令の文法
       arptables [-t table] -[AD] chain rule-specification [options]
arptables [-t table] -[RI] chain rulenum rule-specification [options]
arptables [-t table] -D chain rulenum [options]
arptables [-t table] -[LFZ] [chain] [options]
arptables [-t table] -[NX] chain
arptables [-t table] -E old-chain-name new-chain-name
arptables [-t table] -P chain target [options]
チェーン(chain)kernelテーブルは、異なる設定の異なる機能を区別するために使用されます.ルールの設定ごとに「チェーン」と呼ばれます.チェーンごとに順序付けられたルールリストがあります.ARPフレームにマッチするために使用されます.ルールが一つのARPフレームにマッチすると、一つの「オペレーション説明」が必要な操作を提供します.操作説明は「ターゲット」と呼ばれます.フレームが現在のチェーン内の現在のルールと一致しない場合、チェーン内の次のルールと引き続きチェックします.ユーザは新しいチェーンを作成して、ルールの「ターゲット」として使用できます.ターゲットはARPフレームと一つのフレーム処理に説明されるファイアウォールルールを含んでいます.「ターゲット」といいます.一つのフレームがルールと一致する場合、ターゲットの定義に従って次のステップを行います.ターゲットはACCEPT、DROP.ONINUE、RETURN、拡張定義またはユーザ指定ルールです.ACCEPTはこのフレームが通過することを許可します.DROPはこのフレームが破棄されることを表します.CONTINUEは次のルールを続けます.このような計算が便利です.どれぐらいのフレームがルールを通りましたか?RETURNはこのチェーンにマッチしないということです.前のチェーンの次のルールに戻ります.テーブルはケネルにARPテーブルが一つしかありません.このテーブルはフィルタです.arptabesコマンドで'-t filter'パラメータを使用できます.使用する時、-tパラメータはarptablesコマンドの最初のパラメータでなければなりません.フィルタです.ケカーネルにはこのテーブルしかありません.2つ(2.4 xカーネル)または3つ(2.6.xカーネル)の内部ルールを含んでいます.INPUT(送信フレームのソースホスト)、OUT(ローカルに生成されたフレーム)、FOWARD(ブリッジコードによって転送されたフレーム)、2.4.XカーネルにはFORDルールがありません.arptabersコマンドのパラメータラインはいくつかの部分に分かれています.コマンドの一部は、拡張機能があります.モニタ拡張.コマンド(command)arptablesコマンドパラメータは、-tパラメータで定義されたテーブルの実行動作を指定します.-tパラメータでテーブル名を指定していない場合は、コマンドはデフォルトのフィルタに適用されます.-Zコマンドを使用すると、コマンドラインは毎回一つのコマンドしか使用できません.-A、–appndは指定されたチェーンの最後にルールを追加します.-D、–delete指定されたチェーンからルールを削除します.このコマンドには2つの用法があります.1.削除するルールの番号を指定します.文法は、start_です.nr[:end nr]は負の数を使用できます.2.削除規則の詳細を指定します.-I、–insertはシーケンス番号で指定されたチェーンに規則を挿入します.現在の番号がNであれば、-N-N+1を挿入番号として使用します.番号0は最後のルールの後に新規ルールを挿入することを表します.-Aパラメータ.-R,–replaceチェーン置換で指定された規則番号と同じです.指定されたシーケンス番号は、1からNまでの間の数字であってもよい.-P,–policyはチェーンに指定されたターゲットを設定するポリシーであり、ACCEPT,DROPまたはRETURN.-F,–flush指定されたチェーンがなければ、すべてのチェーンはクリアされ、クリアチェーンはチェーンのポリシーを変更しない.すべてのカウンタは、0.Zコマンドを-Lコマンドと組み合わせて使用できます.-Z,-Lコマンドを同時に使用すると、カウンタの値が先に印刷されます.その後、0.-L,–list出力指定チェーンのルールを設定します.チェーンが指定されていない場合は、すべてのチェーンのルールが出力されます.-N,–new-chainは新しいユーザーチェーンを作成します.ユーザーチェーンの数に制限はありません.しかし、ユーザーチェーンの名前は最大31文字、-X、–delete-chainで指定されたユーザーチェーンを削除します.ユーザーチェーンの中には空が必要です.ユーザーチェーンが指定されていない場合、すべての空のユーザーチェーンは削除されます.-E、レンame-chainで指定チェーンを変更します.ユーザーチェーンの名前を変更してもいいです.–version表示arptablesプログラムのバージョン番号.-h,–help出力文法ヘルプ情報.-j,–jumpターゲットルールのターゲットは、ACCEPT,DROP,CONTINUE,RETURN,ターゲット拡張またはユーザー定義チェーン名.<ルール説明>-s,–soure-inp[!]IPアドレス[/マスク]ソースIPアドレス-d,deintracp![マスク]ソースMACアドレス–destination-mac[!]MACアドレス[/マスク]宛先MACアドレス.-i,–in-interface[!]デバイス名は、受信フレームのインターフェース(INPUTに適用されます.FORDチェーン)–in-ifは、このオプションの別名です.-o,–out-interface[!]デバイス名は、送信フレームのインターフェースに使用します.ハードウェア長(単位バイト)–オプトコード[/マスク]操作コード(2バイト).使用できます.1=要求、2=返信、3=逆解析要求、4=反解析応答、5=ダイナミック逆解析応答、7=ダイナミック逆解析エラー、8=ARP要求、9=ARPuNAK–htype[ハードウェアマスクタイプ]使用可能:1=Ethernet.–proto-typeタイプ[/mark]プロトコルタイプ(2バイト).使用可能:0×800=IPv 4
d)arptables使用例
# arp -a
m1 (192.168.0.1) at 00:E0:4C:FF:D7:31 [ether] on eth0
ARP
ARP arp ,m1 ,ip 192.168.0.1

# arptables -D INPUT -s 192.168.0.1 -j DROP
arp , 192.168.0.1 arp .

# arp -d 192.168.0.1 -i eth0
arp , arp 192.168.0.1 .

# arp -a
m1 (192.168.0.1) at <incomplete> on eth0
arp m1 .

# ping 192.168.0.1
PING m1 (192.168.0.1) 56(84) bytes of data.
From m2 (192.168.0.2) icmp_seq=2 Destination Host Unreachable
From m2 (192.168.0.2) icmp_seq=3 Destination Host Unreachable
From m2 (192.168.0.2) icmp_seq=4 Destination Host Unreachable
m1 MAC , , m1 .

# arptables -D INPUT -s 192.168.0.1 -j DROP
arptables .

# arp -a
m1 (192.168.0.1) at 00:E0:4C:FF:D7:31 [ether] on eth0
arp m1 MAC .

# ping 192.168.0.1
PING m1 (192.168.0.1) 56(84) bytes of data.
64 bytes from m1 (192.168.0.1): icmp_seq=1 ttl=64 time=0.315 ms

2.arpwatch
a)arpwatch概要
arpwatchは、ネットワーク内のARPパケットをモニターして記録し、同時に傍受した変化をE-mailでシステム管理者に報告します.arpwatchはpcap(3)を使ってローカルのイーサインターフェースのarpパケットを傍受します.
b)arpwatchの取り付け
Turbolinux 10.5と11のバージョンは、すでにarpwatchに統合されています.ソースからインストールすることもできます.
# wget -c ftp://ftp.ee.lbl.gov/arpwatch.tar.gz
# cd arpwatch-2.1a15
# ./configure
# make
# make install
c)アープワース命令の文法
       arpwatch [ -dN ]
[ -f datafile ]
[ -i interface ]
[ -n net[/width ]]
[ -r file ]
[ -s sendmail_path ]
[ -p ]
[ -a ]
[ -m addr ]
[ -u username ]
[ -R seconds ]
[ -Q ]
[ -z ignorenet/ignoremask ]
-dタグを使用してデバッグモードを有効にします.-fタグを使用して使用するデータベース名を設定します.デフォルトでは、arp.dat.-iを指定してネットワークインターフェースを指定します.-nはローカルネットワークを説明します.-rは、tcpdumpまたはpcaptureによって情報ファイルを生成することを指定します.
   .//
-s sendmailプログラムを指定するためのパス.-p指定禁止「ミックスモード」.ネットワークインターフェースが「ミックスモード」ではない場合はARP放送も通過できます.-aデフォルトの場合は、arpwatchはデフォルトネットワークインターフェース上に、最初のIPアドレスサブネットワークのarp情報のみ記録します.-aパラメータを使用すると、ネットワークインターフェース上のすべてのIPアドレスサブネットワークのarp情報を記録します.-mは変更情報を受信するための一つを指定します.のメールアドレス
d)arpwatch使用例
# arpwatch -i eth0 -s [email protected]
eth0 , arp , root .