私のISPは、認証用のユーザー名とパスワードを提供し、認証用にクライアントのMACアドレスも登録します。
使用していないときに誰かが私の接続を悪用するのではないかと心配しています。ユーザー名は簡単に推測でき(クライアントはユーザー名を変更できず、パスワードのみを変更できます)、誰かがMACアドレスとパスワードを見つけた場合、彼らは私の接続を使用できます。
現在、ISPはプライベートVLANを使用していないため、MACアドレスを簡単に取得できます。サブネット内のホストからの単純なARPブロードキャスト要求により、MACが明らかになり、認証ページがHTTPSを使用しないため、パスワードに依存していません。したがって、私のパスワードはプレーンテキストで送信されます。
このシナリオでは、サブネット内のゲートウェイ以外の任意のホストからのARP要求(またはブロードキャスト要求)をブロック/ドロップ/拒否したいと思います。
私はこれを 質問 とこれ 質問 を見ましたが、OPはすべてのARP要求をブロックしようとしました。もちろん、これは悪い考えです。ゲートウェイからインターネットトラフィックを取得できないからです。サブネット内の任意のランダムホストからのARP要求(可能であれば任意のブロードキャスト要求)をブロックしたいだけですが、ゲートウェイからのブロードキャスト/ ARPのみを許可します。
ワイヤレスルーターでOpenWrtを使用しています。したがって、Linuxソリューションは機能すると思います。可能であれば、Windowsソリューションも提供してください。
Linuxデバイスでこの要件を2つの方法で達成しました。私はまだWindowsデバイスでこれを達成する方法を探しています。
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