インストール
インストールはpkgを利用します。
# pkg install openvpn
easy-rsaも一緒にインストールされます。
access: 181430
VPSを借りましたが、自宅ネットワークからつなげるのが少し不便ですので、VPNでつなぐことにします。
固定IPのVPS側をサーバーとして、自宅ネットから接続するようにします。
インストールはpkgを利用します。
easy-rsaも一緒にインストールされます。
認証に使う証明書などを生成します。
いわゆる認証局です。opensslを直接使って生成するのもいいのですが、管理が楽なeasy-rsaのVer3を使うことにします。
インストールはされていますが、/usr/local/share/配下に配置されているので、/usr/local/etc/openvpn/配下にコピーしておきます。
環境ファイルを編集
varsファイルに以下を追記する
pkiを初期化
認証局を初期化して生成 DHパラメータを生成します
サーバー用秘密鍵および証明書(server.crtとserver.key)をパス無しで生成します。 クライアント用秘密鍵および証明書(.crtと.key)をパス無しで生成します。 /usr/local/etc/openvpn/の設定をします。
/usr/local/etc/openvpn/openvpn.conf に設定を記載します。
client-config-dirは、クライアント名でファイルを置けばそのクライアント個別の設定が書けます。 固定IPアドレスをクライアントに指定する場合は、(4の倍数+1)と(4の倍数+2)で組み合わせてください。(例:10.0.0.81と10.0.0.82)
/usr/local/etc/openvpn/ccd/home@junkie.work
クライアントの設定は比較的簡単な設定を利用します。
サービスの登録
サービスとして起動します
インストール
# pkg install openvpn
設定
# mkdir /usr/local/etc/openvpn
# cp -fr /usr/local/share/easy-rsa/ /usr/local/etc/openvpn/easy-rsa/
# cd /usr/local/etc/openvpn/easy-rsa/
# cp vars.example vars
# vi vars
set_var EASYRSA_CERT_EXPIRE 3650
# easyrsa init-pki
その際「Common Name」を尋ねられるので適宜設定します。
# easyrsa build-ca nopass
# easyrsa gen-dh
serverの部分はその名前で発行されるというだけなので、他と重ならない名前ならOKです
中間攻撃対策のため、「--ns-cert=YES」を指定しておきます。これがないと、クライアントで「ns-cert-type server」と記載した場合に繋げられなくなります。
# easyrsa --ns-cert=YES build-server-full server nopass
「Confirm request details:」と表示されたら「yes」と入力します。
クライアント名は他と重ならない値にしておけば自由に決められますが、今回は ユーザー名@サーバー名 のファイル名にします。
こうしておけば、サーバー/クライアント双方で利用目的が明確になります。
以下のhome@junkie.workがクライアント名です。
# easyrsa build-client-full home@junkie.work nopass
「Confirm request details:」と表示されたら「yes」と入力します。
# cd /usr/local/etc/openvpn/
# ln -s easy-rsa/pki
# vi openvpn.conf
dev tun
port 1194
proto udp
ca pki/ca.crt
cert pki/issued/server.crt
key pki/private/server.key
dh pki/dh.pem
server 10.0.129.0 255.255.255.0
route 10.0.0.0 255.255.0.0
push "route 10.0.129.0 255.255.255.0"
client-config-dir ccd
keepalive 10 120
comp-lzo
user nobody
group nobody
persist-key
persist-tun
status openvpn-status.log
log-append /var/log/openvpn.log
verb 1
IPアドレスを固定したい場合などに利用します。
ifconfig-push 10.0.129.101 10.0.129.102
iroute 10.0.0.0 255.255.0.0
# sysrc openvpn_enable="YES"
# sysrc openvpn_if="tun"
起動
# service openvpn start