| OpenVPN |
OpenVPN はSSLで暗号化を行うVirtual Private Networkです
現在、OpenVPN(2.0.9) が最新バージョンとなります
SSLを利用するため OpenSSL が使われますが、Debian 標準で既にインストールされていると思います
試行錯誤で動作するようにはしましたが、完全に構成できている自信がありませんので、うそ半分で見てください
|
| Synapticでインストール |
Synaptic で openvpn を探してインストールにチェックを入れ、[適用] を押すとインストールが始まります
openvpn だけの選択でも、他に必要なパッケージは自動的に選択してインストールしてくれます
そして、ネットワークは tap を使用し、tap と eth0 をブリッジにて接続するために Synaptic で bridge-utils
をインストールしておきます
Bridge の構成は、/etc/network/interfaces を編集して eth0 の部分を以下のように書き直します
- # The primary network interface
- auto br0
- iface br0 inet static
- address 192.168.xxx.xxx
- netmask 255.255.255.0
- broadcast 192.168.xxx.255
- name BRIDGE
- network 192.169.xxx.0
- gateway 192.168.xxx.1
- bridge_ports eth0 tap0
そして ifdown ifup して、br0 が有効になることを確認しておきます (ここではまだ tap0 は有効ではありません)
|
| 設定 |
OpenVPN の設定は、Webmin を使用します
Webmin の標準モジュールではありませんのでサードパーティ製モジュールで OpenVPN Admin をインストールしてください
Webmin の [サーバ] タグを開いて OpenVPN +CAのアイコンをクリックします
手順は、以下の通りです
1.”モジュール設定” を行います
- ”Server Hint for Clients” には外部インターネットから接続するIPアドレス情報 (ドメイン名) を入力します
- ”Command to start Bridge” には /usr/share/webmin/openvpn/br_scripts/bridge_start
を入力します
- ”Command to stop Bridge” には /usr/share/webmin/openvpn/br_scripts/bridge_end
を入力します
- ”Path to DOWN-ROOT-PLUGIN” には /usr/lib/openvpn/openvpn-down-root.so を入力します
- [保存] を押します
2.CA (認証局 Certificate Authority) の作成
- Webmin の OpenVPN Administration メインメニューで ”Certification Authority List”
アイコンを選択します
- ”New Certification Authority” の入力箇所にCA名と自社情報を設定します
- Key size は好みですが、1024/2048/4096 bit の中から選択します、暗号強度を上げると通信も遅くなります
- [保存]を押します
- CA の生成が行われます、2048 以上だと相当時間がかかります
- 生成されると ”Certification Authority List” に作成したCA名がリストされます

3.サーバ認証キーの作成
- ”Certification Authority List” で作成した CA名の行にある Keys List を開きます
- ”New key to Certification Authority: CA名” で Key name を入力し、Key Server で
server を選択します
- [保存] を押します
- これが、このサーバー側で使用する暗号キーとなります
- キー名はサーバーのホスト名にするとわかりやすくなります

4.クライアント認証キーの作成
- 3に引き続き
- ”New key to Certification Authority: CA名” で Key name を入力し Key Server で
client を選択します
- [保存] を押します
- これが、クライアント側で使用する暗号キーとなりますので、接続するクライアント分の数を作成します
- キー名はクライアントのホスト名にするとわかりやすくなります
5.VPNサーバの作成と起動
- Webmin の OpenVPN Administration メインメニューで ”VPN List” アイコンを選択します
- ”ca” には作成したCA名が表示されていますので、[New VPN server] を押します
- ”Name” はサーバーのホスト名を指定するとわかりやすくなります
- ”Device” は tap を指定します (ブリッジ接続するため)
- ”Bridge Device” に br0 と入力します
- ”Network Device for Bridge” を eth0 を選択します
- ”IP-Address/Gateway” にはサーバの IP アドレスを入力します (なぜか Gateway を入れるとエラーになる)
- ”Net Mask” は通常 255.255.255.0 です
- ”IP-Range for Bridge-Clients” にはクライアントに動的に割り振るアドレス範囲を入れますが、クライアントを固定アドレスにする場合は、その固定アドレス以外の範囲を指定しておきます
- ”enable TLS and assume server role during TLS handshake” で yes を選択します
- ”Because the OpenVPN server ..... (option client-to-client)” で yes を設定します
- ”Encrypt packets whit cipher .....” で、好みですが BF-CBC 128 bit default key
(variable) を選択します
- ”tun-mtu .....” は、つながらない場合に1500より小さな値を入れなおして試してください (私は1350を使用)
- ”float .....” で yes を選択します
- [保存] を押します
- ”VPN server list” に作成したサーバー名が表示されます
- /etc/openvpn に サーバ名.conf がありますので、編集して 最後に 1 行 ”script-security 2”を付け加えます(次のStartで”openvpn_execve:
external program may not be called due to setting of --script-security
level”のエラーが出る場合に必要)
- ”VPN server list” の作成したサーバー名にある start をクリックして、stop の表示になればサーバが起動しています、表示が元々
Stop であればクリックして一旦 start の表示にしてから行ってください
- 起動しても、ブリッジの構成ができていないので、まだ tap0 は有効になっていません
- このWebminを使った方法サーバー設定では使用するポートNoがデフォルトで 1194 となりますが、公式(IANA)なOpenVPNのポートNoは
5000です、1194 でもつながりますがクライアントから接続したときのログに 5000 を使うようにとワーニングがでます
6.VPNクライアントの作成
- ”VPN server list” の Client List をクリックします
- [New VPN Client] を押します
- ”Name” は4で作成したクライアント認証キーの名前がリストされますので選択します
- ”remote” はモジュール設定で入力した ”Server Hint for Clients” が入っていますので、接続できる情報であることを確認しておきます、ドメイン、ホスト名、以外に
グローバル IP アドレスでも可です
- クライアントを固定 IP にする場合は、”Additional Configurations” に ”ifconfig IPADDRESS NETMASK”
と入れ、”float”を no にします
- [保存] を押します
- クライアントが複数ある場合は、これを繰り返します
- ”VPN client list サーバ名” の各クライアントにある Export をクリックすると、設定ファイルとキーファイルが圧縮されて
1 ファイルになったものをダウンロードすることができます
7.OpenVPN デーモンの起動順変更と再起動
- Webmin [システム] タグを選んで、”起動及びシャットダウン” を開きます
- openvpn はデフォルトでランレベルが 2 3 4 5で起動順が 16 になっていると思います
- ここのランレベルの 2 3 4 5 のチェックを外して S にチェックを入れて起動順を 38 として[保存]を押します
- これは、ランレベル S 起動順 39 の ifupdown の前に起動するようするためで、こうしないとなぜか tap0 が作られません
-
- ちなみに ifupdown のデフォルトは Start が S で Stop が 0 6 と書かれていますが、0(37) 6(37) S(39)
で全て Start(開始にチェック) の設定になっていますので、Webmin の起動及びシャットダウンで起動順の並びにすると OpenVPN
が後でに並んでしまいますが問題ありません
-
- [システムを再起動] を行います
-
- この状態で、コマンドラインより ifconfig を確認すると、br0、eth0、tap0 が存在していれば成功です
- もちろん IPアドレスが指定されているのは br0 ということになります
|
| クライアント側設定 |
この先はクライアント側 PC (Windows) での作業です
VPNクライアントのインストール
VPNクライアントの設定
- 前記6の圧縮ファイルを解凍するとフォルダができて、中に拡張子が ovpn となったファイルがあります
- そのファイルを編集して client という行 (1行目) を tls-client に書き直してください
- (なぜでしょうか、クライアント作成画面で tls-client にするオプションが見つかりませんでした...)
- そして、OpenVPNのインストール先にある config というフォルダにそのフォルダごと移動させます
- OpenVPN GUI のアイコンを右クリックして、Connect を選択すれば接続できるはずです
- その際に、同じ IP セグメント内から接続してもつながりませんから、外部インターネットから接続テストする必要があります
ルータの設定
- 説明が最後になってしまいましたが、ルータに穴を開ける作業が必要です
- ポートマッピングやアドレス変換といわれる設定を行います
- OpenVPN をデフォルトのまま設定するとポート番号は 1194 が使われますので、外部から 1194 にアクセスがあったパケットは OpenVPN
をインストールしたサーバの IP アドレスへ通しますといった具合に指定します
うまくつながっていれば、外から暗号化したパケットで、自社 (自宅) 内のネットワークに直接続しているように見えるはずです
ネットワーク接続では、TAP-Win32 Adapter V8 というネットワークアダプタが有効になっているはずです
このアダプタに、VPNクライアントの作成で指定した ”ifconfig IPADDRESS NETMASK” の IP アドレスが割り振られます
ちなみに、このアダプタの接続速度は 10Mbps ですから、ローカルネットワーク (100Mbps Ether や 54Mbps Wireless)
よりは遅いですから、大きなファイルを転送するときは、ローカルネットワーク内で行いましょう
ちなみに、Debianから別の OpenVPN サーバーにつなぎにいく場合
- 前述6で作成されたフォルダをクライアントとなる Debian の任意のところにコピーします
- コピーしたフォルダとファイルのアクセス権を root 644 にします
- ovpn ファイルの 1 行目は同じように tls-client に変更します
- コマンドコンソールで root になります
- コピーしたフォルダに CD します
- openvpn --config XXXXX.ovpn &
- これで ”Initialization Sequence Completed” と表示されれば接続完了です
|
| [上へ戻る] |