約 6,312,177 件
https://w.atwiki.jp/memodelvin/pages/19.html
OpenVPN設定 http //www.atmarkit.co.jp/flinux/special/openvpn/openvpnc.html http //centossrv.com/openvpn.shtml http //www.yomaigoto.jp/archives/153 http //www.yam-web.net/openvpn/index.html http //griffonworks.net/freebsd/openvpn/ 192.168.1.xxxからVPN接続する場合で、クライアントPCをOpenVPNサーバのIPアドレスにNAT変換する IPマスカレード機能で通信させる場合、push “route 192.168.1.0 255.255.255.0″をserver.confに 書くと通信できなくなる(なんで?間違ってるかも)。 OpenVPN for Windowsでの注意点 インターネットプロトコルバージョン6(TCP/IPv6)に対応していない為、TAP-Win32 Adapterのプロパティでチェックを外す。 Windows7の場合、スタートメニュ- すべてのプログラム- OpenVPN- OpenVPN GUIを右クリックして「プロパティ」-「互換性」-「管理者としてこのプログラムを実行する」をチェックして「OK」にしないと通信できない。※インストール後最初の1回のみ パスワードを変更しようとするとno OPENSSL_Applinkとかいうエラーが出て失敗する。 上記の問題は、日本語版OpenVPN for Windowsだと生じない。 OpenVPNクライアント(windows)からOpenVPNサーバへのpingは通るが、その逆は通らない(Windowsだから?)。OpenVPNクライアント(Linux)だとサーバからもpingは通る。 OpenVPNはデフォルトゲートウェイをVPN接続のゲートウェイとする為、VPNサーバにNICが2つ以上ある場合、 デフォルトゲートウェイを適切に設定しないとVPN接続が確立しない。 具体的には外部から接続する方のNICのゲートウェイをデフォルトゲートウェイにする。 つまり、/etc/sysconfig/networkに GATEWAY=xxx.xxx.xxx.xxx と書く。xxx.xxx.xxx.xxxは外部から接続する方のNICのゲートウェイアドレス。 Wimaxで接続する場合の注意点 http //www.mythril.ne.jp/modules/smartsection/print.php?itemid=198 http //femt.ddo.jp/modules/xpwiki/?Gentoo%20Linux%E3%81%AA%E7%94%9F%E6%B4%BB%2FOpenVPN%E3%81%A7%E6%82%A9%E3%82%80 パスフレーズ変更 openssl rsa -aes256 -in *.key -out *.key
https://w.atwiki.jp/wiki15_cu/pages/6.html
OpenVPNのインストール 鍵の作成認証局の作成 OpenVPNサーバーの鍵の作成と証明書の発行 クライアントの鍵の作成と証明書の発行 OpenVPNサーバーの設定 クライアントの設定 Debian(etch)対応(2008/8/26 追記)aptitudeについて 2038年問題(2008/8/26 追記) 参考 OpenVPNのインストール Debian(Sarge)でOpenVPNを導入するにはAPTを使います。 apt-get install openvpn Debianはこれだけで、依存するパッケージもシステムに組み込まれます。便利ですねー。 依存関係として、鍵を使ってセキュアな通信を行うlibsslパッケージと、 VPN伝送網に送るデータを圧縮するliblzoパッケージが同時に インストールされます。 鍵の作成 OpenVPNを使うには鍵が必要です。 やはり、通常のパスワードではセキュリティに不安残るため、 OpenVPNではSSL鍵を必要とします。 これは、SSHとはまた違うものです。 認証局の作成 認証局とは、これから作成すら鍵の正当性を保障するものです。 鍵を作るにはopensslを使うのですが、OpenVPNには簡単に鍵を作る ことのできる「easy-rsa」というツールがあります。 APTでOpenVPNをインストールした場合、 /usr/share/doc/openvpn/examples/easy-rsa にツールがあります。このディレクトリをカレントディレクトリに して作業を続けます。 最初にする事は、このディレクトリにある「vars」ファイルの編集です。 このファイルは認証局の設定を行うものです。 viで次のように編集します。 export KEY_COUNTRY=JP export KEY_PROVINCE=TOKYO export KEY_CITY=UENO export KEY_ORG="MyCA" export KEY_EMAIL="hogehoge@piyo.com" これは、認証局の情報を設定するものです。 KEY_PROVINCEには認証局の存在する「県」を、KEY_CITYには「市」の名前を入れます。 次に、鍵の保存先を設定します。 デフォルトのvarsでは「keys」ディレクトリです。 では、早速鍵を作成してみます。 # . ./vars NOTE when you run ./clean-all, I will be doing a rm -rf on /usr/share/doc/openvpn/examples/easy-rsa/keys # ./clean-all # ./build-ca ./build-ca line 9 openssl command not found エラーでした。 「OpenSSLが存在しない」と怒られました。 ということで、OpenSSLを先にインストールします。 apt-get install openssl APTを使えば簡単楽チン。 # . ./vars NOTE when you run ./clean-all, I will be doing a rm -rf on /usr/share/doc/openvpn/examples/easy-rsa/keys # ./clean-all # ./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) [JP] State or Province Name (full name) [TOKYO] Locality Name (eg, city) [UENO] Organization Name (eg, company) [MyCA] Organizational Unit Name (eg, section) [] Common Name (eg, your name or your server s hostname) [] VM-debian-CA Email Address [hogehoge@piyo.com] 「Country Name」などの項目は、先ほど入力したvarsの内容がデフォルトで選ばれます。 変更しない場合はそのままEnterキーを押すとデフォルトがセットされます。もちろん、変更はしません。 この時、ひとつだけ入力が必要なのが「Common Name」です。 この項目は、これから作る認証局が、OpenVPN用の鍵を作成するときにすべてユニークな名前でなければなりません。 今回の場合は、認証局自身のCommonNameということで、「サーバー名 + CA」という名前をつけました。(VM-debian-CA) これで、keysディレクトリ内に認証局の鍵と証明書が以下のように作られます。 # cd keys # ls ca.crt ca.key index.txt serial ca.crt 認証局の証明書 ca.key 認証局の鍵 OpenVPNサーバーの鍵の作成と証明書の発行 次に、サーバーの鍵を今作成した認証局を使って発行します。 # cd /usr/share/doc/openvpn/examples/easy-key # ./build-key-server OpenVPN-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) [JP] State or Province Name (full name) [TOKYO] Locality Name (eg, city) [UENO] Organization Name (eg, company) [MyCA] Organizational Unit Name (eg, section) [] Common Name (eg, your name or your server s hostname) [] OpenVPN-server Email Address [hogehoge.piyo.com] Please enter the following extra attributes to be sent with your certificate request A challenge password [] An optional company name [] Using configuration from /usr/share/doc/openvpn/examples/easy-rsa/openssl.cnf Check that the request matches the signature Signature ok The Subject s Distinguished Name is as follows countryName PRINTABLE JP stateOrProvinceName PRINTABLE TOKYO localityName PRINTABLE UENO organizationName PRINTABLE MyCA commonName PRINTABLE OpenVPN-server emailAddress IA5STRING hogehoge@piyo.com Certificate is to be certified until Jun 28 00 08 53 2016 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 入力が必須なのが、「Common Name」です。これは、この認証局で作る鍵すべてでユニークでなければなりません。 OpenVPNサーバーの鍵を作るので「OpenVPN-server」という名前をつけました。 チャレンジパスワードや署名にサインするか?という設問をしてきます。 署名にサインするか?(Sign the certificate? [y/n])はもちろん「y」で。 # cd keys # ls 01.pem ca.key index.txt.attr serial OpenVPN-server.crt OpenVPN-server.key ca.crt index.txt index.txt.old serial.old OpenVPN-server.csr -OpenVPN-server.crt サーバーの証明書 -OpenVPN-server.csr サーバーの証明書要求書 -OpenVPN-server.key サーバーの鍵 -01.pem これらが今回作成したOpenVPNサーバーに関する鍵のファイルです。 証明書要求書とは、これを認証局に渡すと認証局は「認証局が署名した証明書」を作成してくれます。 といっても、今回は認証局のあるサーバーで証明書要求書を作成したので、同時に「認証局が署名した証明書」が 手に入るわけなのですが。 クライアントの鍵の作成と証明書の発行 次にクライアントの鍵を作成します。 OpenVPNサーバーに接続するクライアントは、鍵と証明書を使って自分が正しいOpenVPNに接続するユーザーであることを 保障します。 # cd /usr/share/doc/openvpn/examples/easy-key # ./build-key client1 ...++++++ ..........++++++ writing new private key to client1.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) [JP] State or Province Name (full name) [TOKYO] Locality Name (eg, city) [UENO] Organization Name (eg, company) [MyCA] Organizational Unit Name (eg, section) [] Common Name (eg, your name or your server s hostname) [] client1 Email Address [hogehoge.piyo.com] Please enter the following extra attributes to be sent with your certificate request A challenge password [] An optional company name [] Using configuration from /usr/share/doc/openvpn/examples/easy-rsa/openssl.cnf DEBUG[load_index] unique_subject = "yes" Check that the request matches the signature Signature ok The Subject s Distinguished Name is as follows countryName PRINTABLE JP stateOrProvinceName PRINTABLE TOKYO localityName PRINTABLE UENO organizationName PRINTABLE MyCa commonName PRINTABLE client1 emailAddress IA5STRING hogehoge@piyo.com Certificate is to be certified until Jun 28 00 24 51 2016 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 Common Nameにはclient1という名前をつけました。 OpenVPNを使うのであるならば、最初からいくつかのクライアントがあるほうが便利なので、 同時にもっとクライアントの鍵と証明書を作成しておきます。 # ./build-key client2 # ./build-key client3 # ./build-key client4 # ./build-key client5 # cd keys # ls 01.pem OpenVPN-server.key client2.key client5.csr 02.pem ca.crt client3.crt client5.key 03.pem ca.key client3.csr index.txt 04.pem client1.crt client3.key index.txt.attr 05.pem client1.csr client4.crt index.txt.attr.old 06.pem client1.key client4.csr index.txt.old OpenVPN-server.crt client2.crt client4.key serial OpenVPN-server.csr client2.csr client5.crt serial.old 最後にDiffieHellmanを作成します。 ちなみに、何のことかわかりませんorz 検索してみると、ものすごく難しい計算式を使って伝送路を暗号化して鍵のやり取りを安全に行うもの、らしい。 なんのこっちゃ。 とりあえず、必要らしいので、コマンドを打ちます。 # cd /usr/share/doc/openvpn/examples/easy-key # ./build-dh Generating DH parameters, 1024 bit long safe prime, generator 2 This is going to take a long time ............+................................... 長いので省略 すると、PCが計算を始めます。long timeかかるといいますが、GHz級のCPUならば1~5分くらいで処理が終わります。 今回作ったのは1024bitのDHらしいのですが、1024bitの暗号鍵じゃ不安だ!という人はopensslを使って2倍の2048bit鍵を使うことも できるらしいです。もちろん、時間も2倍以上かかります。 OpenVPNサーバーの設定 サンプルの設定ファイルがAPTでインストールされています。 サーバー用の設定ファイル(server.conf.gz)のサンプルがあるので、これを「/etc/openvpn」にコピーします。 # cd /usr/share/doc/openvpn/examples/sample-config-files # ls README loopback-client openvpn-startup.sh tls-home.conf client.conf loopback-server server.conf.gz tls-office.conf firewall.sh office.up static-home.conf xinetd-client-config home.up openvpn-shutdown.sh static-office.conf xinetd-server-config # cp server.conf.gz /etc/openvpn # cd /etc/openvpn # gunzip server.conf.gz # ls server.conf 次に、先ほど作成した認証局の証明書とサーバーの鍵とその証明書・DiffieHellmanをこのディレクトリにコピーします。 # cd /usr/share/doc/openvpn/example/easy-rsa/keys # cp ca.crt /etc/openvpn # cp dh1042.pem /etc/openvpn # cp OpenVPN-server.crt /etc/openvpn # cp OpenVPN-server.key /etc/openvpn 最後にOpenVPN設定ファイルを編集します。 編集する部分は、サーバーの証明書と鍵のファイル名の部分です。 デフォルトでは「server.crt」「server.key」となっていますが、これを「OpenVPN-server.crt」と「OpenVPN-server.key」に変更します。 また、サーバーが動作するプロセスのユーザーが「nobody」とグループが「nobady」になっていますが、Debianではnobodyというグループは 存在しません。ここは、groupの部分だけnobodyをnogroupに変更します。 それでは、早速サーバーを起動してみます。 # openvpn server.conf Sat Jul 1 23 18 39 2006 OpenVPN 2.0 i386-pc-linux [SSL] [LZO] [EPOLL] built on Apr 6 2006 Sat Jul 1 23 18 39 2006 Diffie-Hellman initialized with 1024 bit key Sat Jul 1 23 18 39 2006 TLS-Auth MTU parms [ L 1542 D 138 EF 38 EB 0 ET 0 EL 0 ] Sat Jul 1 23 18 39 2006 TUN/TAP device tun0 opened Sat Jul 1 23 18 39 2006 /sbin/ifconfig tun0 10.8.0.1 pointopoint 10.8.0.2 mtu 1500 Sat Jul 1 23 18 39 2006 /sbin/route add -net 10.8.0.0 netmask 255.255.255.0 gw 10.8.0.2 Sat Jul 1 23 18 39 2006 Data Channel MTU parms [ L 1542 D 1450 EF 42 EB 23 ET 0 EL 0 AF 3/1 ] Sat Jul 1 23 18 39 2006 GID set to nogroup Sat Jul 1 23 18 39 2006 UID set to nobody Sat Jul 1 23 18 39 2006 UDPv4 link local (bound) [undef] 1194 Sat Jul 1 23 18 39 2006 UDPv4 link remote [undef] Sat Jul 1 23 18 39 2006 MULTI multi_init called, r=256 v=256 Sat Jul 1 23 18 39 2006 IFCONFIG POOL base=10.8.0.4 size=62 Sat Jul 1 23 18 39 2006 IFCONFIG POOL LIST Sat Jul 1 23 18 39 2006 Initialization Sequence Completed このように表示されていれば、OpenVPNサーバーは正常に起動しています。 クライアントの設定 DebianでOpenVPNサーバーが動作したならば、次はクライアントの設定を行います。 今回は、クライアントにはWindowsを使うことにします。 WindowsのOpenVPNクライアントをOpenVPN公式サイトからダウンロードしてきます。 インストーラー付パッケージとZIPパッケージがありますが中身は同じなので、好きなほうをダウンロードします。 (インストーラーが楽かも) ZIPなら解凍した中にsample-configフォルダがありますので、その中のclient.ovpnを使って編集を行います。 インストーラーならば「C \Program Files\OpenVPN」の中にsample-configフォルダがあります。 まず設定を行う前に、サーバーで作った鍵をクライアントであるWindowsに移動する必要があります。 USBメモリを使うやフロッピーなどを使った安全な鍵交換ができれば望ましいのですが、 FTPやSFTPなどを使って鍵交換を行うこともできます。(安全でない場合があります) 自分はSFTPを使いました。 ca.crt client1.crt client1.key この3つのファイルをクライアントに渡します。 続いて、client.ovpnファイルの編集です。 これはサーバー側の設定にあわせなければならないところが多々ありますので気をつけて設定していきます。 サーバー側がデフォルトの設定ファイルならば、クライアントの設定ファイルは特にいじる箇所はありません。 「remote」の部分をOpenVPNサーバーのアドレスとポートに変更をします。 「ca」「cert」「key」をサーバーから鍵交換した認証局の証明書(ca.crt)とクライアントの証明書(client1.crt)とクライアントの鍵(client1.key) それぞれのファイルへのパスを入力します。 client.ovpnと同じディレクトリに入れておけば、相対パスで指定できるので手間が省けます。 では、早速クライアントをサーバーに接続してみましょう。 インストーラーでOpenVPNをインストールしているなら、「client.ovpn」ファイルの上で右クリックすると 「Start OpenVPN on this config file」という項目があるので、それを選択するとコマンドプロンプトが開き 自動的にその設定ファイルを使ってサーバーに接続してくれます。 ZIPパッケージを使った人は、自分でコマンドプロンプトから「openvpn 設定ファイル」とタイピングします。 Sat Jul 01 23 46 23 2006 SENT CONTROL [OpenVPN-server] PUSH_REQUEST (status=1) Sat Jul 01 23 46 23 2006 PUSH Received control message PUSH_REPLY,route 10.8. 0.1,ping 10,ping-restart 120,ifconfig 10.8.0.6 10.8.0.5 Sat Jul 01 23 46 23 2006 OPTIONS IMPORT timers and/or timeouts modified Sat Jul 01 23 46 23 2006 OPTIONS IMPORT --ifconfig/up options modified Sat Jul 01 23 46 23 2006 OPTIONS IMPORT route options modified Sat Jul 01 23 46 23 2006 TAP-WIN32 device [tap-1] opened \\.\Global\{D84A9639-2 171-4FC2-934E-B76891A111AD}.tap Sat Jul 01 23 46 23 2006 TAP-Win32 Driver Version 8.1 Sat Jul 01 23 46 23 2006 TAP-Win32 MTU=1500 Sat Jul 01 23 46 23 2006 Notified TAP-Win32 driver to set a DHCP IP/netmask of 1 0.8.0.6/255.255.255.252 on interface {D84A9639-2171-4FC2-934E-B76891A111AD} [DHC P-serv 10.8.0.5, lease-time 31536000] Sat Jul 01 23 46 23 2006 Successful ARP Flush on interface [2] {D84A9639-2171-4F C2-934E-B76891A111AD} Sat Jul 01 23 46 23 2006 TEST ROUTES 0/0 succeeded len=1 ret=0 a=0 u/d=down Sat Jul 01 23 46 23 2006 Route Waiting for TUN/TAP interface to come up... Sat Jul 01 23 46 24 2006 TEST ROUTES 0/0 succeeded len=1 ret=0 a=0 u/d=down Sat Jul 01 23 46 24 2006 Route Waiting for TUN/TAP interface to come up... Sat Jul 01 23 46 25 2006 TEST ROUTES 1/1 succeeded len=1 ret=1 a=0 u/d=up Sat Jul 01 23 46 25 2006 route ADD 10.8.0.1 MASK 255.255.255.255 10.8.0.5 Sat Jul 01 23 46 25 2006 Route addition via IPAPI succeeded Sat Jul 01 23 46 25 2006 Initialization Sequence Completed 正しく接続されるとこのように表示されます。 サーバーはVPNネットワークでは「10.8.0.1」であり、接続したクライアントは「10.8.0.6」です。 ためしに、10.8.0.1に向けてpingを放ってみてください。 きちんと応答があるはずです。 ちなみに、接続している間はコマンドプロンプトは開いたままにしてください。 閉じると同時に接続も切れます。ウィンドウがあって気持ち悪いという人は、OpenVPNGUIというツールが あります。このツールを使うと、プロンプトの変わりにタスクトレイにOpenVPNが収まります。 コマンドプロンプトの場合、接続をきりたい場合はF4キーを押します。 Debian(etch)対応(2008/8/26 追記) Debian(etch)ではOpenVPN Version2.0.xを提供しています。 OpenVPNを構築するための方法はsargeの頃と特に変わっていません。 aptitudeについて Debian(etch)ではaptを使用する際のコマンドは「apt-get」ではなく「aptitude」を推奨している。 今後のDebianでは、aptitudeを使うことになっていくだろう。 ただし既にapt-getを使ってパッケージをインストールしたことのあるシステムではaptitudeを使わない方がよい。 aptitudeは完全なるapt-getとの互換性は持たないため、パッケージデータベースを壊してしまうおそれがあります。 もし、新たにシステムを構築しそこでDebian(etch)以降を使うならば、aptitudeを使います。 2038年問題(2008/8/26 追記) Debian(serge)及びDebian(etch)に含まれるOpenSSLパッケージのopensslは有効期限が2038年以降となる証明書を作成することはできません。(一般に2038年問題とよばれるもの。C言語のtime関数を使用したプログラムはこの問題にぶつかる) 実際に2038年を超える有効期限を指定して証明書(下記は、認証局の証明書)を作成すると、 Certificate Data Version 3 (0x2) Serial Number 0 (0x0) Signature Algorithm sha1WithRSAEncryption Issuer C=JP, ST=Tokyo, O=myoffice, OU=manage, CN=hoge.jp/emailAddress=admin@hoge.jp Validity Not Before Aug 25 04 17 12 2008 GMT Not After Jul 12 21 48 56 1902 GMT Not After (有効期限)が「1902年」となってしまう。(つまり、カウンタが一周してしまう) 現時点では、この問題についての対策は取られていないため、私たちが今できる対策としては2038年を超えないように有効期限を設定することとなる。 ちなみに、有効期限が(上記のように)現在時刻を越えた認証局の証明書を使おうとすると entry 1 invalid expiry date openssl こんな感じのエラーが出力され、証明書の作成に失敗する。 参考 OpenVPN How to
https://w.atwiki.jp/memcache/pages/58.html
概要 動作環境TUN/TAPデバイスについて 環境構築静的鍵(static key)鍵の生成(Windows) 鍵の生成(Unix) 設定ファイルの作成 X.509 PKI前準備 プライベートCAの構築とCA証明書・CA秘密鍵の作成 サーバ証明書・サーバ秘密鍵の作成 クライアント証明書・クライアント秘密鍵の作成 DHパラメータの作成 設定ファイルの作成 (server.conf) 設定ファイルの作成 (client.conf) FAQクライアント証明書・鍵生成エラー クライアント同士を見えるようにする クライアントの全てのトラフィックをサーバ経由にする 複数のVLANを接続するサーバ設定ファイル LinuxのIPフォワード設定 認証 link 概要 VPNクライアント/サーバを構成する方法は以下の2種類。 方法 説明 静的鍵(static key) 秘密鍵を用いる方法。クライアント/サーバは1 1のみ X.509 PKI 証明書と秘密鍵を使った公開鍵基盤を用いる方法 OpenVPNサーバは、Listenポートとしてudp 1194(default)を利用する。 動作環境 OpenVPNを利用するのに必要なソフトウェアは以下の3つ。 OpenSSL LZO圧縮 TUN/TAPデバイス(Linuxカーネルの機能) cf http //www.komoto.org/vpn/openvpn.html 組み込みLinuxカーネルの構築時にこれだけは知っておかなければならない項目 Linux Kernel 2.4 Documentation TUN/TAPデバイスについて 以下のモジュールをカーネル構築時に有効とする。 Network device support ARCnet devices Universal TUN/TAP device driver support 環境構築 静的鍵(static key) 環境構築の大まかな手順は以下の通り。 鍵の生成 設定ファイルの作成 設定ファイルの拡張子はUnixとWindowsで異なる。 Windowsでの設定ファイル (server.ovpn, client.ovpn) Unixでの設定ファイル (server.conf, client.conf) 以下の環境を構築する。 PC VPN上IPアドレス IPアドレス OpenVPNサーバ 10.8.0.1 192.168.0.1 OpenVPNクライアント 10.8.0.2 192.168.0.2 鍵の生成(Windows) スタートメニューから"Generate a static OpenVPN key"を実行するとconfigフォルダにkey.txtが生成される。 鍵の生成(Unix) 以下のコマンドを実行する。 openvpn --genkey --secret key.txt 設定ファイルの作成 サーバ設定ファイル (server.conf) dev tun ifconfig 10.8.0.1 10.8.0.2 secret key.txt クライアント設定ファイル (client.conf) remote 192.168.0.1 dev tun ifconfig 10.8.0.2 10.8.0.1 secret key.txt cf. Static Key Mini-HOWTO 静的鍵 Mini-HOWTO WindowsでのOpenVPN(1) X.509 PKI Unixを前提とする。環境構築の大まかな手順は以下の通り。 前準備:設定ファイルのひな形を/etc/openvpnへコピー プライベートCAの構築とCA証明書・CA秘密鍵の作成 サーバ証明書・サーバ秘密鍵の作成 クライアント証明書・クライアント秘密鍵の作成 DHパラメータの作成 この作業で作成するファイルは以下の通り。 ファイル名 説明 配置PC ca.crt CA証明書 サーバ・クライアント ca.key CA秘密鍵 server.crt サーバ証明書 サーバ server.key サーバ秘密鍵 サーバ client*.crt クライアント証明書 クライアント client*.key クライアント秘密鍵 クライアント dh1024.pem DHパラメータファイル サーバ 前準備 以後、OpenVPNサーバ側で作業を行う。 以下のファイル・ディレクトリを/etc/openvpnへコピーする。 server.conf (クライアントには不要) client.conf (サーバには不要) easy-rsa/ (クライアントには不要) 設定ファイルのひな形は以下のディレクトリにある。(ディストリビューションによって異なる) /usr/share/doc/openvpn-2.1.4/sample-config-files や /usr/share/doc/openvpn/examples/sample-config-files (Ubuntuの場合) など。 easy-rsaは以下のディレクトリ。これもディストリビューションによって異なる。 /usr/share/openvpn/easy-rsa や /usr/share/doc/openvpn/examples/easy-rsa (Ubuntuの場合) など。 プライベートCAの構築とCA証明書・CA秘密鍵の作成 以下の作業を行う。 /etc/openvpn/easy-rsa/2.0/varsファイルの修正 build-caの実行 /etc/openvpn/easy-rsa/2.0/varsの修正内容 export KEY_COUNTRY="JP" ←国名 export KEY_PROVINCE="Tokyo" ←都道府県名 export KEY_CITY="suginami" ←区市町村名 export KEY_ORG="xxxxxxx" ←団体名 export KEY_EMAIL="xxxxxx@gmail.co.jp" ←メールアドレス 以下の手順でbuild-caを実行する。 # cd /etc/openvpn/easy-rsa/2.0/ # sudo bash # source ./vars # ./clean-all # ./build-ca ...省略... Country Name (2 letter code) [JP] ←Enterを入力 State or Province Name (full name) [Tokyo] ←Enterを入力 Locality Name (eg, city) [suginami] ←Enterを入力 Organization Name (eg, company) [xxxxxxx] ←Enterを入力 Organizational Unit Name (eg, section) [] ←Enterを入力 Common Name (eg, your name or your server s hostname) [xxxx CA] ←Enterを入力 Email Address [xxxxxx@gmail.co.jp] ←Enterを入力 サーバ証明書・サーバ秘密鍵の作成 以下の作業を行う。 build-key-serverの実行(サーバ証明書とサーバ秘密鍵の作成) 以下の手順でbuild-key-serverを実行する。 # cd /etc/openvpn/easy-rsa/2.0/ # sudo bash # source ./vars # ./build-key-server server ...省略... Country Name (2 letter code) [JP] ←Enterを入力 State or Province Name (full name) [Tokyo] ←Enterを入力 Locality Name (eg, city) [suginami] ←Enterを入力 Organization Name (eg, company) [xxxxxxx] ←Enterを入力 Organizational Unit Name (eg, section) [] ←Enterを入力 Common Name (eg, your name or your server s hostname) [server] ←Enterを入力 Email Address [xxxxxx@gmail.co.jp] ←Enterを入力 ...省略... A challenge password [] ←Enterを入力 An optional company name [] ←Enterを入力 ...省略... Sign the certificate? [y/n] y ←「y」を入力 ...省略... 1 out of 1 certificate requests certified, commit? [y/n]y ←「y」を入力 クライアント証明書・クライアント秘密鍵の作成 build-key-passの実行 以下の手順でbuild-key-passを実行する。 # cd /etc/openvpn/easy-rsa/2.0/ # sudo bash # source ./vars # ./build-key-pass client01 ←クライアントが複数台ならclient02、client03のように変えて台数分実行します ...省略... Enter PEM pass phrase ←パスフレーズを入力 Verifying - Enter PEM pass phrase ←パスフレーズを再入力 ...省略... Country Name (2 letter code) [JP] ←Enterを入力 State or Province Name (full name) [Tokyo] ←Enterを入力 Locality Name (eg, city) [suginami] ←Enterを入力 Organization Name (eg, company) [xxxxxxx] ←Enterを入力 Organizational Unit Name (eg, section) [] ←Enterを入力 Common Name (eg, your name or your server s hostname) [client01] ←Enterを入力 Email Address [xxxxx@gmail.co.jp] ←Enterを入力 ...省略... A challenge password [] ←Enterを入力 An optional company name [] ←Enterを入力 ...省略... Sign the certificate? [y/n] y ←「y」を入力 ...省略... 1 out of 1 certificate requests certified, commit? [y/n]y ←「y」を入力 DHパラメータの作成 build-dhの実行 以下の手順でbuild-dhを実行する。 # cd /etc/openvpn/easy-rsa/2.0/ # ./build-dh 設定ファイルの作成 (server.conf) 以下の設定内容に注意。 ca cert key dh サンプル server.conf 設定ファイルの作成 (client.conf) 以下の設定内容に注意。 ca cert key サンプル client.conf FAQ クライアント証明書・鍵生成エラー クライアント生成スクリプトbuild-key-passを実行する際、証明書(certificate)への署名時に以下のエラーが発生することがある。 ... Using configuration from /etc/openvpn/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 Tokyo localityName PRINTABLE ひみつ organizationName PRINTABLE ひみつ commonName PRINTABLE client1 -- ここ! emailAddress IA5STRING ひみつ Certificate is to be certified until Feb 18 04 22 38 2022 GMT (3650 days) Sign the certificate? [y/n] y failed to update database TXT_DB error number 2 ... 以前作成したクライアント証明書と鍵のcommonNameは以下のファイル(TXT_DB)に保存されている。作成済みcommonNameのクライアント証明書・鍵を生成するとこのエラーが発生する。このファイルの該当行を削除するとこの問題を回避可能。 /etc/openvpn/easy-rsa/2.0/keys/index.txt クライアント同士を見えるようにする サーバ設定ファイル(server.conf)で以下のコマンドを追記する。 client-to-client クライアントの全てのトラフィックをサーバ経由にする push "redirect-gateway" 複数のVLANを接続する 手順は大きく以下の2つ。 サーバ設定ファイルにクライアントへpushするルートを追加 LinuxのIPフォワード設定 サーバ設定ファイル osaka.conf sapporo.conf LinuxのIPフォワード設定 echo 1 /proc/sys/net/ipv4/ip_forward 認証 以下の認証方法が利用可能。 クライアント証明書 (default) LDAP認証 Radius認証 sqlite認証 link OpenVPNで手軽にVPN構築 (@IT) OpenVPN.JP OpenVPN 2.0 HOWTO 日本語訳
https://w.atwiki.jp/windows8/pages/13.html
Windows8 導入手順 1.インストーラーパッケージを入手する ここからダウンロードする。保存先はどこでもよい。(管理人はD に入れました。) 2.Deamon Toolsを導入する。
https://w.atwiki.jp/parepan/pages/182.html
参考サイト http //www.stackasterisk.jp/tech/systemConstruction/openVpn01_01.jsp
https://w.atwiki.jp/ddwrt_openwrt/pages/40.html
OpenWrtで OpenVPN(1) 動作環境 OpenVPN を使用し、WAN側からVPN経由でLANに接続する環境を作ります。 ※機能やセキュリティに関して充分に検討されていません。あくまでテスト用とお考え下さい。 1.サーバ環境 NETGEAR WNDR4300 OpenWrt Barrier Breaker 14.07 openvpn-openssl 2.3.4-1 (Open source VPN solution using OpenSSL) WAN接続 PPPoE TUNデバイスを用いたトンネルモード 2.ネットワーク環境 OpenVPNサーバアドレス 192.168.1.254/24 LAN側ネットワークアドレス 192.168.1.0/24 VPNアドレス 192.168.9.0/24 (※通常は10.x.x.0とするようです) 3.クライアント環境 Android 4.1.2 クライアントアプリ OpenVPN for Android (Arne Schwabe製) https //play.google.com/store/apps/details?id=de.blinkt.openvpn Windows7/8.1 クライアントアプリ vpnux Client(プラムシステムズ(株)) https //www.plum-systems.co.jp/vpnux-client/ ※窓の杜 http //www.forest.impress.co.jp/library/software/vpnuxclient/ -以上-
https://w.atwiki.jp/ddwrt_openwrt/pages/42.html
OpenWrtで OpenVPN(3) OpenVPNのインストールと環境設定 1.パッケージのインストール openvpn-openssl をインストールします。 2.コンフィグ修正 /etc/config/openvpn を修正します。 (TUN経由,UDP利用,Serverモード) # vi /etc/config/openvpn 以下は修正したコンフィグ中で有効な行の一覧です。 デフォルトから変更した箇所にコメントを付しています。 config openvpn sample_server option enabled 1 ←有効に option port 1194 option proto udp option dev tun option ca /etc/openvpn/ca.crt option cert /etc/openvpn/server.crt option key /etc/openvpn/server.key option dh /etc/openvpn/dh1024.pem option server "192.168.9.0 255.255.255.0" ←VPNネットワーク option ifconfig_pool_persist /tmp/ipp.txt list push "route 192.168.1.0 255.255.255.0" ←LAN側ネットワーク list push "redirect-gateway def1" ←全トラフィックをVPN経由で(?) list push "dhcp-option DNS 8.8.8.8" ←不要(?) list push "dhcp-option DNS 8.8.4.4" ← 〃 option keepalive "10 120" option cipher AES-128-CBC ←デフォルトはBlowfish option comp_lzo yes option persist_key 1 option persist_tun 1 option status /tmp/openvpn-status.log option verb 3 3.証明書・鍵の格納 /etc/openvpn に以下の作成済みの証明書や鍵などをコピーします。 ca.crt CA証明書 server.crt サーバ証明書 server.key サーバ秘密鍵 dh1024.pem DHパラメータ ※server.key の権限は"600"にしておかないとOpenVPN起動時にwarningが出ます。 他のファイルも600で多分問題ないと思います。 4.OpenVPNの再起動とログの確認 LuCIの System→Startup でOpenVPNの再起動をします。 LuCIの Status→System Log でOpenVPNのログを確認します。 またはコンソールから以下のコマンドで再起動とログの確認します。 # /etc/init.d/openvpn restart # logread 接続中のクライアントは以下のログで確認できます。 # cat /tmp/openvpn-status.log -以上-
https://w.atwiki.jp/kagiwada/pages/48.html
Windows7について、調べてみた。 RC 版をインストールする準備 必要なもの *空の DVD *DVD 作成プログラムがインストールされた PC *テスト用 PC。推奨ハードウェアの最小要件を満たすもの (この要件 は Windows 7 RC 版固有のもので、Windows 7 の最終版では変更される 可能性があります)。 o1 GHz 32 ビットまたは 64 ビットのプロセッサー o1 GB 以上のシステム メモリー o16 GB の空きハード ディスク領域 o128 MB のメモリーを搭載した DirectX 9 をサポートするグラフィッ クス (Aero テーマを有効にする場合に必要) oDVD-R/W ドライブ oインターネット アクセス (Windows 7 RC 版のダウンロードと更新プ ログラムの入手に必要) メモ Windows 7 の一部の機能 (テレビ放送の視聴や録画を行う機能、 またはユーザーの「タッチ」によるナビゲーションなど) には、高度な ハードウェアまたは追加のハードウェアが必要になる場合があります。 アクセス数| - | 名前 コメント
https://w.atwiki.jp/wiki1_misomayo/pages/10.html
参考ページ OpenVPN OpenVPN 彼の野原 その言葉、遅すぎたよ……・・・Debian環境 OpenVPN 設定メモ OpenVPNを使ったVPNの構築 NE(ねとわーくえんぎにあ)日記・・・黒箱でのOpenVPN VPN ぱぱんだ日記 OpenVPN基本編 Vtun 長野で働く専務のblog LinuxまたはFreeBSDでVPNを構築するための手順書 (VTUN編) Virtual Tunnels over TCP/IP(Virtual TUNnel、VTun) ★VTUNによるVPN構築 VPN(vtun) VPN技術の比較・・・VPN比較、vtunによる接続例があります。
https://w.atwiki.jp/shirayuu/pages/19.html
OpenVPN OpenVPN は、フリーのVPN。 OpenVPN How To - 日本語 目次 OpenVPN 目次 OpenVPN のインストール OpenVPN の認証設定前準備 認証局と秘密鍵の作成 サーバの認証局と鍵の作成 クライアント用の認証局と鍵の作成 DH パラメータ ブリッジとか仮想NICとかの作成tap と bridge のロードと作成tap と bridge のロード tap0 と bridge0 の作成 OpenVPN のインストール いつも通りの手順でmake # cd /usr/ports/security/openvpn # make # make install OpenVPN の認証設定 OpenVPN 認証の設定を行う。 OpenVPN は、 SSL を使って鍵認証を行っている。 前準備 まずは、そこら辺のサンプルを適当な場所に移す。(サンプルには手をつけない) # mkdir -p /usr/local/path/openvpn/ # cp -vr /usr/local/share/doc/openvpn/easy-rsa/* /usr/local/path/openvpn/ 彫り込むディレクトリは適当で良い。 認証局と秘密鍵の作成 実際に編集していく # cd /usr/local/path/openvpn/ まずは、vars を 編集する。 vars の下の方にある export KEY_COUNTRY=JP # 国名 export KEY_PROVINCE=TOKYO # たとえば、都道府県 export KEY_CITY=TOKYO # たとえば、市町村 export KEY_ORG="foobar" # これはよくわからん export KEY_EMAIL="me@myhost.mydomain" # 連絡先 これらを適当なものに編集。 これらの設定が今後の認証局作成、鍵作成に使われる基本的な値となる。 # . ./vars # ./clean-all # ./build-ca ~ 途中略 ~ Country Name (2 letter code) [JP] State or Province Name (full name) [TOKYO] Locality Name (eg, city) [TOKYO] Organization Name (eg, company) [foobar] Organizational Unit Name (eg, section) [] Common Name (eg, your name or your server s hostname) [] OpenVPN Test Email Address [me@myhost.mydomain] 注意するべき点は、Common Name にユニークな名前を入れる必要があること。 すると、keys (/usr/local/path/openvpn/keys) に認証鍵がいくつか作成される。 ちなみに、ファイル名と用途の関係はこんな感じ。(OpenVPN 2.0 に記述されている。) ファイル名 用途 ca.crt 認証局 証明書 ca.key 認証局 秘密鍵 index.txt 証明書リスト serial シリアル記録用ファイル この中で流出してはならないのは、ca.key。 秘密鍵なので厳重に保管しましょう。 サーバの認証局と鍵の作成 サーバ鍵を作成するには、 # ./build-key-server server Country Name (2 letter code) [JP] State or Province Name (full name) [TOKYO] Locality Name (eg, city) [TOKYO] Organization Name (eg, company) [foobar] Organizational Unit Name (eg, section) [] Common Name (eg, your name or your server s hostname) [] server Email Address [me@myhost.mydomain] Please enter the following extra attributes to be sent with your certificate request A challenge password [] An optional company name [] Sign the certificate? [y/n] y 1 out of 1 certificate requests certified, commit? [y/n]y Sign the certificate? と 1 out of 1 certificate requests certified, commit? で確認と署名するか聞いてくるのでy。 ここで注意すべき点も、Common Name はユニークな名前であること。 build-key-server の引数と同じで良いと思います。 これで、サーバ関連の認証局と鍵ができあがる。 keys に、server.crt,server.csr,server.key などが作成されているか確認する。 クライアント用の認証局と鍵の作成 クライアント用の認証と鍵作るときは、 # ./build-key client1 # ./build-key-server server Country Name (2 letter code) [JP] State or Province Name (full name) [TOKYO] Locality Name (eg, city) [TOKYO] Organization Name (eg, company) [foobar] Organizational Unit Name (eg, section) [] Common Name (eg, your name or your server s hostname) [] client1 Email Address [me@myhost.mydomain] Please enter the following extra attributes to be sent with your certificate request A challenge password [] An optional company name [] Sign the certificate? [y/n] y 1 out of 1 certificate requests certified, commit? [y/n]y サーバ用の認証局を作ったときと同じ。 Common Name の名前は、ユニークなものでなければならない。 クライアント用の認証局と鍵は、クライアント分作る必要がある。 同じ鍵を渡してもよいが同時に利用できない。 DH パラメータ 最後に DH パラメータを作る # ./build-dh 結構時間かかります。まあ、適当に暇つぶしてください。 これで、認証局、鍵の作成は終了あとは、ブリッジとかの設定。 ブリッジとか仮想NICとかの作成 OpenVPN は、ブリッジモードかルーティングモードかを選択できる。 今回は、同じネットワーク内に入りたいのでブリッジモードにする。 tap と bridge のロードと作成 tap と bridge のロード OpenVPN のブリッジモードを使うためには、if_tap0 とif_bridge をロードする必要がある。 VPN に接続するためにtap を使い、tap を使うためにif_tap0 をロードする。 ブリッジするために、if_bridge を使う。 (bridge をロードしてもできるが、if_bridge の方が新しいらしい) # kldload if_tap # kldload if_bridge tap0 と bridge0 の作成 これまでの手順の流れで/dev/tap0 があればを行えばよいが、ないと思うので # openvpn openvpn --dev tap0 で、 Control + c で強制終了させ、tap0 を作る。 bridge0 は、 # sudo ifconfig bridge0 create で作る。