i_amaiの雑記

お金稼ぎが目的の、クソつまんないブログです

Ubuntu Server 16.04で無線LANに接続する

十数年前の機種で、長らくホコリをかぶっていた、東芝Windows XP 32bitラップトップ。

この度Ubuntu Server 16.04をインストールするために引っ張り出して、まあインストールはなんとかうまくいったのだけど、自宅の無線LANに繋ごうとしたらハマったのでメモ。



基本的には、下記ページのstep 2:以降を参照すればよさげ。

www.linuxbabe.com

無線LANインターフェースの名前を調べる

iwconfig無線LANインターフェース(NICなど)の名前を調べる。Access Point: Not-Associatedとなっているものを使う。

iwconfig

ここではwlan0が見つかったものとして進める。

インターフェースで利用可能なESSIDを調べる

sudo iwlist wlan0 scan | grep ESSID

と打つと、利用可能なネットワークのESSIDが一覧で表示される。

ステルス済みのESSIDはもちろん表示されない。

ここではhoge_ESSIDを利用するとして進める。

なお、ESSIDはネットワークを識別するためのIDであり、APを識別するIDではないことに注意。下記ページ参照。

www.infraexpert.com

wpa_supplicantのインストールと設定の書き込み

認証にwpa2を使用している場合は、wpa2サプリカント(認証クライアント・ソフトウェア)であるwpa_supplicantが必要。

sudo apt-get install wpasupplicant

自分の環境ではプリインストールされていた。

wpa_supplicantwpa_supplicant.confという設定ファイルから接続するネットワークに関する設定を得る。

wpa_passphraseでpskを暗号化して、wpa_supplicant.confファイルを生成し、パイプで渡して書き込む。

wpa_passphrase hoge_ESSID huga_passphrase | sudo tee /etc/wpa_supplicant.conf

ESSIDをステルスしている場合は、生成されたwpa_supplicant.confscan_ssid=1を入力する。

sudo vi /etc/wpa_supplicant.conf

network={
  ssid="hoge_ESSID"
  #psk="fuga_passphrase"
  psk=0123...       # wpa_passphraseによる生成
  scan_ssid=1       # 入力する
  ...
}

なおこの設定では、指定されたESSIDをもとにエリア内にprobe request frameをブロードキャストし、応答のあったAPとその後通信するみたい。

mrncciew.com

よく「ステルスSSIDはセキュリティ上効果はない」と聞くことがあるけど、こういう仕組みがあるからなんだなぁ。

wpa_supplicantで接続を試みる

sudo wpa_supplicant -c /etc/wpa_supplicant.conf -i wlan0 -B

-cは設定ファイルの指定、-iはインターフェースの指定、-Bはバックグラウンドで動かすためのオプション。

ここまでで接続が成功していれば、

iwconfig

wlan0Access Point:に今繋がっているAPのMACアドレスが表示されるはず。

DHCPサーバーからIPアドレスをもらう

上記の状態で、

sudo dhclient wlan0

とすると、IPアドレスを割り当ててもらえる。

ifconfig wlan0

で、inet addr:IPアドレスが入っていれば成功。

あとはping飛ばすなりなんなり。

ブート時に自動接続する方法もあるんだけど、CLIは接続状態がパッと見た目で分からず怖いので、最初は必要な時だけ手動で接続するようにしようかな。

ではこのへんで。