ゼロ円でできるインターネットVPN
OpenVPNで手軽にVPN構築
Shin.鶴長
2008/5/2
OpenVPNのインストール(2)
■サーバ側の作業
続いて、サーバ側だけで必要となる作業を実施します。
VPNクライアントがサーバ側セグメントのネットワーク機器と通信するには、クライアントに割り当てられたIPアドレスがサーバを越えて通信できるよう、経路制御を行う必要があります。そのためにはOpenVPNサーバのパケット転送を有効にし、IPマスカレードを実装します(注2)
注2:iptablesやファイアウォールが有効になっている場合には、OpenVPNのサービスで使用するUDPまたはTCPポート1194番を通過するよう設定するか、iptablesやファイアウォールの起動を無効化する必要があります。 |
・LinuxでIPマスカレード機能を使用する場合
# iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE |
・Linuxのインターフェイス間のIPパケット転送を有効にする場合(ただし、再起動でリセットされます)
# echo 1 > /proc/sys/net/ipv4/ip_forward |
・再起動後もIPパケット転送を有効にさせる場合は、さらに「/etc/sysctl.conf」ファイルを修正
...省略... |
ただし、これだけでは、VPNクライアントからサーバセグメントへの疎通が可能になっても、サーバセグメントからVPNクライアントへの送信はできません。10.8.0.0/24に対するパケットをOpenVPNサーバ(10.0.0.128)に送信するよう、デフォルトルータや各ネットワーク機器に経路情報を設定する必要があります。経路情報の設定方法は各機器で手順が異なるためここでは言及しませんが、各マニュアルに従い設定するようにします。
次に、CA証明書、サーバ証明書、サーバ秘密鍵、DHパラメータを/etc/openvpn/下にコピーします。続けて秘密鍵ファイルのパーミッションを変更し、鍵自身が盗聴改ざんされないように対策します。
・CA証明書、サーバ証明書、サーバ秘密鍵、DHパラメータの準備
# cd /etc/openvpn/ |
最後にserver.confを修正します。
なおOpenVPN起動時には、/etc/openvpn/○○.confファイルが自動で読み込まれるため、/etc/openvpnディレクトリにはserver.conf以外に○○.confファイルを置かないようにします。前半の「サーバ・クライアントに共通な作業」でclient.confを誤ってコピーしてしまった場合は、削除してください。
・「/etc/openvpn/server.conf」の修正
port 1194 ←サービスポートの指定 |
server.confファイルの修正が完了したところで、サービスを起動します。サービスが正常に起動しない場合は/var/log/openvpn-status.log、/var/log/openvpn.log、/var/log/messagesファイルに出力されるエラー内容に従い対策を施します。
・OpenVPNサーバの起動
# /etc/init.d/openvpn start |
・OpenVPNサーバの停止
# /etc/init.d/openvpn stop |
・正常に起動した場合には/var/log/openvpn.logに以下のような1行が出力される
Wed Mar 19 09:50:24 2008 Initialization Sequence Completed |
■クライアント側の作業
続いて、クライアントの設定を行います(注3)。複数のVPNクライアントがある場合は同様の作業を繰り返し行います。
サーバで作成したCA証明書、クライアント証明書、クライアント秘密鍵をクライアントの/etc/openvpn/ディレクトリにコピーします。コピー完了後、/etc/openvpn/ディレクトリに次のようなファイルが用意されていることを確認します。ファイル確認後、秘密鍵のパーミッションを変更し、鍵自身が盗聴・改ざんされないよう対策します。
注3:iptablesやファイアウォールが有効になっている場合には、OpenVPNのサービスで使用するUDPまたはTCPポート1194番を通過するよう設定するか、iptablesやファイアウォールの起動を無効化する必要があります。 |
・「/etc/openvpn/」ディレクトリ下のファイル
ca.crt ←CA証明書 |
・秘密鍵のパーミッション変更
# chmod og-rx /etc/openvpn/*.key |
client.confファイルを次のように修正し、その後サービスを起動します。
なお、OpenVPN起動時には/etc/openvpn/○○.confファイルが自動で読み込まれるため、/etc/openvpnディレクトリには、cliet.conf以外に○○.confファイルを置かないようにします。前半の「サーバ・クライアント共通に必要な作業」でserver.confを誤ってコピーしている場合は削除します。
・「/etc/openvpn/client.conf」の修正
client ←クライアントであることを明示する |
OpenVPNを起動してVPN接続を開始するには、initスクリプトを利用するか、直接openvpnコマンドを実行します。正常に起動しない場合は/var/log/messagesファイルに出力されるエラー内容に従い対策を施します。
・OpenVPN接続と切断(initスクリプトを利用する場合)
# /etc/init.d/openvpn start |
・OpenVPNサーバの停止
# /etc/init.d/openvpn stop |
・VPN接続が確立した場合には/var/log/messagesファイルに以下のような1行が出力される
Mar 19 12:22:57 ○○ openvpn[11905]: Initialization Sequence Completed |
疎通はできた? 動作確認
では、OpenVPNクライアントからサーバやサーバ側セグメントのネットワーク機器にpingを打つなどして、VPN接続が成功していることを確認します。もし疎通ができないようなら、ifconfigやnetstatなどのコマンドで、サーバからIPアドレスが割り当てられ、経路設定が行われているかを確認してください。
・ネットワークインターフェイスを確認する
# /sbin/ifconfig |
・経路情報を確認する
# netstat -er |
◆
以上、OpenVPNを使ったインターネットVPNの設定方法を解説しました。
インターネットVPNは、会社にいながら自宅のPCとPeer to Peerで接続できるなど、さまざまな用途に利用できますが、VPNの導入には、Linuxの知識だけでなくネットワークの知識が求められます。
また、使用する場所やポリシーなどに十分配慮する必要があります。繰り返しになりますが、VPN上のパケットは暗号化されているため、IPSやファイアウォールでパケットの中身を判断することができません。そのため多くの場合、社内での勝手なVPNの使用は禁止されています。OpenVPN導入の際には、ネットワーク管理者に相談するなど、コンプライアンスに違反しないよう注意しながら進めてください。
4/4 |
|
|
||||||||
|
Linux Squareフォーラム 仮想化技術関連記事 |
連載:実践! Xenで実現するサーバ統合 有力な仮想化技術として注目を集めるようになった「Xen」。このXenを活用してサーバ統合を実践していく手順を具体的に紹介します |
|
特集:サーバの仮想化技術とビジネス展開の可能性 jailからUML/VMwareまで 1台のマシンで複数のサーバを動かす「仮想化技術」。VMwareやUMLの登場により、WebサイトだけでなくOS自体を仮想化できるようになった |
|
特集:仮想化技術のアプローチと実装 VMwareから要注目技術Xenまで 1台のサーバで複数の仮想マシンを実行する仮想化技術は、空間コストを引き下げる可能性を持つ。最新の仮想化技術を概観してみよう |
|
特集:仮想OS「User Mode Linux」活用法 技術解説からカーネルカスタマイズまで Linux上で仮想的なLinuxを動かすUMLの仕組みからインストール/管理方法やIPv6などに対応させるカーネル構築までを徹底解説 |
|
特集:仮想化技術の大本命「Xen」を使ってみよう インストール & Debian環境構築編 高いパフォーマンスで本命の1つとなった仮想マシンモニタ「Xen」。日本語による情報が少ないXenを、実際に動かしてみよう |
|
特集:仮想化技術の大本命「Xen」を使ってみよう Xen対応カスタムカーネル構築編 Xen環境およびその上で動作する仮想マシン用カーネルを自分で構築しよう。これにより、自由にカスタマイズしたカーネルを利用できる |
|
特集:IPv6、UML、セキュリティ機能の統合 全貌を現したLinuxカーネル2.6[第4章] 今回は、これまでに紹介し切れなかった機能を一気に紹介する。これを読めば、カーネル2.6の正式リリースが楽しみになるだろう |
|
Linux Squareプロダクトレビュー VMware Workstation 4 PC/AT互換機エミュレータとして不動の地位を築いたVMware。その新バージョンがリリースされた。新機能を早速試してみよう |
|
古くて新しい「サーバ仮想化技術」の行方 サーバ仮想化を実現するための技術がソフトウェア、ハードウェアの両面で出そろってきた。ハイパーバイザーのさらなる高速化に向けた動きを紹介する |
|
Linux Squareフォーラム全記事インデックス |
- 【 pidof 】コマンド――コマンド名からプロセスIDを探す (2017/7/27)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、コマンド名からプロセスIDを探す「pidof」コマンドです。 - Linuxの「ジョブコントロール」をマスターしよう (2017/7/21)
今回は、コマンドライン環境でのジョブコントロールを試してみましょう。X環境を持たないサーバ管理やリモート接続時に役立つ操作です - 【 pidstat 】コマンド――プロセスのリソース使用量を表示する (2017/7/21)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、プロセスごとのCPUの使用率やI/Oデバイスの使用状況を表示する「pidstat」コマンドです。 - 【 iostat 】コマンド――I/Oデバイスの使用状況を表示する (2017/7/20)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、I/Oデバイスの使用状況を表示する「iostat」コマンドです。
|
|