PCを無線ルーター化(2)(hostapd編)

PCの無線ルータ化 hostapd編の続きです。

前回の内容はコチラから参照できます。

前回、hostapdの動作確認を実施しましたが、

私の場合、残念ながらエラーが発生しました。

その際に実施した対処方法は次の2点になります。

(1)無線機器のソフトブロックの無効化
(2)無線子機の無効化

(1)無線機器のソフトブロックの無効化

まずは、WiFiをOFFの状態にします。
sudo nmcli nm wifi off

次に、無線子機の状態を確認します。
sudo rfkill list
すると、下記のような情報が表示されます。
0: phy0: Wireless LAN
Soft blocked: yes
Hard blocked: no

Soft blocked: yesとなっているので、
このブロックをアンブロックします。
sudo rfkill unblock wifi

また、無線子機の状態を確認してみましょう。
sudo rfkill list
すると、下記のような情報に変更されていればOKです。
0: phy0: Wireless LAN
Soft blocked: no
Hard blocked: no

※Soft blocked: yesは、無線子機が
ディアクティベートされている状態
(再アクティベートできる状態)です。

(2)無線子機の無効化

NetworkManagerで無線子機を管理しないように
設定します。
sudo gedit /etc/NetworkManager/Networkmanager.conf

ファイルが開かれるのの下記の2行を追加して下さい
[Keyfile]
unmanaged-devices=mac:**:**:**:**:**:**
※「*」の部分は、無線子機のMACアドレスを入力して下さい)

PCを再起動させて、hostapdを実行してみます。
sudo hostapd /etc/hostapd/hostapd.conf

下記のようなメッセージが出てきたので、正しく
動作したかと思われます。
Configuration file: /etc/hostapd/hostapd.conf
nl80211:・・・・省略・・・・・
Using interface wlan0 ・・・・省略・・・・・
wlan0: interface state UNINITIALIZED->ENABLED
wlan0: AP-ENABLED

次回は、DHCPサーバーのセットアップです。

PCを無線ルーター化(1)(hostapd編)

PCの無線ルータ化をしようと思います。

OS:ubuntu14.04
無線子機①:BUFFALO WLI-UC-GNM
無線子機②:BUFFALO WLI-UC-G301N
※2種類の無線子機で試してみました。

導入・設定したもの
(1)hostapdの導入
(2)isc-dhcp-serverの導入
(3)ipforwardの設定(ufwから設定)

(1)hostapdの導入

まずは、hostapdのインストールします。
sudo apt-get install hostapd

hostapdの最新版をダウンロードします。
(hostapdのバージョンが古い為です。)
wget http://w1.fi/releases/hostapd-2.4.tar.gz
(ホームページを開いてダウンロードしても構いません)

hostapd‐2.4.tar.gzを回答します。
tar xvf hostapd-2.4.tar.gz
(圧縮ファイルの中身はコンパイル前のデータになるので、
コンパイルをする必要があります)

コンパイルに必要な環境をインストールします。
sudo apt-get libnl-genl-3-dev libssl-dev

hostapdの最新版をコンパイルします。
cd hostapd-2.4/hostapd
cp defconfig .config
echo CONFIG_LIBNL32=y >> .config
make

コンパイルして作成した実行ファイルを
古い実行ファイルと置き換えます。
sudo mv /usr/sbin/hostapd /usr/sbin/hostapd.org
(古い実行ファイルの名称を変えてバックアップとして
保存しておきます。)
sudo mv hostapd /usr/sbin/

hostapd設定ファイルの内容を変更します。
sudo gedit /etc/hostapd/hostapd.conf
テキストエディタが開かれるので、
例えば下記のように設定します。
interface=wlan0
driver=nl80211
ssid=net
hw_mode=g
channel=11
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=hoge
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
※下記にサンプルファイルも存在します。
/usr/share/doc/hostapd/examples/hostapd.conf.gz
※zcatを使用してサンプルファイルを出力する事も可能です。
sudo zcat /usr/・・省略・・/hostapd.conf.gz > hostapd.conf

ここまでくると、動作確認ができます。
hostapdを実行してみます。
sudo hostapd /etc/hostapd/hostapd.conf
下記のようなメッセージが出てきたら正しく設定できていると
思います。
Configuration file: /etc/hostapd/hostapd.conf
nl80211:・・・・省略・・・・・
Using interface wlan0 ・・・・省略・・・・・
wlan0: interface state UNINITIALIZED->ENABLED
wlan0: AP-ENABLED

残念ながら、私の場合は、この時点で上記のようなメッセージは
表示されませんでした。下記のようなエラーが発生しました。
Configuration file: /etc/hostapd/hostapd.conf
nl80211: Could not configure driver mode
nl80211: deinit ifname=wlan0 disabled_11b_rates=0
nl80211 driver initialization failed.
wlan0: interface state UNINITIALIZED->DISABLED
wlan0: AP-DISABLED
hostapd_free_hapd_data: Interface wlan0 wasn’t started

エラーに対しての対処方法は次回報告します。


WiMAXとPCのセットならGMOとくとくBB>>


Ubuntu ファイアウォール設定

Ubuntu14.04をインストールしたPCの

ファイアウォールの設定です。

Linuxでは、Netfilterというファイアウォールの

仕組みが備えられていて、iptablesで設定を実施します。

ただ、iptablesでの設定は、面倒なので、ufwを

使用しようと思います。

ufwのインストールコマンド

$sudo apt-get install ufw

※Ubuntu14.04では、既にインストール済みであると思われます。

ufwの有効化コマンド

$sudo ufw enable

ufwの無効化コマンド

$sudo ufw enable

ufwの状態確認コマンド

$sudo ufw status

※ポートの開放状態を見る事ができます。

通信の許可

$sudo ufw allow 22

$sudo ufw allow SSH

※allowの後に入力する値としては、サービス名でも

ポート番号でもどちらでも構いません。

通信の拒否

$sudo ufw deny 22

$sudo ufw deny SSH

※denyの後に入力する値としては、サービス名でも

ポート番号でもどちらでも構いません。

とりあえず、ポート番号22(SSH)とポート番号80(HTTP)を

許可しておきました。

ubuntu14.04インストール

Ubuntu14.04インストールを実施。

私の場合は、以前、購入した日経Linuxの付録DVDを

使用して、まずは、Ubuntu13.10をインストール。

その後、ソフトウェアの更新を実施する事で、

Ubuntu14.04にしました。なぜ、わざわさそんな方法を

を選んだのかって?単にDVDにUbuntuをコピーするのが

めんどくさく感じたからです。とくにそれ以上の理由は

ありません(笑)。ソフトウェアの更新は2回目の際に、

Ubuntu14.04のアップデートなります。1回目は、

Ubuntu13.10内ののアップデートとなります。

これから、Ubuntu14.04を使用して、いろいろとやって

みようと思います。

日経Linux(リナックス) 2015年 4月号

新品価格
¥1,540から
(2015/3/30 23:33時点)

2015年3月30日 | カテゴリー : Linux | タグ : , | 投稿者 : net_sec