–
ワンコイン(490円)から利用できる仮想専用サーバー
「ServersMan@VPS」4月度定例アップデート
基本性能のアップデートと、仮想ネットワークカーネルドライバ対応により、
各種VPN等の構築が可能に
–
詳細はこちらから
ということで、ServersMan@VPSにてtunデバイスの利用が可能になりました。仮想ネットワークデバイスを用いて、Virtual Private Network(VPN)、仮想専用ネットワークを構築することが出来る。
以下ServersMan@VPSでのOpenVPNサーバ/クライアントの設定方法を説明する。
それにしてもそろそろ「ServersMan@VPS」でなくて「VPS@DTI」などとして欲しいと個人的には思う。
本ページでは以下の4点を説明する
・tunデバイスが利用出来るか確認する
・OpenVPNインストール方法
・OpenVPNサーバの設定方法
・OpenVPNクライアントの設定方法
tunデバイスが利用出来るか確認をする
①「/dev/net」ディレクトリがあるか確認します。
# ls /dev/net
②「/dev/net」がない場合
「/dev/net」の作成と「/dev/net/tun」の作成をします。
# mkdir /dev/net ←「/dev/net」ディレクトリの作成 # mknod --mode 600 /dev/net/tun c 10 200
②「/dev/net」がある場合
1. 「/dev/net/tun」があるか確認します。 # ls /dev/net/tun 2. 「/dev/net/tun」がない場合は作成します。 # mknod --mode 600 /dev/net/tun c 10 200
③「/dev/net/tun」があるか確認します。
# ls /dev/net/tun
以上です。
OpenVPNインストール方法
①OpenVPNをyumコマンドでインストールします。
「openvpn」をyumコマンドでインストールするには、RPMforgeのレポジトリが必要です。以下リンクを参照し、RPMforgeのレポジトリを利用出来るようにしてから引き続きの作業をお願いします。
RPMforgeのrepoを追加する CentOS5.5
# yum -y install openvpn Loaded plugins: fastestmirror Repository 'vz-base' is missing name in configuration, using id Repository 'vz-updates' is missing name in configuration, using id Loading mirror speeds from cached hostfile * addons: rsync.atworks.co.jp * base: rsync.atworks.co.jp * extras: rsync.atworks.co.jp * rpmforge: ftp-stud.fht-esslingen.de * updates: rsync.atworks.co.jp rpmforge | 1.1 kB 00:00 rpmforge/primary | 2.3 MB 00:04 rpmforge 10726/10726 Setting up Install Process Resolving Dependencies --> Running transaction check ---> Package openvpn.i386 0:2.1.4-2.el5.rf set to be updated --> Processing Dependency: liblzo2.so.2 for package: openvpn --> Processing Dependency: lzo for package: openvpn --> Processing Dependency: libpkcs11-helper.so.1 for package: openvpn --> Running transaction check ---> Package lzo.i386 0:2.04-1.el5.rf set to be updated ---> Package pkcs11-helper.i386 0:1.08-1.el5.rf set to be updated --> Finished Dependency Resolution Dependencies Resolved ============================================================================================================================================================= Package Arch Version Repository Size ============================================================================================================================================================= Installing: openvpn i386 2.1.4-2.el5.rf rpmforge 443 k Installing for dependencies: lzo i386 2.04-1.el5.rf rpmforge 131 k pkcs11-helper i386 1.08-1.el5.rf rpmforge 128 k Transaction Summary ============================================================================================================================================================= Install 3 Package(s) Update 0 Package(s) Remove 0 Package(s) Total download size: 701 k Downloading Packages: (1/3): pkcs11-helper-1.08-1.el5.rf.i386.rpm | 128 kB 00:01 (2/3): lzo-2.04-1.el5.rf.i386.rpm | 131 kB 00:00 (3/3): openvpn-2.1.4-2.el5.rf.i386.rpm | 443 kB 00:00 ------------------------------------------------------------------------------------------------------------------------------------------------------------- Total 188 kB/s | 701 kB 00:03 Running rpm_check_debug Running Transaction Test Finished Transaction Test Transaction Test Succeeded Running Transaction Installing : pkcs11-helper 1/3 Installing : lzo 2/3 Installing : openvpn 3/3 Installed: openvpn.i386 0:2.1.4-2.el5.rf Dependency Installed: lzo.i386 0:2.04-1.el5.rf pkcs11-helper.i386 0:1.08-1.el5.rf Complete! #
OpenVPNサーバ設定方法
①OpenVPNがインストールされたディレクトリ配下に移動し、これから使用するファイルに実行権限を付与します。
# cd /usr/share/doc/openvpn-2.1.4/←ディレクトリ移動 # cd easy-rsa/2.0/ ←ディレクトリ移動 # chmod +x * ←実行権限付与
②環境設定の読み込みと、古い鍵を削除します。
# . ./vars ←「.」で「./vars」を読み込む NOTE: If you run ./clean-all, I will be doing a rm -rf on /usr/share/doc/openvpn-2.1.4/easy-rsa/2.0/keys # # ./clean-all #
③独自の認証期間(CA)を作成します。
質問にあわせて希望のものを入力してください。途中失敗した場合は、「Ctrl + C」で中止して再度やり直してください。ここには、OpenVPNサーバになるサーバの情報を入力します。
# ./build-ca Generating a 1024 bit RSA private key .......++++++ ..............................++++++ writing new private key to 'ca.key' ----- 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. ----- Country Name (2 letter code) [US]:JP ←国 State or Province Name (full name) [CA]:Miyagi ←都道府県 Locality Name (eg, city) [SanFrancisco]:Sendai←市町村 Organization Name (eg, company) [Fort-Funston]:Trippyboy.com ←会社名 Organizational Unit Name (eg, section) []: ←部署名 Common Name (eg, your name or your server's hostname) [Fort-Funston CA]:vps3.trippyboy.com ←ホスト名 Name []: ←名前 Email Address [me@myhost.mydomain]:root@vps3.trippyboy.com ←メールアドレス #
④サーバ鍵を作成します。
質問にあわせて希望のものを入力してください。途中失敗した場合は、「Ctrl + C」で中止して再度やり直してください。ここにも、OpenVPNサーバになるサーバの情報を入力します。
# ./build-key-server server Generating a 1024 bit RSA private key ...++++++ .......++++++ writing new private key to 'server.key' ----- 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. ----- Country Name (2 letter code) [US]:JP ←国 State or Province Name (full name) [CA]:Miyagi ←都道府県 Locality Name (eg, city) [SanFrancisco]:Sendai ←市町村 Organization Name (eg, company) [Fort-Funston]:Trippyboy.com ←会社名 Organizational Unit Name (eg, section) []: ←部署名 Common Name (eg, your name or your server's hostname) [server]:vps3.trippyboy.com ←ホスト名 Name []: ←名前 Email Address [me@myhost.mydomain]:root@vps3.trippyboy.com ←メールアドレス Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: Enter An optional company name []: Enter Using configuration from /usr/share/doc/openvpn-2.1.4/easy-rsa/2.0/openssl.cnf Check that the request matches the signature Signature ok The Subject's Distinguished Name is as follows countryName :PRINTABLE:'JP' stateOrProvinceName :PRINTABLE:'Miyagi' localityName :PRINTABLE:'Sendai' organizationName :PRINTABLE:'Trippyboy.com' commonName :PRINTABLE:'vps3.trippyboy.com' emailAddress :IA5STRING:'root@vps3.trippyboy.com' Certificate is to be certified until Apr 24 09:45:56 2021 GMT (3650 days) Sign the certificate? [y/n]:y 1 out of 1 certificate requests certified, commit? [y/n]y Write out database with 1 new entries Data Base Updated #
④クライアント鍵を作成します
質問にあわせて希望のものを入力してください。途中失敗した場合は、「Ctrl + C」で中止して再度やり直してください。ここは、OpenVPNクライアントになるサーバの情報を入力します。
# ./build-key client Generating a 1024 bit RSA private key ...............++++++ ..........++++++ writing new private key to 'client.key' ----- 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. ----- Country Name (2 letter code) [US]:JP ←国 State or Province Name (full name) [CA]:Miyagi ←都道府県 Locality Name (eg, city) [SanFrancisco]:Sendai ←市町村 Organization Name (eg, company) [Fort-Funston]:Trippyboy.com ←ホスト名 Organizational Unit Name (eg, section) []: ←部署名 Common Name (eg, your name or your server's hostname) [client]:trippyboy.com ←ホスト名 Name []: ←名前 Email Address [me@myhost.mydomain]:root@trippyboy.com ←メールアドレス Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: Enter An optional company name []: Enter Using configuration from /usr/share/doc/openvpn-2.1.4/easy-rsa/2.0/openssl.cnf Check that the request matches the signature Signature ok The Subject's Distinguished Name is as follows countryName :PRINTABLE:'JP' stateOrProvinceName :PRINTABLE:'Miyagi' localityName :PRINTABLE:'Sendai' organizationName :PRINTABLE:'Trippyboy.com' commonName :PRINTABLE:'trippyboy.com' emailAddress :IA5STRING:'root@trippyboy.com' Certificate is to be certified until Apr 24 09:46:41 2021 GMT (3650 days) Sign the certificate? [y/n]:y 1 out of 1 certificate requests certified, commit? [y/n]y Write out database with 1 new entries Data Base Updated #
⑤DH(Diffie Hellman)パラメータを作成します。
2~3分かかります。
# ./build-dh
Generating DH parameters, 1024 bit long safe prime, generator 2
This is going to take a long time
........+...................................+...........+......+
...+....................................................+.......
..................................................+.............
................................................................
................................................+...............
...........................+..+.....+..........................+
.................................................+..............
....................+...........................................
.+..........+......+............................................
.................................+..............+.............+.
...............+...............................................+
........................................................+.......
....+....+......................................................
................................................................
...........+....................................................
..........................+....+...................+............
................................................................
+...............................................+...............
...............+................................................
........+.......................................................
.+.............+................................................
.........+..++*++*++*
#
⑥OpenVPNサーバの設定と各種鍵を所定の位置に移動します。
# cp -p ../../sample-config-files/server.conf /etc/openvpn/ # cp -p keys/server.crt /etc/openvpn/ # cp -p keys/server.key /etc/openvpn/ # cp -p keys/ca.crt /etc/openvpn/ # cp -p keys/dh1024.pem /etc/openvpn/
⑦OpenVPNサーバを起動します。
起動する前と後で「ifconfig」を実行し、その変化を確認するといいかも知れません。
# service openvpn restart
⑧サーバ起動時と共にOpenVPNが有効になるように変更します。
# chkconfig --list openvpn←現在の起動時の設定を確認 # chkconfig openvpn on←自動で起動するように設定 # chkconfig --list openvpn←現在の設定を確認(3:on)
⑨OpenVPNで利用しているIPアドレスまでpingが通るか確認しましょう。
# ifconfig tun0 tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 inet addr:10.8.0.1 P-t-P:10.8.0.2 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b) # # ping -c5 10.8.0.1 PING 10.8.0.1 (10.8.0.1) 56(84) bytes of data. 64 bytes from 10.8.0.1: icmp_seq=1 ttl=64 time=0.054 ms 64 bytes from 10.8.0.1: icmp_seq=2 ttl=64 time=0.062 ms 64 bytes from 10.8.0.1: icmp_seq=3 ttl=64 time=0.064 ms 64 bytes from 10.8.0.1: icmp_seq=4 ttl=64 time=0.058 ms 64 bytes from 10.8.0.1: icmp_seq=5 ttl=64 time=0.053 ms --- 10.8.0.1 ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 4000ms rtt min/avg/max/mdev = 0.053/0.058/0.064/0.006 ms #
以上で、OpenVPSサーバの設定は完了です。
OpenVPNクライアントの設定方法
次に、OpenVPNサーバに接続するクライアントの設定を行います。クライアントになるサーバにも上述を参考にRPMforgeレポジトリをインストールし、「OpenVPN」のインストールを完了しておいてください。
①OpenVPNサーバで作成した以下の3ファイルをクライアントになるサーバの「/etc/openvpn/」配下に設置します。
@OpenVPNサーバ /usr/share/doc/openvpn-2.1.4/easy-rsa/2.0/keys/ca.crt /usr/share/doc/openvpn-2.1.4/easy-rsa/2.0/keys/client.key /usr/share/doc/openvpn-2.1.4/easy-rsa/2.0/keys/client.crt
②OpenVPNクライアントになるための設定ファイルを設定します。
以下「vps3.trippyboy.com」の部分は、「OpenVPNサーバ」となるサーバのホスト名を指定してください。
@OpenVPNクライアント # cp /usr/share/doc/openvpn-2.1.4/sample-config-files/client.conf /etc/openvpn/ # sed -i 's/my-server-1/vps3.trippyboy.com/g' /etc/openvpn/client.conf
③OpenVPNを起動します
# service openvpn restart
④サーバ起動時と共にOpenVPNが有効になるように変更します。
# chkconfig --list openvpn←現在の起動時の設定を確認 # chkconfig openvpn on←自動で起動するように設定 # chkconfig --list openvpn←現在の設定を確認(3:on)
⑤OpenVPNで利用しているIPアドレスまでpingが通るか確認しましょう。
# ifconfig tun0 tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 inet addr:10.8.0.6 P-t-P:10.8.0.5 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:500 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b) # ping -c5 10.8.0.6 PING 10.8.0.6 (10.8.0.6) 56(84) bytes of data. 64 bytes from 10.8.0.6: icmp_seq=1 ttl=64 time=0.048 ms 64 bytes from 10.8.0.6: icmp_seq=2 ttl=64 time=0.069 ms 64 bytes from 10.8.0.6: icmp_seq=3 ttl=64 time=0.062 ms 64 bytes from 10.8.0.6: icmp_seq=4 ttl=64 time=0.056 ms --- 10.8.0.6 ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 2999ms rtt min/avg/max/mdev = 0.048/0.058/0.069/0.012 ms
⑥OpenVPNまでpingが通るかも試しておきましょう。
サーバで利用するプライベートIPアドレスは、OpenVPNサーバ側で「ifconfig tun0」で確認
# ping -c510.8.0.1 PING 10.8.0.1 (10.8.0.1) 56(84) bytes of data. 64 bytes from 10.8.0.1: icmp_seq=1 ttl=64 time=0.969 ms 64 bytes from 10.8.0.1: icmp_seq=2 ttl=64 time=0.762 ms 64 bytes from 10.8.0.1: icmp_seq=3 ttl=64 time=0.926 ms 64 bytes from 10.8.0.1: icmp_seq=4 ttl=64 time=0.838 ms 64 bytes from 10.8.0.1: icmp_seq=5 ttl=64 time=0.933 ms --- 10.8.0.1 ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 4001ms rtt min/avg/max/mdev = 0.762/0.885/0.969/0.082 ms
以上
不明点あればコメント or コンタクトme
コメント