LoginSignup
11
11

More than 5 years have passed since last update.

RaspberryPiをPPPoE対応Wifiルーターにする

Last updated at Posted at 2015-12-02

先日家のWifiルーターが壊れました。新しいWifiルーターが届くまでの間なんとかしたいと思い、急遽RaspberyPiをWifiルーターに仕立てあげることにしました。
セキュリティ対策が不十分な可能性がありますので、ご注意ください。

使用機器

  • Raspberry Pi 1 Model B
    • OS : Raspbian
  • 無線アダプタ(WLI-UC-GNM)

接続構成

インターネット <-> VDSLBー100E <-> Wifiルーター <-> 各機器

  • インターネット接続のためにPPPoEが必要
  • Wifiルーターのローカル側IPアドレスは192.168.11.1
  • 配下の各機器は192.168.11.xx

手順

以下piユーザーでログインして実施
流れは以下の通り
- ログインパスワードを変更
- PPPoE設定
- Wifi側の固定IP設定
- hostapd設定
- DHCPサーバ設定
- ルーティング設定

ログインパスワード変更

piのパスワードを変更しておく

$ passwd

PPPoE設定

必要なパッケージをインストール

$ sudo apt-get update
$ sudo apt-get install pppoe pppoeconf

以下を実行し、PPPoEの設定

$ sudo pppoeconf

接続IDとパスワード以外は全てdefalutを選択した

固定IP

/etc/network/interfacesを編集
wlan0に固定IPを振ります。

allow-hotplug wlan0
iface wlan0 inet static
address 192.168.11.1
netmask 255.255.255.0

しかしOS再起動後、wlan0にIP割当たらない事象が発生
こちらを参考にとりあえず/etc/rc.localの起動スクリプトの末尾のexit 0の手前に、3行追加。

$ sudo vi /etc/rc.local

...
ifconfig wlan0 192.168.11.1 netmask 255.255.255.0 up
/etc/init.d/isc-dhcp-server start
/etc/init.d/hostapd start

exit 0

でも本当はどうするべきか原因を調べたいところ。

hostapd設定

インストールする

$ sudo apt-get install hostapd

/etc/hostapd/hostapd.conf を編集
ssidとwpa_passphraseを適切に修正する

/etc/hostapd/hostapd.conf
interface=wlan0
ssid=myssid
hw_mode=g
channel=3
wpa=2
wpa_passphrase=raspberrypi
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP

/etc/default/hostapdを編集
設定ファイルの場所を指定する

DAEMON_CONF="/etc/hostapd/hostapd.conf"

hostapdを起動、自動起動設定もしておく

$ sudo service hostapd start
$ sudo update-rc.d hostapd enable 

DHCPサーバ

インストールする

$ sudo apt-get install isc-dhcp-server

/etc/dhcp/dhcpd.confに以下を追加

/etc/dhcp/dhcpd.conf
...
subnet 192.168.11.0 netmask 255.255.255.0 {
    range 192.168.11.10 192.168.11.20;
    option broadcast-address 192.168.11.255;
    option routers 192.168.11.1;
    default-lease-time 600;
    max-lease-time 7200;
    option domain-name "local";
    option domain-name-servers 8.8.8.8, 8.8.4.4;
    }

/etc/default/isc-dhcp-serverを編集
インターフェイスを指定

INTERFACES="wlan0"

DHCPサーバを起動、自動起動設定もしておく

$ sudo service isc-dhcp-server start
$ sudo update-rc.d isc-dhcp-server enable

ルーティング

/etc/sysctl.conf の設定
以下の行のコメントを外して有効にします。

/etc/sysctl.conf
net.ipv4.ip_forward=1

今すぐ設定する場合は以下のprocエントリに書き込みます。

$ sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"

iptablesの設定
セキュリティの観点で以下の内容は見直しの必要がありそう。

$ sudo iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
$ sudo iptables -A FORWARD -i ppp0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
$ sudo iptables -A FORWARD -i wlan0 -o ppp0 -j ACCEPT
$ sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"

(最初、ppp0の箇所をeth0としてしまっててうまくいかなかった。)

これをネットワーク設定時に読み込む設定にします。
/etc/network/interface の最後に以下の行を追加

up iptables-restore < /etc/iptables.ipv4.nat

残課題

  • 不安定かも。朝起きたら、無線アダプタが認識しなくなっていた。OS再起動で復旧。
  • 電波が弱い(カバーできる範囲が狭い)
  • セキュリティ対策が十分か未検証

参考にしたサイト

Raspberry Piの無線LANアクセスポイント化 - DesignAssembler
Raspberry PiにPPPoE接続でグローバルIPを割り当てる。 | Hobby Room of Cactus
ネット環境が壊れた?! Raspberry Piルーター化 | あっかぎのページ
Raspberry Pi をWi-Fiアクセスポイント&ルーター化する - 猫ぱーんち!
debian - I always need to ifdown/ifup wlan0 after reboot - Unix & Linux Stack Exchange

11
11
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
11