問題タブ [wpa-supplicant]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
linux - wpa サプリカントを使用して eap-tls モードで freeradius を設定しようとしています
eap-tls モードで freeraadius をセットアップしようとしています。サーバーとして freeradius を使用し、クライアントとして wpa-supplicant を使用しています。両方のパッケージを Ubuntu-14.04.3 にインストールしました。freeradius パッケージと共に提供されるサンプル証明書を使用しています。/freerad/raddb/certで提供されているスクリプト ブートストラップを使用します。私はこの分野の専門家ではないので、このスクリプトが証明書に適切に署名するかどうかはわかりません。client.conf のこれらの証明書へのパスを freeradius に提供し、構成ファイルを wpa-supplicant に提供するだけです。以下は、私が使用しているwpa-supplicant構成です
wpa-supplicant コマンドにFreeradius -Xコマンドと eapol_test -c eap-tls.conf -s testing123を使用して freeradius を実行しています。
wpa-supplicant 端末で次のエラーが表示されます。
OpenSSL: tls_connection_client_cert - SSL_use_certificate_file (DER) エラー: 0D0680A8: asn1 エンコード ルーチン: ASN1_CHECK_TLEN: 間違ったタグ
OpenSSL: 保留中のエラー: エラー:0D07803A:asn1 エンコード ルーチン:ASN1_ITEM_EX_D2I:ネストされた asn1 エラー
OpenSSL: 保留中のエラー: エラー:140C800D:SSL ルーチン:SSL_use_certificate_file:ASN1 lib
OpenSSL: SSL_use_certificate_file (PEM) --> OK
OpenSSL: tls_connection_private_key - SSL_use_PrivateKey_File (DER) エラー: 0D0680A8: asn1 エンコード ルーチン: ASN1_CHECK_TLEN: 間違ったタグ
OpenSSL: 保留中のエラー: エラー:0D08303A:asn1 エンコード ルーチン:ASN1_TEMPLATE_NOEXP_D2I:ネストされた asn1 エラー
OpenSSL: 保留中のエラー: エラー:0D0680A8:asn1 エンコード ルーチン:ASN1_CHECK_TLEN:間違ったタグ
OpenSSL: 保留中のエラー: エラー:0D07803A:asn1 エンコード ルーチン:ASN1_ITEM_EX_D2I:ネストされた asn1 エラー
OpenSSL: 保留中のエラー: エラー:04093004:rsa ルーチン:OLD_RSA_PRIV_DECODE:RSA lib
OpenSSL: 保留中のエラー: エラー:0D0680A8:asn1 エンコード ルーチン:ASN1_CHECK_TLEN:間違ったタグ
OpenSSL: 保留中のエラー: エラー:0D07803A:asn1 エンコード ルーチン:ASN1_ITEM_EX_D2I:ネストされた asn1 エラー
OpenSSL: 保留中のエラー: エラー:140CB00D:SSL ルーチン:SSL_use_PrivateKey_file:ASN1 lib
OpenSSL: tls_connection_private_key - SSL_use_PrivateKey_File (PEM) 失敗エラー:0907B068:PEM ルーチン:PEM_READ_BIO_PRIVATEKEY:不正なパスワードの読み取り
OpenSSL: 保留中のエラー: エラー:140CB009:SSL ルーチン:SSL_use_PrivateKey_file:PEM lib
OpenSSL: tls_read_pkcs12 - PKCS#12 ファイル エラーの使用に失敗しました:0D0680A8:asn1 エンコード ルーチン:ASN1_CHECK_TLEN:間違ったタグ
OpenSSL: 保留中のエラー: エラー:0D07803A:asn1 エンコード ルーチン:ASN1_ITEM_EX_D2I:ネストされた asn1 エラー
OpenSSL: 秘密鍵の読み込みに失敗しました
TLS: 秘密鍵 '/home/areh/freeradius-server-3.0.11/raddb/certs/client.key' の読み込みに失敗しました
TLS: TLS 接続パラメーターの設定に失敗しました
私は wpa_supplicant-0.7.3 を使用しており、2.5 バージョンでも試しました。freeradius バージョンは freeradius-server-3.0.11 です。手がかりや助けをいただければ幸いです。Wireshark を使用してデバッグしています。アクセス チャレンジ パケットとアクセス リクエスト パケットが交換されているのを確認できますが、次のメッセージ ステージに到達しません。この問題を解決してください。
wifi - Linux で正しい SSID パスワードを確認する方法
ハードウェア デバイスの Web インターフェイスを作成しており、現在ネットワーク構成ウィザードを実行しています。ユーザーに SSID を選択してもらい、セキュリティで保護されている場合はパスワードを入力します。ウィザードをこれ以上進めずに、パスワードが正しいことをその場で確認したい。
wpa_supplicant
詳細をスローしてログ出力を解析するよりも簡単な方法はありますか?
c - wpa_supplicant p2p DBus インターフェイスへのシグナルハンドラーの登録
gdbus
C のライブラリを使用して、p2p 用の wpa_supplicant の dbus インターフェイスから「InvitationReceived」シグナルを受信するように登録しようとすると、問題が発生します。
P2P dbus インターフェイスへのプロキシ接続を作成してメソッドを呼び出すことはできますが、シグナル ハンドラをプロキシに接続しようとすると、シグナルが無効であることを示す次のエラーが表示されます (コードからの関連する出力サンプル):
(プロセス:6764): GLib-GObject-WARNING **: /tmp/buildd/glib2.0-2.42.1/./gobject/gsignal.c:2461: シグナル 'InvitationReceived' は、タイプのインスタンス '0x909ae0' に対して無効です「GDBusProxy」
「InvitationReceived」はwpa_supplicant dbus apiで定義されているシグナルの名前であるため、これは奇妙です。
コードサンプル:
シグナル名に追加する必要がある特別なパスはありますか? または、シグナル ハンドラを登録するために、メソッドの呼び出しに使用するプロキシとは別のプロキシを使用する必要がありますか?
node.js - node.js で wpa_supplicant インターフェイスのリストを取得する
私の最終的な目標は、ワイヤレス接続のセットアップが失敗した理由を教えてくれるモジュールを作成することです。
現在、 node-dbusモジュールを使用して wlan0 インターフェイスにアクセスしようとしています。現状では wpa_supplicant は wlan0 を認識していないことを教えてくれます
「wpa_supplicant はこのインターフェイスについて何も知りません。」
どんな助けや提案も大歓迎です。
コード:
更新 1:
DBus プロパティ API を使用して Interfaces プロパティを調べたところ、プロパティ自体が null であることがわかりました。
私の唯一の結論は、wpa_supplicant が新しいインターフェースを dbus に登録することは決してないということです。
(端末コマンドを使用して wpa_supplicant を使用して wlan0 をセットアップしたことを確認しました)
embedded-linux - wifiが切断されたときにwpa_cliを使用してWiFi切断イベントを取得する方法
私は組み込み Linux システムに取り組んでいます。既存の WiFi が切断されたときに、新しい WiFi に接続する必要があります。一定のスリープ時間でループを使用して、wifi が接続されているかどうかを確認できますが、効率が悪いようです。WiFiが切断されたときにイベントを発生させるデーモンとしてwpa_cliを開始できる方法を誰かが提案できますか?
前もって感謝します。サンディープ。
linux - Linux Kernel 3.3 が接続されたアクセス ポイントで失われたビーコンを登録しない
Linux カーネル 3.3 を使用しており (カーネルをアップグレードできません。申し訳ありません!)、wpa_cli
ユーティリティを使用して WiFi 接続の状態を監視しようとしています。Edimax WiFi ドングルを使用してワイヤレス アクセス ポイントに接続しています。
私は次のようなものを見ることを期待しています:
または同じことですがwpa_state=COMPLETED
、接続ステータスによって異なります。
このテキスト出力を解析すると、ワイヤレス接続がアクティブかスキャン中かを確認できます。wpa_state=COMPLETED
しかし、電源をオフにした後もアクセス ポイントがまだ返されていることに気付きました。次のコマンドを使用します。
スキャンを強制し、wpa_state
正しい場合もありますが、通常 (99%) 正しくありません。
これが私のもの/etc/wpa_supplicant.conf
です:
いくつかの調査の結果、カーネルがキャッシュされたバージョンの AP リストを返すという奇妙なことが起こっていると思われます。RTL8192cu
ドライバーを使用しています。私はすでにこの問題を見てきましたが、それは私のものと同じではありません。
私の考えでは、問題はカーネルのどこかにある可能性があります。ファイルnet/mac80211/scan.c
の function の 214 行目で、APの が表示され(AP に電力が供給されている場合)、( hereieee80211_scan_rx
を介して) 入力されることがわかります。この時点で、スキャン結果で返され、カーネル内のレイヤーが認証され、その AP に接続されます。ただし、AP の電源を切断した後、レイヤーがその保持を放棄することはありません。これにより、スキャンの最後 ( ) のファイルの 205 行目 (ここでは ) で関数内のリンクが決して解除されません
。bssid
BSS
ieee80211_rx_bss_put
wpa_supplicant
MLME
MLME
atomic_t
BSS
BSS
cfg80211_bss_expire
cfg80211_wext_giwscan
net/wireless/scan.c
具体的には、「ホールド」に使用されるアトミックが、AP からの電力除去時にデクリメントされない理由を知りたいです。BSS
これにより、Linux は切断に十分なビーコンを見逃すことになりますか? または、wpa_supplicant を使用していくつかの構成を追加する必要がありますMLME
かBSS
?これは明らかにカーネルのバグですか?
私はすでに試しました:
私の問題は解決していません。
networking - wpa-supplicant での EAP などのセキュリティ プロトコルの実装
現在、wpa_supplicant での EAP などのさまざまなセキュリティ プロトコルの実装を理解しようとしています。しかし、w1.fi から wpa-supplicant-devel.pdf を読み取るという非常に複雑な方法です。
wpa_supplicant の専門家から、効率的な方法で深くドライブする方法を知りたいです。それをよりよく理解するために知っておくべき高度なc概念。
このためのリソース/資料/ウェブサイト/本を提案できます。
また、wpa_supplicant で開始するのが難しいことをよく知っているので、これを説明的な質問として無視しないでください。
前もって感謝します。
c - C を使用して wpa_supplicant を開始する
これは重複した投稿であると人々が結論に飛びつく前に、このトピックに関する他の投稿を調べましたが、実際には解決策が見つからなかったことを指摘したいと思います.
必要なもの
私の目標は、C プログラムから wpa_supplicant にアクセスして、次のことを行うことです。
- アクティブな接続を確認する
- インターフェースがいつダウンしたかを検出する
- AP への接続/AP のセットアップなど
わかったこと
- wpa_supplicant と通信する C プログラムを作成する必要がある場合、DBus は必要ありません。
wpa_ctrl.h
これらのファイルをプロジェクト ディレクトリに含めるだけで、関数を利用できます。- この質問に関連して見つけたいくつかのリンクを次に示します。1、2、3 _ _ _ _
- を使用した外部プログラムについて説明している公式ドキュメントも確認しました
wpa_ctrl.c
上記が実際に問題を解決しない理由
- この問題に関してSOやその他の関連Webサイトで見つけた投稿のほとんどは、公式ドキュメントなどのリソースを指していますが、これは良いが問題を解決していません
- これらの投稿の多くで、人々はこれを追求することをあきらめたか、解決策を考え出しましたが、オンラインに投稿していません.
- このトピックの初心者には、wpa_supplicant の「hello world」という実際の例を投稿していただけると助かります。
これまでに行ったこと
このリンク から、ディレクトリにコピー
/li>wpa_supplicant-2.5/src/common/wpa_ctrl.h
しまし た(多くの依存関係があるため)。次に、以下に示す同じディレクトリに簡単な C プログラムを作成しました。「wpa_ctrl_open」エラーへの未定義の参照が表示されますwpa_supplicant-2.5/src/utils
common.h
hostapd_cli.c
メイクファイル
ビルドログ
これらのファイルをどのように使用して外部プロジェクトに統合するか、またはどのようにコンパイルするかについての資料はあまりなく、私はちょっと無知です。続行する方法についてのヘルプは本当に感謝されます。
編集 1: タイプミスを修正し、ビルド ログを追加しました
events - Linux で wpa_supplicant から netlink イベントをサブスクライブできますか?
Linux の wpa_supplicant が nl80211 を使用している場合、そのマルチキャスト グループの 1 つにサブスクライブして、関連付け、関連付け解除、認証、および認証解除イベントをリッスンできますか?