iwd

提供: ArchWiki
移動先: 案内検索

関連記事

IWD (iNet wireless daemon) は Intel によって書かれた Linux 用の無線デーモンで、WPA supplicant を置き換えることを目指しています [1]。IWD はスタンドアロンでも動作しますが ConnManNetworkManager と組み合わせて使うこともできます。

IWD には ELL という名前の独自の暗号ライブラリが付属しており、Linux カーネルの暗号機能と直接繋がるなど様々な改良がされています。IWD はシンプルかつセキュアで新しいアプローチを取っています。

インストール

iwd パッケージをインストールしてください。

使用方法

iwd パッケージにはクライアントプログラムの iwctl とデーモンの iwd、そして Wi-Fi 監視ツールの iwmon が含まれています。

iwd デーモンを実行したら (iwd.service起動有効化)、iwctl コマンドを使って制御することができます。

iwctl

iwctl を実行するインタラクティブプロンプトが表示されます。iwctl プロンプトでは [iwd]# が前に付きます。実行したいコマンドを入力してください。

ヒント: iwctl プロンプトでは Tab を押すことでコマンドやデバイス名を自動補完することが可能です。

利用可能なコマンドを表示:

[iwd]# help

全ての wifi デバイスを一覧表示:

[iwd]# device list

ネットワークをスキャン:

[iwd]# device interface scan

ネットワークを一覧表示:

[iwd]# device interface get-networks

WPA2 で保護されたネットワークに接続 (パスフレーズの入力が求められます):

[iwd]# device interface connect network_name
ノート: iwd はネットワークのパスフレーズを /var/lib/iwd ディレクトリに (暗号化された PreSharedKey として) 自動的に保存し、今後は保存されているパスフレーズを使って自動で接続します。

WiFi デバイスの詳細情報 (MAC アドレス・接続状態・接続ネットワークなど) を表示:

[iwd]# device interface show

既知のネットワークを一覧表示:

[iwd]# known-networks list

既知のネットワークの情報を消去:

[iwd]# known-networks forget network_name

WPA Enterprise

EAP-PWD

EAP-PWD で保護されたエンタープライズアクセスポイントに接続するには /var/lib/iwd フォルダに以下の内容で essid.8021x という名前のファイルを作成する必要があります:

/var/lib/iwd/essid.8021x
[Security]
EAP-Method=PWD
EAP-Identity=your_enterprise_email
EAP-PWD-Password=your_password

[Settings]
Autoconnect=True

アクセスポイントに自動接続したくない場合、Autoconnect オプションを False に設定して iwctl で手動でアクセスポイントに接続してください。パスワードを平文で保存したくない場合は、ファイルからパスワードの設定を外してください。

任意設定

メインの設定は /etc/iwd/main.conf ファイルで行います。

ネットワーク (SSID) の設定は /var/lib/iwd ディレクトリを使用します。

特定のネットワークで自動接続を無効化

/var/lib/iwd/network.type ファイルを作成・編集してください (network はネットワークの SSID に、type は "open", "wep", "psk", "8021x" のどれかのネットワークタイプに置き換えてください)。そしてファイルに以下のセクションを追加してください:

/var/lib/iwd/spaceship.psk
[Settings]
Autoconnect=false

コンソール (ローカル) ユーザーが設定を変えられないようにする

デフォルトでは iwd の D-Bus インターフェイスは (たとえユーザーが "root" でなくても) 誰でも iwd デーモンに接続して設定を変更できるようになっています。

コンソールユーザーが設定を編集できないようにしたい場合、以下のように D-Bus 設定ファイルを作成してください:

/etc/dbus-1/system.d/iwd-strict.conf
<!-- prevent local users from changing iwd settings, but allow
     reading status information. overrides some part of
     /usr/share/dbus-1/system.d/iwd-dbus.conf. -->

<!-- This configuration file specifies the required security policies
     for iNet Wireless Daemon to work. -->

<!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
 "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
<busconfig>

  <policy at_console="true">
    <deny send_destination="net.connman.iwd"/>
    <allow send_destination="net.connman.iwd" send_interface="org.freedesktop.DBus.Properties" send_member="GetAll" />
    <allow send_destination="net.connman.iwd" send_interface="org.freedesktop.DBus.Properties" send_member="Get" />
    <allow send_destination="net.connman.iwd" send_interface="org.freedesktop.DBus.ObjectManager" send_member="GetManagedObjects" />
    <allow send_destination="net.connman.iwd" send_interface="net.connman.iwd.Device" send_member="RegisterSignalLevelAgent" />
    <allow send_destination="net.connman.iwd" send_interface="net.connman.iwd.Device" send_member="UnregisterSignalLevelAgent" />
  </policy>

</busconfig>
ヒント: <allow> 行を削除するとネットワークの状態を読み出すこともできなくなります。

参照