EdgeRouter XをOpenVPNサーバーにする

EdgeRouterXを入手しました。
VPNを設定します。
L2TP/IPsecでもいいんですが、他のプラットフォームでも使ってるのでOpenVPNにしたい。

ubntにサイトにはsite-to-siteとかER-X同士のserver-clientしか書いてなかったが、
考えてみればserver-clientのclient側は他の端末でも良いはず。

…と作業して1回目は「繋がるのに通信できない」状態で諦め。
改めて作業したらあっさりつながった。

ER-Xはeth0からPPPoEでWANへ。
eth1~eth4は内部的にswitch0に接続、switch0はproxyarpをonに。

LANは192.168.64.0/24、OpenVPN側を192.168.65.0/24にする内容で


# sshでER-Xにログイン
sudo su
cd /usr/lib/ssl/misc
# CA作成
./CA.sh -newca

# server用の鍵作成
./CA.sh -newreq
./CA.sh -sign

cp demoCA/cacert.pem demoCA/private/cakey.pem /config/auth/
mv newcert.pem /config/auth/server.pem
mv newkey.pem /config/auth/server.key
openssl rsa -in /config/auth/server.key -out /config/auth/server-nopass.key

openssl dhparam -out /config/auth/dhp.pem -2 1024

# client用の鍵作成。hostnameがserverや他のclientとかぶらないようにする
./CA.sh -newreq
./CA.sh -sign
mv newcert.pem client1.pem
mv newkey.pem client1.key
openssl rsa -in client1.key -out client1-nopass.key
# ↑クライアント2つ目以降はここを繰り返し

# clientに client1(-nopass).key,client1.pem,cacert.pem をコピー

# EdgeRouterXの設定
—-
configure

edit interfaces openvpn vtun0
set mode server
set server subnet 192.168.65.0/24
set tls ca-cert-file /config/auth/cacert.pem
set tls cert-file /config/auth/server.pem
set tls key-file /config/auth/server-nopass.key
set tls dh-file /config/auth/dhp.pem

# ルーティング情報のpush
set server push-route 192.168.64.0/24

# 下記は無くても繋がるけどいつも入れてる
## openvpn-optionをダブルクオートで囲んだり
## –comp-lzoみたいにハイフン付けたりするのは何か違いがあるのか?(調べなきゃ)
set openvpn-option comp-lzo
set openvpn-option persist-key
set openvpn-option persist-tun
# LAN側のDNSをpushする
# LAN側で別のローカルDNSがある環境なのでそれを指定(2019-01-09追記)
set server name-server 192.168.64.2
set openvpn-option “dhcp-option DNS 192.168.64.2”
set openvpn-option “dhcp-option DOMAIN localdomain”

# OpenVPN向けのFirewall設定
top

edit firewall name WAN_LOCAL rule 1
set description OpenVPN
set action accept
set destination port 1194
set log disable
set protocol udp

# 保存
commit
save
exit
—-


# clientにovpnファイルを作る
----
client
dev tun
proto udp
remote erx.example.com 1194
resolv-retry infinite
nobind
persist-key
persist-tun
verb 3
ca cacert.pem
cert client1.pem
key client1-nopass.key
----

これでとりあえず繋がった。
ta.keyとかtls-cipherの設定を追加してより強固にしたいが、また後日。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください