UbuntuServerを使ってOpenVPNサーバーを構築していきます。
openvpnを使ってVPSと自宅のpfsenseにつないでみる(その1)ではCentOSでOpenVPNサーバーを構築していきましたが、UbuntuServerでは少し構築方法が違うのでここで紹介していきます。
OpenVPNサーバーの構築をしていく
1.関連するパッケージをインストールしていく
apt install openvpn easy-rsa
openvpnとeasy-esaを入れます。
2.フォルダやらファイルを作る
cd /etc/openvpn make-cadir ca cd ca
make-cadir caでcaフォルダに証明書作成ツールなどを勝手に入れてくれます。
3.varsファイルを設定していく
export KEY_COUNTRY="JA" export KEY_PROVINCE="OSA" export KEY_CITY="Osaka" export KEY_ORG="test" export KEY_EMAIL="test@myhost.mydomain" export KEY_OU="test"
vi varsやnano varsのようなコマンドで設定しています。
varsファイルの編集が終わったら必ず
source ./vars
を実行します。
4.CA証明書・秘密鍵を作っていく
./clean-all cp openssl-1.0.0.cnf openssl.cnf ./build-ca
cp openssl-1.0.0.cnf openssl.cnfをしないと./build-caの段階でエラーを吐きます。
5.サーバー証明書・秘密鍵を作っていく
./build-key-server server
Enterを押しまくってyを入力します。
6.DHパラメータを作っていく
./build-dh
多少時間かかります。
7.TLSの秘密鍵を作っていく
openvpn --genkey --secret ta.key
8.クライアント側の証明書を作っていく
./build-key client1 nopass
client1のところは適当な名前にしてください
client1.crt:クライアント側の証明書
client1.key:クライアント側の秘密鍵
9.設定ファイルを解凍&コピーする
gunzip /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf /etc/openvpn/server.conf
server.confをコピーする
10.server.confを自分に合わせて設定する
vi /etc/openvpn/server.conf又はnano /etc/openvpn/server.confから設定を変更できます。
#ca,cert,keyの場所を指定する。(certとkeyはサーバー側やつです。) ca /etc/openvpn/ca/keys/ca.crt cert /etc/openvpn/ca/keys/server.crt key /etc/openvpn/ca/keys/server.key # This file should be kept secret #dh.pemの場所を指定する dh /etc/openvpn/ca/keys/dh2048.pem #serverはipアドレスを配布するネットワーク帯を指定する server 10.8.0.0 255.255.255.0 #サーバー側とクライアント側のネットワーク帯を指定する ;push "route 192.168.10.0 255.255.255.0" ;push "route 192.168.20.0 255.255.255.0" push "route 10.25.96.0 255.255.240.0" push "route 172.16.100.0 255.255.255.0" push "route 172.16.190.0 255.255.255.0" push "route 172.16.200.0 255.255.255.0" #クライアント側のネットワークを指定する client-config-dir ccd ;route 192.168.40.128 255.255.255.248 route 172.16.100.0 255.255.255.0 route 172.16.190.0 255.255.255.0 route 172.16.200.0 255.255.255.0 #openvpnに繋いでいるクライアント同士で通信できるようにする client-to-client #TLS設定 tls-auth /etc/openvpn/ca/ta.key 0 #暗号化方式を指定する cipher AES-256-CBC auth SHA512 #圧縮を有効にする comp-lzo #なんかよくわからんけどやったほうがいいらしい user nobody group nobody #なんかよくわからんけどやったほうがいいらしい persist-key persist-tun #logの保存場所を指定(どこでもいい) status openvpn-status.log #logのレベル verb 3
10.ccdフォルダを作成して、設定を流し込む
mkdir /etc/openvpn/ccd vi /etc/openvpn/ccd/client1 <-クライアントの証明書ごとに編集する
/etc/openvpn/ccd/client1にしたの内容を流し込む(クライアント側のネットワークを入れていく)
iroute 172.16.100.0 255.255.255.0 iroute 172.16.190.0 255.255.255.0 iroute 172.16.200.0 255.255.255.0
11.ポート開放&サービスを起動する
UDPの1194番のポート開放する
ufw allow 1194/udp ufw enable #ufwのサービスを開始していない場合は有効化する
サービスを開始&サービスを有効化する
systemctl start openvpn@server systemctl enable openvpn@server
これでOpenVPNサーバーの完成です。
コメント