IT Solution Service & PC Support
株式会社 ミヤビソリューション company_image inquiry_image sitemap_image login_image
[高度な検索]
 
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” と表示されれば接続完了です

[上へ戻る]

ご注意:当ホームページの内容は予告なく変更されることがあります、最新情報は必ず弊社まで直接お問い合わせください。
Copyright(C) 2006-2010 Miyabi Solutions Corporation. All rights reserved.