ウェブサイト検索

Arpwatch - LinuxでのEthernet活動を監視する


Arpwatchは、ネットワーク上のEthernetトラフィック活動(例えば、IPやMACアドレスの変更)を監視し、Ethernet/IPアドレスのペアリングのデータベースを維持するのに役立つオープンソースのコンピュータソフトウェアプログラムです。

それは、タイムスタンプとともにIPおよびMACアドレス情報のペアリングを通知したログを生成しますので、ネットワーク上でペアリング活動がいつ発生したかを注意深く監視することができます。また、ペアリングが追加または変更された時に、ネットワーク管理者にメールでレポートを送信するオプションもあります。

Arpwatchツールは、ネットワーク管理者が、ARP活動を監視して、ARPスプーフィングや予期しないIP/MACアドレスの変更を検出するために特に便利です。

LinuxにおけるArpwatchのインストール

LinuxディストリビューションにはArpwatchツールがインストールされていません。システムリポジトリからデフォルトのパッケージマネージャーを使用してインストールする必要があります。

$ sudo apt install arpwatch             [On Debian, Ubuntu and Mint]
sudo yum install arpwatch             [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a net-analyzer/arpwatch  [On Gentoo Linux]
sudo apk add arpwatch                 [On Alpine Linux]
sudo pacman -S arpwatch               [On Arch Linux]
sudo zypper install arpwatch          [On OpenSUSE]    

インストール後、最も重要なarpwatchファイルを表示できます。ファイルの場所は、オペレーティングシステムによって若干異なります。

  • /usr/lib/systemd/system/arpwatch – デーモンの起動または停止のためのarpwatchサービス。
  • /etc/sysconfig/arpwatch – これは主な arpwatch 設定ファイルです。
  • /usr/sbin/arpwatch – ターミナルを介してツールを起動および停止するためのバイナリコマンドです。
  • /var/lib/arpwatch/arp.dat – これはIP/MACアドレスが記録される主要なデータベースファイルです。
  • /var/log/messages – arpwatchがIP/MACの変更や異常な活動を記録するログファイルです。

次に、arpwatch サービスを開始するために以下のコマンドを実行してください。

# systemctl enable arpwatch
systemctl start arpwatch
systemctl status arpwatch

LinuxでArpwatchコマンドを使用する方法

特定のインターフェースを監視するには、以下のコマンドに -i とデバイス名を入力してください。

# arpwatch -i eth0

したがって、新しいMACが接続されるか、特定のIPがネットワーク上でMACアドレスを変更すると、/var/log/syslogまたは/var/log/messageファイルにsyslogエントリが記録されることに気付くでしょう。その場合はtailコマンドを使用して確認できます。

# tail -f /var/log/messages
サンプル出力
Apr 15 12:45:17 tecmint arpwatch: new station 172.16.16.64 d0:67:e5:c:9:67
Apr 15 12:45:19 tecmint arpwatch: new station 172.16.25.86 0:d0:b7:23:72:45
Apr 15 12:45:19 tecmint arpwatch: new station 172.16.25.86 0:d0:b7:23:72:45
Apr 15 12:45:19 tecmint arpwatch: new station 172.16.25.86 0:d0:b7:23:72:45
Apr 15 12:45:19 tecmint arpwatch: new station 172.16.25.86 0:d0:b7:23:72:45

上記の出力は新しい作業場を表示します。変更が加えられた場合は、以下の出力が得られます。

Apr 15 12:45:17 tecmint arpwatch: changed station 172.16.16.64 0:f0:b8:26:82:56 (d0:67:e5:c:9:67)
Apr 15 12:45:19 tecmint arpwatch: changed station 172.16.25.86 0:f0:b8:26:82:56 (0:d0:b7:23:72:45)
Apr 15 12:45:19 tecmint arpwatch: changed station 172.16.25.86 0:f0:b8:26:82:56 (0:d0:b7:23:72:45)
Apr 15 12:45:19 tecmint arpwatch: changed station 172.16.25.86 0:f0:b8:26:82:56 (0:d0:b7:23:72:45)
Apr 15 12:45:19 tecmint arpwatch: changed station 172.16.25.86 0:f0:b8:26:82:56 (0:d0:b7:23:72:45)

次のコマンドを使用して、現在のARPテーブルを確認することもできます。

# arp -a
サンプル出力
linux-console.net (172.16.16.94) at 00:14:5e:67:26:1d [ether] on eth0
? (172.16.25.125) at b8:ac:6f:2e:57:b3 [ether] on eth0

カスタムメールIDにアラートを送信したい場合は、メインの設定ファイル「/etc/sysconfig/arpwatch」を開き、以下のようにメールアドレスを追加してください。

# -u <username> : defines with what user id arpwatch should run
-e <email>    : the <email> where to send the reports
-s <from>     : the <from>-address
OPTIONS="-u arpwatch -e [email  -s 'root (Arpwatch)'"

ここに新しいMACが接続された際のメール報告の例があります。

        hostname: centos
      ip address: 172.16.16.25
       interface: eth0
ethernet address: 00:24:1d:76:e4:1d
 ethernet vendor: GIGA-BYTE TECHNOLOGY CO.,LTD.
       timestamp: Monday, April 15, 2022 15:32:29

これは、IP が MAC アドレスを変更したときのメールレポートの例です。

            hostname: centos
          ip address: 172.16.16.25
           interface: eth0
    ethernet address: 00:56:1d:36:e6:fd
     ethernet vendor: GIGA-BYTE TECHNOLOGY CO.,LTD.
old ethernet address: 00:24:1d:76:e4:1d
           timestamp: Monday, April 15, 2022 15:43:45
  previous timestamp: Monday, April 15, 2022 15:32:29 
               delta: 9 minutes

上記のように、ホスト名、IPアドレス、MACアドレス、ベンダー名、およびタイムスタンプを記録します。

詳細については、ターミナルで'man arpwatch'と入力してarpwatchのマニュアルページを参照してください。

# man arpwatch

関連記事: