Amazon Linux2 でOpenVPNを構築する
Amazon Linux2 でOpenVPNを構築する:
メモ書き。
Amazon Linux2 をパブリックサブネットに構築後からの作業。
vpnux Client で 接続する。
RHEL 7 および Amazon Linux 2 で EPEL rpmパッケージをインストールして有効にする
/usr/share/easy-rsaに導入される。
認証局を作成前にのみ実行する
メッセージからpkiディレクトリが作成されていることがわかる。
パスフレーズを入力する。例:hogehoge
Common Name はデフォルトでよければ、入力せずに[Enter]。例:Easy-RSA CA
nopassオプションでパスフレーズが不要になる。
認証局作成時に設定したパスフレーズを入力。例:hogehoge
最初のパスフレーズが、クライアント証明書のパスワード、例:hogehoge
後のパスフレーズが認証局作成時のパスワードを入力する。例:hogehoge
作成されたファイルは、pkiディレクトリ内の各サブディレクトリに保管されている。
private:秘密鍵
reqs:証明書要求
issued:証明書
/etc/openvpn/server.conf を作成する。
デフォルトでは存在しないので、
テンプレートをコピーする。
内容を修正する。
push "route"のところはVPNのサブネットのIPアドレスになります。
IPアドレスにあわせて変更してください。
とりあえずここまで。
Amazon Linux でOpenVPN + easy-rsa 3を構築する(詳細解説)
AWSにOpenVPNでVPNを構築してみた
AWSにOpenVPN[AmazonLinux]を構築(ユーザー & パスワード認証編)
Amazon Linux2 でOpenVPN を構築する
メモ書き。
概要
Amazon Linux2 をパブリックサブネットに構築後からの作業。vpnux Client で 接続する。
作業の流れ
- インストール
- EPEL リポジトリを有効化する
- OpenVPNのインストール
- easy-rsaのインストール
- 認証局と鍵の作成
- 認証局の初期化
- 認証局の作成
- DHパラメータの生成
- サーバー証明書と秘密鍵の作成
- クライアント証明書と秘密鍵の作成
- OpenVPN設定
- OpenVPN設定ファイル作成
- OpenVPN自動起動設定
- 確認
インストール
EPEL リポジトリを有効化する
RHEL 7 および Amazon Linux 2 で EPEL rpmパッケージをインストールして有効にするsudo yum update -y sudo yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
OpenVPNのインストール
sudo yum install openvpn -y
easy-rsaのインストール
sudo yum install easy-rsa --enablerepo=epel -y
認証局と鍵の作成
認証局の初期化
sudo -s cd /usr/share/easy-rsa/3 ./easyrsa init-pki
init-pki complete; you may now create a CA or requests. Your newly created PKI dir is: /usr/share/easy-rsa/3/pki
メッセージからpkiディレクトリが作成されていることがわかる。
認証局の作成
./easyrsa build-ca
Generating a 2048 bit RSA private key ...........................+++ ...................................+++ writing new private key to '/usr/share/easy-rsa/3/pki/private/ca.key.wTA3RRKWak' Enter PEM pass phrase: Verifying - Enter PEM pass phrase: ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Common Name (eg: your user, host, or server name) [Easy-RSA CA]: CA creation complete and you may now import and sign cert requests. Your new CA certificate file for publishing is at: /usr/share/easy-rsa/3/pki/ca.crt
Common Name はデフォルトでよければ、入力せずに[Enter]。例:Easy-RSA CA
DHパラメータの生成
./easyrsa gen-dh
Generating DH parameters, 2048 bit long safe prime, generator 2 This is going to take a long time ......................................+......................................................................................................................... ~~ 略 ~~ .......................................................................+......................................................................++*++* DH parameters of size 2048 created at /usr/share/easy-rsa/3/pki/dh.pem
サーバー証明書と秘密鍵の作成
./easyrsa build-server-full server nopass
Generating a 2048 bit RSA private key ...................................+++ ................+++ writing new private key to '/usr/share/easy-rsa/3/pki/private/server.key.Y66YWmuObr' ----- Using configuration from ./openssl-1.0.cnf Enter pass phrase for /usr/share/easy-rsa/3/pki/private/ca.key: Check that the request matches the signature Signature ok The Subject's Distinguished Name is as follows commonName :ASN.1 12:'server' Certificate is to be certified until Oct 16 06:04:10 2028 GMT (3650 days) Write out database with 1 new entries Data Base Updated
認証局作成時に設定したパスフレーズを入力。例:hogehoge
クライアント証明書と秘密鍵の作成
./easyrsa build-client-full client
Generating a 2048 bit RSA private key ...................................................................................+++ ...........+++ writing new private key to '/usr/share/easy-rsa/3/pki/private/client.key.aHtmDZttPl' Enter PEM pass phrase: Verifying - Enter PEM pass phrase: ----- Using configuration from ./openssl-1.0.cnf Enter pass phrase for /usr/share/easy-rsa/3/pki/private/ca.key: Check that the request matches the signature Signature ok The Subject's Distinguished Name is as follows commonName :ASN.1 12:'client' Certificate is to be certified until Oct 16 06:06:45 2028 GMT (3650 days) Write out database with 1 new entries Data Base Updated
後のパスフレーズが認証局作成時のパスワードを入力する。例:hogehoge
作成されたファイルは、pkiディレクトリ内の各サブディレクトリに保管されている。
private:秘密鍵
reqs:証明書要求
issued:証明書
OpenVPNの設定
OpenVPN設定ファイルの作成
/etc/openvpn/server.conf を作成する。デフォルトでは存在しないので、
cp /usr/share/doc/openvpn-2.4.6/sample/sample-config-files/server.conf /etc/openvpn/
内容を修正する。
vi /etc/openvpn/server.conf
port 1194 #任意 proto udp #任意 dev tun ca /usr/share/easy-rsa/3/pki/ca.crt #適宜変更する cert /usr/share/easy-rsa/3/pki/issued/server.crt #適宜変更する key /usr/share/easy-rsa/3/pki/private/server.key #適宜変更する dh /usr/share/easy-rsa/3/pki/dh.pem #適宜変更する # OpenVPNからクライアントへ払い出すIPアドレスのレンジ server 10.8.0.0 255.255.255.0 #任意 ifconfig-pool-persist ipp.txt # クライアントがVPNを経由して、通信させたいネットワーク経路を記載(複数可) push "route 10.0.0.0 255.255.255.0" #パブリックサブネットを指定 keepalive 10 120 #任意 #tls-auth ta.key 0 # TLS-Auth不要の場合はコメントアウト(今回はコメントアウト) cipher AES-256-CBC comp-lzo #任意 persist-key persist-tun status openvpn-status.log verb 3 # TCP通信の場合はコメントアウト(今回はUDPなのでコメントアウトしない) explicit-exit-notify 1
IPアドレスにあわせて変更してください。
OpenVPNの起動
systemctl start openvpn@server
OpenVPN自動起動設定
systemctl enable openvpn@server
確認
systemctl list-unit-files -t service | grep openvpn
openvpn-client@.service disabled openvpn-server@.service disabled openvpn@.service enabled
参考
Amazon Linux でOpenVPN + easy-rsa 3を構築する(詳細解説)AWSにOpenVPNでVPNを構築してみた
AWSにOpenVPN[AmazonLinux]を構築(ユーザー & パスワード認証編)
コメント
コメントを投稿