2017-06-23

WHR-300HP2 の dd-wrt化と OpenVPN サーバー化

dd-wrt のサイトから v24-sp2 (01/10/14) std - build 23320 (firmware-jp.bin) をダウンロードしておく。

少しバージョンは古いが、安定しているバージョンです。



WHR-300HP2 は初期化して、PC と LAN 直結し、PC のアドレスを 192.168.11.1 に設定、Web管理画面を開いてファームウェアの更新を行う。


ID/PW は、"admin" / "password"


ファームウェアの更新が完了すると WHR-300HP2 は自動起動されるので、PC のアドレスを 192.168.1.2 として、192.168.1.1 のWeb画面を開く。

各設定項目のうち、変更設定しないものは割愛しています。


最初に、ID/PW(admin/abcdefgh:任意)を設定し、次に日本語化する。

[Administraion → Mangement]
  We Access
   Protocol : HTTP[✔] HTTPS[✔]
   Enable Info Site : Enable[✔]
   Info Site Password Protection : [  ]
   Info Site MAC Masking : Disable[✔]
  Routing
   Routing : Disable
   Language Selection
   Language : Japanese

【Apply Settings】をクリック


次に、ブリッジ化(ルーターモード無効化) と無線 LAN の無効化、その他の設定を行う。


[基本 → 基本]
  WAN Connection Type : Static IP --> ブリッジ接続
   WAN IP Address : 192.168.xxx.bbb(OpenVPN アドレス+1 にでも設定)
   サブネットマスク : 255.255.255.0
   ゲートウェイ : 192.168.xxx.zzz(V6プラスルーターの LAN側アドレス)
   Static DNS 1 : 8.8.8.8
  Router IP
   Local IP Address : 192.168.xxx.aaa(OpenVPN アドレス)
   サブネットマスク : 255.255.255.0
   ゲートウェイ : 192.168.xxx.zzz(V6プラスルーターの LAN側アドレス)
   LAN側DNS : 8.8.8.8
  Network Address Server Settings(DHCP)
   DHCP Type : DHCP Server
   DHCP Server : 無効
  Time Settings
   NTP Client : 有効
   Time Zone : UTC+09:00
   Summer Time (DST) : none
   Server IP/Name : ntp.jst.mfeed.ad.jp
【設定】をクリック


[基本 → DDNS]
  DDNS
   DDNS サービス名:No-IP.com(No-IP の場合)
   ユーザー名: 12345678 (No-IP の場合、No−IP 登録時のユーザー名)
   パスワード:abcdefgh (No-IP の場合、No−IP 登録時のパスワード)
   ホスト名: ijklmnpo.ddns.net(No-IP の場合、No−IP に登録したホスト名)
   IPが変更されても更新しない: [✔いいえ]
  オプション
   自動更新間隔: (毎日)
【設定】をクリック(次項の動作ステータスが反映されるまで少し時間がかかる)
  DDNS動作ステータス:
   Fri May 11 10:39:50 2018: I:INADYN: IP address for alias 'ijklmnop.ddns.net'
    needs update to 'WAN のグローバルIPアドレス'
   Fri May 11 10:39:50 2018: I:INADYN: Alias '
ijklmnop.ddns.net' to IP
    'WAN のグローバルIPアドレス' updated successfully.


PC の LAN 設定を192.168.xxx.ccc として、192.168.xxx.aaa をWebで開き直す。


[基本 → 経路] 変更なし


[無線LAN → 基本]
  物理インターフェースra0-SSID [] …
   Wireless Mode : AP
   Wireless Network Mode : 無効 --> WLAN無効化の場合
   Wireless Network Name (SSID) : 無効化の場合空欄でよい)
   Wilreless SSID Broadcast : 無効
   Network Configration : Bridged
【設定】をクリック


[無線LAN → 無線LANセキュリティ]
  WLAN 無効の場合、変更なし

[無線LAN → 詳細]
  Advanced Settings
   TX Power : 10(国内は電波法上、最大10)
【設定】をクリック


[ネットワーク → サーバー/サービス]
  DNSMasq
   DNSMasq : 有効
   Local DNS : 有効
   No DNS Rebind : 無効
   Additional DNSMasq Option : 以下の2行を記入
    interface=tun0
    no-dhcp-interface=tun0
  Secure Shell
   SSHd : 有効
   SSH TCP Forwarding : 有効
   Password Login : 有効
   ポート : 22
   (50922などに変更時は、ssh root@192.168.xxx.yyy -p 50922 となる)
  Telnet
   Telnet : 無効
【設定】をクリック


[ネットワーク → PPTPサーバー/クライアント]
  OpenVPN Server/Deamon
   OpenVPN : 有効
   Start Type : System
   Config as : Server[x]
   Server Mode : Router(TUN)
   Network : 10.8.0.0(VPN ネットワークの IP アドレス空間)
   Netmask : 255.255.255.0(VPN ネットワークのネットマスク)
   ポート : 1194 (デフォルトは 1194 : 任意のポート番号)
   Tunnel Protocol : TCP
   Encryption Cipher : AES-256 CBC(暗号化方式)
   Hash Algorithm : SHA1(ハッシュのアルゴリズム)
   Advanced Option : 有効
   TLS Cipher : None(TLS の暗号化はしない)
   LZO Compression : Yes(データの圧縮を LZO で行う)
   Redirect default Gateway : 無効(Additional Config で有効化するので)
   Allow Client to Client : 無効(VPN クライアント同士の通信の不許可)
   Allow duplicate cn : 無効(複数のVPN クライアントが同じ証明書等使用を不許可)
   Tunnel MTU setting : 1500
   Tunnel UDP Fragment : 空欄
   Tunnel UDP MSS-Fix : 無効
--------------------
 ※ 留意事項
  VPN クライアント側でフラグメンテーションがエラー検出される場合があり、
  サイズを 1390 にしてもなお発生することがあります。
  プロトコルが tcp の場合はいい、という報告もあります。
  エラー頻度は減るはずですし、発生しても多少応答が遅い場合がある程度なので
  無視しても構いません。
--------------------
   次に、認証用の ca.crt   server.crt  server.key  dh2048.pem  ta.key
   の中身をそれぞれ、
    "CA Cert"  "Public Server Cert"  "Public Server Key"  "DH PEM" 
    "TLS Auth Key"
   の各項にコピペする。
   これらは LINUX 上で OpenVPN を構築し作成したときのものを使う。

 ※ OpenVPN構築の仕方は別途ブログに記述しています。

 その後、[設定] でこれらを反映させて、 /tmp/openvpn 配下にこれらのファイルが
 作られるのを確認する。

 確認は、PC のターミナルから ssh root@192.168.xxx.yyy で入り、
 ls /tmp/openvpn で確認します。


   Additioan Config : 以下のテキストを入力する。
    push "route 10.8.0.0 255.255.255.0"(クライアントにアドレスを通知)
    push "redirect-gateway def1"(すべての通信を VPN 経由とする)
    push "dhcp-option DNS 10.8.0.1"(ローカル DNS を通知)
    push "dhcp-option DNS 8.8.8.8"(同上/公的 DNS も通知)
    dev tun0

【設定】をクリックして Additional Config を反映させる
  正しく設定されたかどうかを、ターミナルから
   cat /tmp/openvpn/openvpn.conf
  として確認する。


[セキュリティ → Firewall]
  Firewall 保護
   SPI Firewall : 有効
  追加フィルター
   ActiveXをフィルターする : [✔]
  インターネット側からのパケット遮断 : すべてチェック [✔]
  Impede WAN DoS / BruteForce : すべてチェック [✔]
【設定】をクリック


[管理 → コマンド実行]
  以下の内容を入力して、実行し 「Firewall スクリプト として保存」する。
   iptables -I INPUT 1 -p udp --dport 1194 -j ACCEPT
   iptables -I FORWARD 1 -s 10.8.0.0/24 -j ACCEPT
   iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j MASQUERADE

  ファイヤウォールポリシーはデフォルトですべてACCEPTになっているが、
  spi(有効)なのでよしとする。
  dd-wrt ではデフォルトポリシーの変更はできないみたい。



以上で、dd-wrt 化と DDNS の設定、 OpenVPN サーバー化の設定は完了。


[管理 → 管理]

[再起動]をクリックしてすべての設定結果を反映させる。




クライアントから接続テストしVPN接続とSIPクライアントのオンライン、Web閲覧などができることを確認する。




【クライアントの設定:OpenVPN for Android】


1.全体設定

  起動後「設定」タブで全体の設定を行う。

  基本的にはデフォルト設定を使用する。

  「規定のVPN」:プロファイルを登録後、このプロファイルを指定する。

2.基本設定

  最初に上の方にある ○ に ➕ のボタンを押し、プロファイルを新規追加する。


  「プロファイル名」:任意
  「CA証明書」:ca.crt ファイルを指定
  「クライアント証明書」:client.crt ファイルを指定
  「クライアント証明書のキー」:client.key ファイルを指定
  「秘密のパスワード」:パスワードを設定

  これらのファイルは OpenVPN サーバーを別途 Linux などで構築して、その過程で
  作成されたファイルを Google Drive などを通じてスマホに取り込んでおいたもの。

  パスワードは同じく構築時に設定したパスワードを使用する。

  「接続先リスト」
   サーバーアドレス:DDNS で設定の自分の WAN ドメイン名
   ポート番号:標準的には 1194 です(サーバーで設定のポート)
   プロトコル:TCP
   接続タイムアウト:120(デフォルト)

3.IP と DNS

  「接続情報を取得する」:オン
  その他はすべてオフ

4.経路設定

  「IPv4」
   規定の経路に使用する:オン(すべてのトラフィックを VPN 経由とする)
  「IPv6」
   規定の経路に使用する:オフ

5.認証/暗号化
  「TLS サーバー証明書を要求する」:オン
  「TLS 認証を使用する」:オン
  「TLS 認証ファイル」:ta.key ファイルをインポートする
  「TLS Direction」:(1はクライアントの意味)
  「暗号化方式」:AES-256-CBC

6.高度な設定

  「ピア情報を送信する」:オン
  「カスタムオプションを使用する」:オン
   カスタムオプションには、auth-nocache と入力する
  これら以外はすべてデフォルトのまま

7.許可されたアプリ

  「VPN は選択したアプリ以外のすべてのアプリから使用されます」:オン
   アプリリストにはチェックはしない

8.生成された設定

  ここには、接続時に生成された内容が入っているので確認することができます。










0 件のコメント: