0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

TP-LINK WR841N による OpenVPN ルータの構築

Last updated at Posted at 2015-12-12

はじめに

ServersMan@VPS 上に OpenVPN サーバを動かして利用している.
便利だけれども,毎回接続処理が面倒で,Chromecast も利用できない.

外接ルータの配下にOpenVPN兼無線ルータを作ればいいのでは?ということでやってみた.

調べたところ,以下の構成が安くて簡単で面白そうだったので,これで行く.

TP-LINK WR841N + OpenWrt + OpenVPN -> Serverman VPS + OpenVPN の環境に
ipod touch と chromecast をつないで Hulu が視聴できる環境を作る.

TP-LINK WR841N は安くて(£13で購入) OpenWrt が利用できるけれど,Flash が 4MB しかないので,OpenVPN はそのままではインストールできない.
メモリは32MBあり,tmpfs 上に展開することはできるので起動スクリプトで毎回インストールするという方法があったので,それを利用してみる.

参考サイト

http://www.vesiluoma.com/development-projects/how-to-install-openwrt-to-tp-link-wr841nd/
https://blog.zauberstuhl.de/openwrt_tplink_openvpn/

  • パス関連が異なる
  • liblzo のインストールが必要
  • kmod-tun のインストールが必要
  • MASQUARADE の設定が必要

TFTP を使ったリカバリー方法

失敗した時はこれで回復できる

Bricked TP-Link WR841N/ND Recovery Unbrick Without A Serial Connection
https://www.youtube.com/watch?v=0k1sxwX5pMk

事前準備

管理画面にログインして Firmware のバージョンを確認する

Support Web から該当の Firmware のイメージをダウンロードする

ファイル転送用に WinSCP をインストール

OpenWrt のサイトからイメージをダウンロード

  • OpenWrt のイメージ
     openwrt-15.05-ar71xx-generic-tl-wr841n-v9-squashfs-factory.bin

OpenWrt のインストール

  • login
  • System Tools - Firmware Upgrade

初期設定

  • telnet で 192.168.1.1 へ接続
  • 'passwd' コマンドでパスワードを設定
  • ssh, user -> root, pass -> xxx

設定

Network 関連他

Hostname: OpenWrt
Timezone: UTC

WAN:  192.168.0.254/24
GW 192.168.0.1
DNS: 8.8.8.8,8.8.4.4

LAN: 192.168.1.1/24

WIFI
 SSID: OpenWrt
 Mode N, Channel Auto, Width 40MHz
 Security: WPA2 PSK(CCMP:AES)

DHCP

firewall の設定で forwarding が reject になっているので,accept にする

OpenVPN 関連

# opkg install kmod-tun
# mkdir /etc/openvpn
  • インストールスクリプトを winscp でコピー
  • openvpn の設定ファイルを /etc/openvpn へコピー
 % /etc/init.d/openwrt-openvpn start
 % /etc/init.d/openwrt-openvpn enable
openwrt-openvpn
# !/bin/sh /etc/rc.common

START=99

. /etc/profile

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/tmp/libopenssl/usr/lib:/tmp/lilzo/usr/lib
export PATH=$PATH:/tmp/openvpn/usr/sbin

install() {  
  local OVPNPATH=/tmp/openvpn
  local OSSLPATH=/tmp/libopenssl
  local LLZOPATH=/tmp/liblzo
  [ ! -d ${OVPNPATH} ] && mkdir ${OVPNPATH}
  [ ! -d ${OSSLPATH} ] && mkdir ${OSSLPATH}
  [ ! -d ${LLZOPATH} ] && mkdir ${LLZOPATH}
  command opkg update || exit 1
  # install openvpn
  cd ${OVPNPATH}
  tar xzf $(opkg download openvpn-openssl |grep Downloaded |cut -d\  -f4 |sed '$s/.$//')
  tar xzf data.tar.gz
  # delete unnecessary things (save space)
  rm -f pkg.tar.gz data.tar.gz control.tar.gz debian-binary getopenvpn.sh
  # install libopenssl
  cd ${OSSLPATH}
  tar xzf $(opkg download libopenssl |grep Downloaded |cut -d\  -f4 |sed '$s/.$//')
  tar xzf data.tar.gz
  # delete unnecessary things (save space)
  rm -f control.tar.gz debian-binary data.tar.gz
  # install liblzo
  cd ${LLZOPATH}
  tar xzf $(opkg download liblzo |grep Downloaded |cut -d\  -f4 |sed '$s/.$//')
  tar xzf data.tar.gz
  # delete unnecessary things (save space)
  rm -f control.tar.gz debian-binary data.tar.gz
}

start () {  
  # lvl 99 is not enough the script is too
  sleep 10 # fast for the install step
  install # setup openvpn and libssl
  command openvpn --writepid /tmp/openvpn/ovpn.pid --daemon --config /etc/openvpn/client.conf

  sleep 30 

  iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o tun0 -j MASQUERADE
}

stop() {  
  PIDOF=$(ps |egrep openvpn |egrep  -v grep |awk '{print $1}')
  kill ${PIDOF}
}
0
0
0

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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?