OpenVPN : VPN サーバーの設定2018/11/22 |
OpenVPN をインストールして、仮想プライベートネットワーク経由で OpenVPN サーバーに接続できるよう設定します。
当例では以下のような環境で OpenVPN サーバーを設定します。
設定により、サーバー/クライアント上の tun インターフェースは自動設定され、クライアントは VPN 接続後、VPN サーバーのローカルネットワーク宛てへアクセス可能となります。
下例の場合は、前提として、ルーター側で NAT の設定が必要です。
(WAN 側から x.x.x.x:1194 (udp) 宛にきたパケットを LAN側の 10.0.0.29:1194 (udp) へフォワード) +----------------------+ | [ OpenVPN Server ] |192.168.100.1 | dlp.srv.world +--------+ | |tun | +-----------+----------+ | eth0|10.0.0.29 | | | | Local Network | 10.0.0.1| | +------+-----+ | -------| Router |-------------|----- +------+-----+ | | | | Internet | --------------+-------------------|----- | | | Local Network | 192.168.0.100| | +-----------+----------+ | | |tun | | VPN Client +--------+ | |192.168.100.x +----------------------+ |
[1] | OpenVPN をインストールします。 |
# EPELからインストール [root@dlp ~]# yum --enablerepo=epel -y install openvpn easy-rsa net-tools bridge-utils
|
[2] | 認証局や証明書等々を作成します。 |
[root@dlp ~]#
cd /usr/share/easy-rsa/3
# 初期化 [root@dlp 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 # 認証局 作成 [root@dlp 3]# ./easyrsa build-ca Generating a 2048 bit RSA private key .....+++ ..................................+++ writing new private key to '/usr/share/easy-rsa/3/pki/private/ca.key.LPukaFVNwa' # 任意のパスフレーズを設定 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]:Server-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 # サーバー証明書 作成 # [server1] の箇所は任意の名称で OK # (証明書のファイル名や commonName 等に設定される) [root@dlp 3]# ./easyrsa build-server-full server1 nopass
Generating a 2048 bit RSA private key
......................................+++
.....................+++
writing new private key to '/usr/share/easy-rsa/3/pki/private/server1.key.bkKPPayO0F'
-----
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:'server1'
Certificate is to be certified until Nov 18 08:12:57 2028 GMT (3650 days)
Write out database with 1 new entries
Data Base Updated
# クライアント証明書 作成 # [client1] の箇所は任意の名称で OK # (証明書のファイル名や commonName 等に設定される) [root@dlp 3]# ./easyrsa build-client-full client1 nopass
Generating a 2048 bit RSA private key
..+++
..................................+++
writing new private key to '/usr/share/easy-rsa/3/pki/private/client1.key.z9J0kLwEpl'
-----
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:'client1'
Certificate is to be certified until Nov 18 08:13:36 2028 GMT (3650 days)
Write out database with 1 new entries
Data Base Updated
# Diffie Hellman ( DH ) パラメーター生成 [root@dlp 3]# ./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 # TLS-Auth キー作成 [root@dlp 3]# openvpn --genkey --secret ./pki/ta.key
# 生成した証明書をコピー [root@dlp 3]# cp -pR /usr/share/easy-rsa/3/pki/{issued,private,ca.crt,dh.pem,ta.key} /etc/openvpn/server/ |
[3] | IP フォワードを有効にしておきます。 |
[root@dlp ~]#
vi /etc/sysctl.d/10-ipv4_forward.conf # 新規作成
net.ipv4.ip_forward = 1
sysctl --system |
[4] | OpenVPN を設定して起動します。 |
# サンプル設定ファイル コピー [root@dlp ~]# cp /usr/share/doc/openvpn-*/sample/sample-config-files/server.conf /etc/openvpn/server/
[root@dlp ~]#
vi /etc/openvpn/server/server.conf # 32行目:必要があれば変更 (OpenVPN がリスンするポート) port 1194 # 35行目:必要があれば変更 (当例は UDP 使用) ;proto tcp proto udp # 78行目:コピーした証明書を指定 ca ca.crt cert issued/server1.crt key private/server1.key
# 85行目:コピーした DH ファイルを指定 dh dh.pem
# 101行目:VPN で使用するネットワークを指定 # ローカルネットワークと重複しなければ何でも OK server 192.168.100.0 255.255.255.0
# 143行目:コメント解除してローカルネットワークに変更 push "route 10.0.0.0 255.255.255.0 "
# 231行目:キープアライブ (10秒毎に生存確認, 120秒無応答でダウンと判断) keepalive 10 120 # 244行目:コピーしたTLS-Auth キーを指定 tls-auth ta.key
# 263行目:コメント解除 (圧縮を有効) comp-lzo # 281行目:確認 (persist オプション有効) persist-key persist-tun # 287行目:ログの保管場所変更 status /var/log/openvpn-status.log
# 296行目:コメント解除してログの保管場所変更 log /var/log/openvpn.log log-append /var/log/openvpn.log # 306行目:ログレベルを指定 (0 は fatal errors のみ, 9 は軽微なログまで全て出力) verb 3 systemctl start openvpn-server@server [root@dlp ~]# systemctl enable openvpn-server@server |
[5] | Firewalld を有効にしている場合は、サービスポートの許可が必要です。 |
[root@dlp ~]# firewall-cmd --add-port=1194/udp --permanent [root@dlp ~]# firewall-cmd --reload |
[6] |
以下のファイルを VPN 接続したいクライアントコンピュータへ転送しておきます。
以上で OpenVPN サーバーの設定は完了です。
・/etc/openvpn/server/ca.crt
・/etc/openvpn/server/ta.key ・/etc/openvpn/server/issued/client1.crt ・/etc/openvpn/server/private/client1.key |
Sponsored Link |