IPをブロックすると、攻撃者は新しいIPを取得するか、プロキシを使用してブロックを回避できます。 MACアドレスで禁止することはできますか?不要なユーザーがサイトへの不要なトラフィックを作成しないように、Webサーバーレベルでブロックしたいと思います。
MACアドレスはHTTPリクエストの一部として送信されますか?
いいえ、MACアドレスはヘッダーで送信されません。難しいですが、チェックすることをお勧めします: https://panopticlick.eff.org/
要するに、答えはnoであり、通常はブロックできませんMACアドレスに基づきます。そしてできれば、それは役に立たないでしょう。理由を理解するには、インターネットの仕組みについて少し知っておく必要があります。
デバイス間の通信は一般に Ethernet protocol(wiki) を介して行われ、送信元と宛先がIPで識別されているにもかかわらず、実際の通信はMACごとに行われます。次のネットワークを想像してください。
クライアントがサーバーにパケットを送信したい場合、最初にサーバーが同じサブネット内にあるかどうかをチェックします。いいえ、サーバーには10.x IPがあり、クライアントには192.168.x IPがあります。クライアントは、それを宛先に転送できることを期待して、ルーターR1に送信します。パケットに含まれるもの:
Source IP: 192.168.1.100 (belongs to: Client)
Destination IP: 10.1.1.1 (belongs to: Server)
Source MAC: 01:01:01:02:02:02 (belongs to: Client)
Destination MAC: 02:01:01:02:02:02 (belongs to: R1)
その場合、R1
は「ああ、そのIPはインターネット上のどこかにある」のようなものです。 (サーバーがパケットを送り返すことができるように)送信元IPをパブリックIPに変更し、R2に転送します。パケットには以下が含まれます。
Source IP: 172.16.1.1 (public IP from R1)
Destination IP: 10.1.1.1 (belongs to: Server)
Source MAC: 02:01:01:02:02:02 (belongs to: R1)
Destination MAC: 03:01:01:02:02:02 (belongs to: R2)
ご覧のように、宛先IPは変更されませんが、転送先のルーターと送信元のルーターに基づいて、(ルーターによって)転送されるたびにMACアドレスが変更されます。
今後は、R2
がNATルーターではないため)R1
が行ったようなIPを改ざんすることはありません(ほとんどの消費者が持っているように)。R2
は単にパケットを転送します。
最終的に、サーバーはR3からのMACアドレスのみを参照できます。通信が機能するためには、R1
からの元のIP以外に知っている必要があるのはそれだけです。 (返信パケットがR1
に戻ってきたら、パケットがクライアントに届くように他のことを確認します。)すべての通信が単にMACベースではない理由を知りたい場合は、 serverfaultに関するこの質問 。
これに対する1つの例外は、クライアントがサーバーと同じLAN内にある場合です。先ほど触れたように、クライアントはまず自身のIPサブネットと宛先を比較します。同じである場合(例:192.168.1.101と192.168.1.44、/ 24サブネットの場合)、通信はMACアドレスに基づいています。クライアントは、サーバーのIPに属するMACを要求するメッセージをLANにブロードキャストし、そのMACに送信します。パケットにはまだ宛先IPが含まれていますが、2つの間にルーターはありません。 (あるかもしれませんが、それはルーターとしてではなく、スイッチまたはハブとして機能します。)しかし、これはおそらくあなたが考えていたシナリオではありません。
MACを特定できた場合、かなり大きなプライバシー違反になります。あなたのMACアドレスは間違いなく世界中であなたを一意に識別するので、広告ネットワークはあなたを追跡するのに問題はなく、またcookieや他の方法を追跡することもありません。
攻撃者をMACでブロックすることは、攻撃者をcookieでブロックすることと同じです。理由はほとんどないので現在はほとんど変更されていませんが、MACで攻撃者を特定してブロックできれば、単純に変更できます。ルーティング可能にするには、IPアドレスをグローバルに認識する必要がありますが、MACにはこの問題はありません。
また、攻撃者は、そのMACアドレスをスプーフィングしてブロックをトリガーすることにより、MACを知っているクライアントをブロックする可能性があります。そのMACアドレスを実際に使用するユーザーは、サービスの使用を禁止されます。
結論:可能であればかなり効果がなく、DoSの脆弱性が発生しますが、クライアントにMACを送信させることができないためHTTPヘッダーか何か、それは同じLANの外では不可能です。
送信元MACアドレス(レイヤー2)は、パケットを転送する 最後のルーター のみを表示します。
この質問の意味がわかりません-WebサーバーでのHTTPリクエストのブロックWifiポイントへのアクセスをフィルタリングしますか?ファイアウォールとルーティング?
ただし、MACアドレスに基づいてブロックできるかどうかに関係なく、より適切な質問は、ブロックするべきかです。
そして簡単な答えはいいえです。
簡単に言うと、MACアドレスは簡単に変更またはスプーフィングでき、エンドユーザーが完全に制御できます(そうです、ほぼ完全に)。したがって、それに基づいて任意のタイプのコントロールを実装しようとしても意味がありません。