Raspberry Piの無線LANアクセスポイント化
こんにちは。
もう何番煎じかもよく分かりませんがとりあえず眠らせてるRaspberry Piを無線LANアクセスポイント化しました。
このページを参考にしました。というか、このページほとんどそのまんまです・・・
How to Set up a Raspberry Pi as a Wireless Access Point
手順
・固定IPアドレスの設定
・DHCPサーバー(isc-dhcp-server)のインストールと設定
・APデーモン(hostapd)のインストールと設定
・wi-fiとイーサネット(wlan0とeth0)のルーティング
こちらの環境は
Mac OS X Yosemite
Raspberry Pi Model B+ (Raspbian)
間でssh接続をしています。
事前にwi-fiドングルを準備しておいてください。
(チップによってAP化できないものもあるみたいですが、以下のものならばできます)
BUFFALO 11n対応 11g/b 無線LAN子機 親機-子機デュアルモード対応モデル WLI-UC-GNM2
- 出版社/メーカー: バッファロー
- 発売日: 2011/07/30
- メディア: Personal Computers
- 購入: 198人 クリック: 5,602回
- この商品を含むブログを見る
これはコンパクトで安いのでオススメです。自分もこれを使っています。
固定IPアドレスの設定
ではターミナルを開いて以下を入力します。
$ sudo vi /etc/network/interfaces
以下の3行をこのようにコメントアウトしてください。
#iface wlan0 inet manual #wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf #iface default inet dhcp
そしてwlan0の設定をしていきます。以下の文を追加してください。
iface wlan0 inet static address 192.168.42.100 netmask 255.255.255.0 #gateway 192.168.0.10 pre-up iptables-restore < /etc/iptables.ipv4.nat
できたファイルの全貌はこんな感じになります。(自分の場合)
auto lo iface lo inet loopback #iface eth0 inet dhcp iface eth0 inet static address 192.168.0.10 netmask 255.255.255.0 gateway 192.168.0.1 iface wlan0 inet static address 192.168.42.100 netmask 255.255.255.0 #gateway 192.168.0.10 pre-up iptables-restore < /etc/iptables.ipv4.nat #この文は下で解説します。 allow-hotplug wlan0 #iface wlan0 inet manual #wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf #iface default inet dhcp
これで固定IPアドレスが設定できました。
DHCPサーバー(isc-dhcp-server)のインストールと設定
※DHCP
DHCPとは? - ネットワークエンジニアを目指して
ではDHCPサーバーのソフトウェアであるisc-dhcp-serverをインストールします。
$ sudo apt-get install isc-dhcp-server
次に設定です。
$ sodo vi /etc/dhcp/dhcpd.conf
まず、12、13行目の
option domain-name "example.org"; option domain-name-servers ns1.example.org, ns2.example.org;
をコメントアウトしてください。次に、21行目の
#authoritative;
の#をとって有効化してください。そしてファイルの一番下に以下を追加してください。
ping-check true; subnet 192.168.42.0 netmask 255.255.255.0 { option routers 192.168.42.100; option broadcast-address 192.168.42.255; option subnet-mask 255.255.255.0; option domain-name "local"; option domain-name-servers 8.8.8.8,8.8.4.4; default-lease-time 600; max-lease-time 7200; range 192.168.42.101 192.168.42.254; }
option routersにはinterfacesで設定したwlan0のIPアドレスを指定してください。
option domain-name-serversはGoogleのDNSを指定してます。
次にdhcpサーバーのデフォルトインターフェースをwlan0に設定します。
$ sudo vi /etc/default/isc-dhcp-server
この中の
#INTERFACES=""
を
INTERFACES="wlan0"
と変更します。
APデーモン(hostapd)のインストールと設定
hostapd(無線LANAP機能を持つソフトウェア)をインストールします。
$ sudo apt-get install hostapd
そして設定ファイルを編集します。確かデフォルトではこの設定ファイルはなかったはずです。
$ sudo vi /etc/hostapd/hostapd.conf
そして以下を追加してください。
interface=wlan0 ssid=home0001 hw_mode=g channel=3 wpa=2 wpa_passphrase=ここでパスワードを設定 wpa_key_mgmt=WPA-PSK rsn_pairwise=CCMP
次に、hostapdにどこにこの設定ファイルがあるか教える記述をします。
※自分はここでハマりました・・・
$ sudo vi /etc/default/hostapd
10行目の
#DAEMON_CONF=""
を
DAEMON_CONF="/etc/hostapd/hostapd.conf"
としてください。
自分はここで最下行のDAEMON_OPTSを編集してしまっていて動きませんでした・・・
wi-fiとイーサネット(wlan0とeth0)のルーティング
IPフォワーディングを有効にします。
$ sudo vi /etc/sysctl.conf
28行目の文をコメントアウトします。
# Uncomment the next line to enable packet forwarding for IPv4 net.ipv4.ip_forward=1
以下のコマンドでアクティベートします。
$ sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
ラズパイをルーターとして使うために以下のコマンドを入力します。
$ sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE $ sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT $ sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT
iptables、つまりfirewallの処理ですね。
そしてルーティングテーブルを/etc/iptables.ipv4.natに保存します。
$ sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"
最後に、初めの方に書いたinterfacesファイルについてです。
pre-up iptables-restore < /etc/iptables.ipv4.nat
この一文でラズパイがブートされた時にルーティングテーブルを復元します。
これで設定が完了です。設定を適用させるために再起動します。
$ sudo reboot
AP化
再起動したらついにAPとして動作させます。
$ sudo ifconfig wlan0 192.168.42.100 netmask 255.255.255.0 up
$ sudo /etc/init.d/isc-dhcp-server start
ここでエラーが出たら設定ファイルを見直してください。
$ sudo hostapd /etc/hostapd/hostapd.conf
起動するとこんな感じになります。
なんかFailed to update rate sets in kernel module とか出てますが動くので気にしません
おーちゃんと見えてる見えてる
インターネット接続もキッチリできます。
感想参照類
hostapdの設定のとこでだいぶ時間食ってしまいました・・・
tcpdump入れてるのでパケット解析の学習がはかどります。
この方はwi-fiドングル2個挿ししてます。interfacesの設定を変えるればできそうです。カッコイイです。RaspberryPi Wifi APを使った無線ルーターの設定 - Qiita
他にも参考にさせてもらいました。ありがとうございます。
Ubuntu を無線 LAN ルータとして稼働させる - Qiita
Raspberry Pi をTorルータにするメモ — (n)
RPi - Raspberry Pi で Tor ルーター ( Onion Pi )を構築する方法
torルーターもいいですね。今度やってみます。
こちらの本も参考にさせてもらいました。
Raspberry Piクックブック (Make:PROJECTS)
- 作者: Simon Monk,水原文
- 出版社/メーカー: オライリージャパン
- 発売日: 2014/08/23
- メディア: 大型本
- この商品を含むブログ (3件) を見る