作成日 :
最終更新日: 2026-01-10 Sat 11:19
ホーム | 文書トップ | 目次

DD-WRT OpenVPN の設定

Table of Contents

用意するもの

OpenVPN 認証局の設置 の手順に従って生成した、下記ファイルが必要。

  • ca.crt
  • server_サーバ名.crt
  • server_サーバ名.key
  • dh2048.pem

DD-WRTのWeb管理画面からの設定方法

Services -> VPN

OpenVPN Server/Daemon

図のように設定する。

  • Public Server Cert
    • server_サーバ名.crt より、–—BEGIN CERTIFICATE–— から –—END CERTIFICATE–— までの部分を張り付ける
  • CA Cert
    • ca.crt より、–—BEGIN CERTIFICATE–— から –—END CERTIFICATE–— までの部分を張り付ける
  • Private Server Key
    • server_サーバ名.key より、 –—BEGIN PRIVATE KEY–— から –—END PRIVATE KEY–— までの部分を張り付ける
  • DH PEM
    • dh2048.pem より、–—BEGIN DH PARAMETERS–— から –—END DH PARAMETERS–— までの部分を張り付ける
  • Additinal Config
    • 下記を記述する
push "route 192.168.1.0 255.255.255.0"
push "dhcp-option DNS 10.8.0.1"
dev tun0
keepalive 10 120

dd_wrt_openvpn02.png

Administration -> Commands

"Commands"のフィールドに下記を入力し、「Save Startup」を押す。

iptables -t nat -A POSTROUTING -o br0 -s 10.8.0.0/255.255.255.0 -j MASQUERADE

dd_wrt_openvpn03.png

DNSの設定

(2025.1.10追記) 長い間、iPhoneからVPNに接続している間、外部のWebページが見られないのは当たり前と思っていたのですが、ふと、これはDNSが機能していないからではないかと思い当たりました。

今回の構成では、DNSは ONU (192.168.1.1) を使用します。OpenVPNの設定では、`push "dhcp-option DNS 10.8.0.1"` と指定していますが、これを DNSMasq にて待ち受けるようにします。

下記の2つの項目の設定を行うことで、外部のWebページが見られるようになりました。

Services -> Services

DNSMasq

DNSMasq を Enable とし、"Local DNS" を Enable にした上で、"Additional DNSMasq Options" にも設定します。

dd_wrt_dnsmasq.png

interface=tun0
listen-address=10.8.0.1
bind-interfaces

no-resolv
server=192.168.1.1

Setup -> Basic Setup

Network Setup

"Network Address Server Settings (DHCP)" のところで、"Use DNSMasq for DNS" がチェックされていることを確認します。

dd_wrt_dnsmasq_on_network_setting.png

DNSサーバーが想定通りに選択されているかの確認

https://www.dnsleaktest.com/ の Standard test を実施します。

iPhoneでセルラー+VPN経由で、Public IP がISPのIPアドレスになっており、かつ、DNSサーバーが ISP のもの(Nuroであれば、So-net)になっていることを確認します。

状況確認

Status -> OpenVPN

dd_wrt_openvpn04.png

設定の解説

push "route 192.168.1.0 255.255.255.0"
クライアントにサーバー側の LAN を通知しアクセスを可能にする指定

参考

ホーム | 文書トップ | 目次
Created by Emacs 30.1 (Org mode 9.7.11)