物好き者

物好き者が行ったことを載せています。

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

PageTop

dd-wrtでOpenVPN証明書サーバーが設定できました

OpenWRT10.03でのOpenVPN証明書サーバーが設定できましたので、その設定ファイルを参考に、dd-wrtVPN版のOpenVPNサーバーを設定してみました。

ネットワーク>PPTPサーバ/クライアントを開き、OpenVPN Daemonを有効にします。
次の項目に、それぞれ証明書などの-----BEGIN RSA PRIVATE KEY----- から -----END RSA PRIVATE KEY----- を貼り付けます。
公開サーバ証明書:ca.crt
公開クライアント証明書:cert.pem
Private Client Key:key.pem
DH PEM:dh.pem

OpenVPN Config:openvpn.confには、下記内容を貼り付けました。
dev tun
proto udp
resolv-retry infinite
persist-key
persist-tun
tun-mtu 1500
tun-mtu-extra 32
mssfix 1450
ca /tmp/openvpn/ca.crt
cert /tmp/openvpn/cert.pem
key /tmp/openvpn/key.pem
dh /tmp/openvpn/dh.pem
comp-lzo
server 10.8.0.0 255.255.255.0

この状態で下記のコマンドを実行することで、OpenVPNサーバーが起動しました。
/usr/sbin/openvpn --config /tmp/openvpn/openvpn.conf &

WindowsのOpenVPNクライアントで接続したところ、接続は出来てIPも受け取ったのですが、通信が出来ませんでした。
/tmp/openvpn/route-up.shを実行することで、iptableにtun0デバイスの通信許可の設定が追加され、双方向で通信ができるようになりました。

route-up.shの内容は、次のとおりです。
startservice set_routes
iptables -I INPUT -i tun0 -j ACCEPT

route-down.shの内容は、次のとおりです。
iptables -D INPUT -i tun0 -j ACCEPT

iptableに追加された状態は、次のとおりです。
17 1332 ACCEPT 0 -- tun0 any anywhere anywhere


ルーターを再起動すると、次のプロセスが上がってOpenVPNサーバー動作し、クライアントからも接続が出来ます。また、iptableの変更もされており、双方向で通信が行えます。
openvpn --config /tmp/openvpn/openvpn.conf --route-up /tmp/openvpn/route-up.sh


細かい設定に関してはOpenWRT版同様必要ですが、dd-wrtでもOpenVPNを簡単に動かすことが出来ました。

問題は、dd-wrtのVPN版ではjffsが使えないことです。これさえ使えれば、すぐにでも乗り換えるので、サポートしなくなったのが残念です。

mega版もありますが、以前WZR2-G108にインストールしたときは、jffsの空き容量がほとんど無かったため、あまり意味が無い状態でした。フラッシュが8Mとはいえ、ファーム容量が7.1Mのためです。

OpenVPNのパッケージをmini版にインストールして、コマンドで起動するようにすることを考えていきます。

スポンサーサイト

PageTop

コメント


管理者にだけ表示を許可する
 

管理人のみ閲覧できます

このコメントは管理人のみ閲覧できます

| | 2012年08月13日(Mon)07:44 [EDIT]


Re: DD-WRTでVPN参考にさせてもらっています

OpenVPNを行おうとしている方から、次のエラーが出て動かないとのコメントをいただきました。

Options error: --server directive network/netmask combination is invalid

Googleで検索すると、IPアドレスのnetwork/netmask設定の組み合わせがおかしいとのことです。

server 10.8.0.0 255.255.255.0 の設定を、空白なども含めチェックしてみてください。見えている空白は各1文字です。
また念のため、このIPアドレスをdd-wrtで割り当てしていないかもチェックしてみてください。


ちなみに、この語もいろいろ設定を変更しており、現在は下記のようになっていますが、ta.keyなどの生成も必要となっています。
動かしているのは、DD-WRT v24-sp2 (12/07/11) std - build 17967 です。

dev tun
proto udp
resolv-retry infinite
persist-key
persist-tun
tun-mtu 1358
ca /tmp/openvpn/ca.crt
cert /tmp/openvpn/cert.pem
key /tmp/openvpn/key.pem
dh /tmp/openvpn/dh.pem
comp-lzo
server 10.8.0.0 255.255.255.0
keepalive 10 120
cipher AES-256-CBC
tls-auth /tmp/openvpn/ta.key 0
log /tmp/openvpn/openvpn.log
status /tmp/openvpn/openvpn-status.log
management localhost 5002
duplicate-cn
script-security 2
client-config-dir /tmp/openvpn/ccd

物好き者 | URL | 2012年08月13日(Mon)08:28 [EDIT]


管理人のみ閲覧できます

このコメントは管理人のみ閲覧できます

| | 2012年08月14日(Tue)08:28 [EDIT]


Re: Re: DD-WRTでVPN参考にさせてもらっています

> >server 10.8.0.0 255.255.255.0
> この設定ですが、環境によって値を変える必要はないのでしょうか?
> パラメータの設定をよく理解できていなくて、、、
> ここで言っている「Server」は何を指しているのでしょうか?
> 私は、DD-WRT機器のIPだと思って設定したらNGで、上記のように10.8.0.0にすると
> >Initialization Sequence Completed
>
> と表示されました。
dd-wrtのIPとは別に、OpenVPNサーバーと接続したクライアントに割り当てるIPアドレスですので、dd-wrtと同じだと問題が発生します。

また、クライアント側で利用しているIPアドレスの場合も問題が発生しますので、それらで使われていないものを設定します。

> と、、、、、
> ここで質問するのもおかしいと思うのですが、
> 出張先PC ⇔ DD-WRT化されたルータ ⇔ 自宅PC
> この考え方自体間違っているのでしょうか?
> 出張先から、DD-WRT化されたルータにVPN接続すると
> 自宅PCが見える。。。。というわけではないのかな?

そのように使えるようになりますが、実際にはNATやFirewall設定なども影響しますので、それらの調整も必要です。

物好き者 | URL | 2012年08月14日(Tue)18:39 [EDIT]


Re: Re: DD-WRTでVPN参考にさせてもらっています

先のコメントで記載した設定ですが、ルーティング設定を別に行っているため、含まれていませんでした。
下記のようにルーティング設定を入れてください。

LAN側のみOpenVPN経由でdd-wrtのLAN側に流す(例:LAN側のIPが10.0.1.0/24の場合)
push "route 10.0.1.0 255.255.255.0"

全てOpenVPN経由でdd-wrtに処理させる
push "redirect-gateway def1"

OpenVPNのHOW TO和訳があるので、一度目を通すとよいと思います。
http://freescitech.net/2/ovpn2_howto_ja.html

物好き者 | URL | 2012年08月14日(Tue)21:22 [EDIT]


承認待ちコメント

このコメントは管理者の承認待ちです

| | 2014年07月09日(Wed)05:05 [EDIT]


承認待ちコメント

このコメントは管理者の承認待ちです

| | 2014年07月25日(Fri)04:10 [EDIT]


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。