クライアントが要求したMACを受け取りますか?

クライアントが要求したMACを受け取りますか?

私は20のRaspberry Pi(クライアント)と1つのサーバーで構成されたネットワークを持っています。クライアント要求のMACを確認したいのですが可能ですか?

また、顧客が知らない(そして目立たない)ものかもしれませんか?

注:私の目的は、顧客が偽/偽造品であることを確認することです。 NB2: VPN オプションが実行中です。しかし、まだMACを確認したいと思います。

答え1

あなたのサーバーはLinuxホストですか?

クライアントホワイトリストがある場合は、iptables特定の入力ポートでのみそのクライアントからの要求を受け入れることができます。 dmesgから悪いクライアントからの要求を記録することもできます。

次のスクリプトは、MACCHECK承認された3つのMACからパケットを受け入れ、ロギングを介して他のパケットを破棄するチェーンを定義します。次に、INPUTチェーン内のすべてのtcp/80またはtcp/443パケットをMACCHECK

iptables -N MACCHECK
iptables -A MACCHECK -m mac --mac-source xx:xx:xx:xx:xx:xx -j ACCEPT
iptables -A MACCHECK -m mac --mac-source yy:yy:yy:yy:yy:yy -j ACCEPT
iptables -A MACCHECK -m mac --mac-source zz:zz:zz:zz:zz:zz -j ACCEPT
iptables -A MACCHECK -m limit --limit 3/hour -j LOG --log-prefix "Bad host: "
iptables -A MACCHECK -j DROP
iptables -A INPUT -p tcp -m tcp --dport 80 -j MACCHECK   # Checking all HTTP requests
iptables -A INPUT -p tcp -m tcp --dport 443 -j MACCHECK  # Checking all HTTPS requests

すべてのクライアントはサーバーと同じネットワーク上になければなりません。

答え2

もしあれば直接Raspberry Piとクライアント間の接続、つまりルーティングなしそしてどちらも同じ部分、これは可能である。たとえば、ARP検証を使用できますarp <client_ip_address>

答え3

クライアントのMACは、クライアントが同じネットワークセグメントにある場合にのみ確認できます(たとえば、間にルータがありません(スイッチも問題ありません))。 Tracerouteを使用すると、これを確認できます。traceroute 192.0.2.1デバイスの1つのアドレスが192.0.2.1のサーバーで実行されている場合は、宛先である単一のホップのみを報告する必要があります。ナシャそして八重洲の答えはこれを行う方法を説明します。

しかし、可能であってもMACは簡単に偽造される可能性があるため、MAC検証は実際にはセキュリティを提供しません。ほとんどのイーサネットデバイスはソフトウェアでMACを設定できます。

ハードウェアデバイスを識別するには、基本的に暗号化という1つの方法があります。保存する秘密鍵秘密鍵を所有していることを証明するために認証操作を実行させます。

明らかにWebアプリケーションを使用しているので、そのためのツールがあります。TLSクライアント証明書。 HTTPSプロトコルを使用し、クライアントが秘密鍵を使用してWebサーバーに認証できるようにします。

ただし、このVPNをどのように使用するかに応じて、同様の機能を提供することも、提供しない場合もあります。

関連情報