web-dev-qa-db-ja.com

サブネット内の特定のホストからのARP要求(または可能であればブロードキャストメッセージ)をブロックします

私のISPは、認証用のユーザー名とパスワードを提供し、認証用にクライアントのMACアドレスも登録します。

使用していないときに誰かが私の接続を悪用するのではないかと心配しています。ユーザー名は簡単に推測でき(クライアントはユーザー名を変更できず、パスワードのみを変更できます)、誰かがMACアドレスとパスワードを見つけた場合、彼らは私の接続を使用できます。

現在、ISPはプライベートVLANを使用していないため、MACアドレスを簡単に取得できます。サブネット内のホストからの単純なARPブロードキャスト要求により、MACが明らかになり、認証ページがHTTPSを使用しないため、パスワードに依存していません。したがって、私のパスワードはプレーンテキストで送信されます。

このシナリオでは、サブネット内のゲートウェイ以外の任意のホストからのARP要求(またはブロードキャスト要求)をブロック/ドロップ/拒否したいと思います。

私はこれを 質問 とこれ 質問 を見ましたが、OPはすべてのARP要求をブロックしようとしました。もちろん、これは悪い考えです。ゲートウェイからインターネットトラフィックを取得できないからです。サブネット内の任意のランダムホストからのARP要求(可能であれば任意のブロードキャスト要求)をブロックしたいだけですが、ゲートウェイからのブロードキャスト/ ARPのみを許可します。

ワイヤレスルーターでOpenWrtを使用しています。したがって、Linuxソリューションは機能すると思います。可能であれば、Windowsソリューションも提供してください。

1
Sourav Ghosh

Linuxデバイスでこの要件を2つの方法で達成しました。私はまだWindowsデバイスでこれを達成する方法を探しています。

  1. ゲートウェイの静的ARPエントリを入力してから、ARPを無効にします。
  2. arptableの使用

最初の方法

ip neighbor add 172.xx.xxx.1 lladdr 84:xx:xx:xx:xx:80 nud permanent dev eth0

上記のコマンドには、OpenWrtシステムでip-fullパッケージが必要です。 eth0は私のWANインターフェースです。ゲートウェイのエントリがすでにある場合は、次を使用してください。

ip neighbor replace 172.xx.xxx.1 lladdr 84:xx:xx:xx:xx:80 nud permanent dev eth0

次に、ARPを無効にします。 コマンドのいずれかを使用します

ip link set dev eth0 arp off
ifconfig eth0 -arp

後で再度有効にするには、次を使用します。

ip link set dev eth0 arp on
ifconfig eth0 arp

2番目の方法

これは arptables パッケージを使用しています。まず、ゲートウェイを許可しました。次に、LAN(br-lanインターフェイス)でARPも許可し、最後に他のすべてのARPをブロックしました

arptables -A INPUT -s 172.xx.xxx.1 -j ACCEPT
arptables -A INPUT -i br-lan -j ACCEPT
arptables -P INPUT DROP
1
Sourav Ghosh