blog

LinuxでOpenVPNを使って安全なリモート接続を確立する方法

シンプルな暗号化トンネルを通してリモートコンピュータを自宅サーバにログインさせる方法についてお話しました。今日は、より高度な部分、例えばブート時に OpenVPN が起動するように設定することで、サー...

Mar 23, 2025 · 6 min. read
シェア

Network Managerへの統合

Network Managerは優れたOpenVPNクライアントです。プラグイン network-manager-openvpn をインストールするだけです。前の投稿で使用した設定を続けてください。Network Managerの設定インターフェースを開き、"New VPN Connection "ウィンドウに移動します。KDEとGNOMEではレイアウトが少し異なりますが、一般的な情報は同じです。開始するには、図1に示すように、VPN接続タイプとしてOpenVPNを選択する必要があります。オプションとしてOpenVPNが表示されない場合は、プラグインがインストールされていません。

図1:Network Manager上の新しいOpenVPNクライアント

図2はメイン設定画面です。上から順に

  • 接続名、何でも結構です。
  • リモートサーバーへのゲートウェイ。
  • ドロップダウンメニューから「Static Key」を選択します。
  • 次に、ファイルブラウザで静的キーファイルを探します。
  • これは方向キーではないので、Key DirectionはNoneに設定されています。
  • リモート IP とローカル IP は、前のセクションで設定した仮想 OpenVPN アドレスで、それぞれ /etc/openvpn/studio.conf と /etc/openvpn/shop.conf ファイルから取得できます。
  • パスワードを設定する必要はないので、「パスワードを表示する」チェックボックスは空です。
  • VPN接続は「誰でも利用可能」または「あなただけが利用可能」です。

図 2:Network Manager 構成 OpenVPN クライアントのメイン画面

OpenVPNの起動

手動で OpenVPN をオンにするのは簡単ですが、もっと簡単にして、サーバの再起動後に自動的に起動するようにしたいかもしれません。Debian/Ubuntuやほとんどのディストリビューションでは、OpenVPNはインストール時に起動するように設定されています。そのため、システムを再起動するか、以下で説明するようにバックグラウンドプロセスを開始する必要があります:

$ sudo /etc/init.d/openvpn start $ sudo service openvpn start  

最初のコマンドは古いブート方法で、2 番目のコマンドは "service" コマンドを使用します。2番目のコマンドは "service" コマンドを使用します。"service" コマンドは Red Hat ディストリビューションで初めて登場しました。

UbuntuはUpstartを使ってサービスプロセスを管理し、Debainは古いSysVを使い、Fedoraは "systemd "を使います。etc/openvpn ディレクトリに複数の OpenVPN サービスが設定されている場合、"systemd" コマンドで必要なものを起動できます:

# systemctl start openvpn@studio.service  

ここでの「studio.service」は、前の例の /etc/openvpn/studio.conf で設定したサービスに対応します。これらのメソッドによって開始されるバックグラウンドプロセスは、システムの再起動後に期限切れとなるため、前のセクションで説明したスタートアップメソッドと同様に、これらのメソッドは OpenVPN を一度だけ実行します。OpenVPN プロセスの起動は chkconfig に任せることができます:

# service openvpn start # chkconfig openvpn on  

強化された接続性

OpenVPNは、サービスがダウンしても持続的な接続を維持できるほど堅牢です。サーバとクライアントの .conf ファイルに以下の2つの属性を追加することで、この接続をさらに安定させることができます:

persist-tun persist-key  

この2つの属性は、電源保護や移動の必要性によってコンピュータが頻繁にOpenVPNから切断されるラップトップユーザーにとって非常に便利です。

さて、どうしましょう?

すべてのセットアップが完了し、サービスは問題なく動作しています。もしあなたがこれまで OpenSSH を使ってリモートサーバに接続していたのなら、OpenVPN を使ってリモートマシンにログインし、その上でアプリケーションを実行すればいいという考え方になっているはずです。そんなことをしたら、OpenVPNを無駄にしてしまいます。OpenVPNはサーバやLANへの仮想イーサネットケーブルで、分厚い暗号化で包まれていると考えることができます。OpenVPNが提供するトンネル上では、暗号化されたサービスでも暗号化されていないサービスでも実行することができ、必要なのはファイアウォールのポートだけです。

そのため、OpenVPNトンネルを使用してSSH接続を確立し、サーバーにリモート接続してサーバー上のアプリケーションを実行することができます。ファイル共有やウェブアプリケーションなどのネットワークリソースにアクセスできます。コンピュータを強制的にVPNトンネル経由でネットワークにアクセスさせることもできますが、ローカル・ネットワークとVPNネットワークの両方を使えるようにしたいのではないでしょうか。

ですから、ラップトップでネットサーフィンしたり、SSHを使ったり、好きなことをして、好きなネットワークに入ることができます。OpenVPNトンネルを使って何かしたいときは、トンネルを開いてIPアドレスを入力するだけです:

$ ssh carla@.1 

ウェブサービスによっては、ウェブブラウザがOpenVPNのIPアドレスにアクセスし、ログインするだけという簡単なものもあります。例として、私はテスト用に自宅サーバーで複数のウェブサービスを動かしていますが、http://...経由でDrupalにアクセスできます。/alでDrupalにアクセスし、http://.../私のコンピューターには優れたGUI FTPクライアントgFTPがあるので、IPアドレス、ユーザー名、パスワードを入力するだけでFTPサーバーにアクセスできます:

$ ftp .1 21 

MySQLデータベースをリモートで管理することができます:

$ mysql -h .1 -u admin -p 

ですから最も重要なことは、遊びたい機能の設定方法を知っていることです。

ネームサービスを使う場合、IPアドレスを直接使うよりも便利なのは明らかです。いつか、OpenVPNでネームサービスを展開する方法を学ぶことができるでしょう。今は、OpenVPN を楽しんでください。

経由: //-------------2

Read next

OS X Mavericks Serverチュートリアル:メールサービスの設定

OS X Mavericks Serverでは、メールサービスを使用して、ドメインやその他の設定されたドメインにPOPおよびIMAPメールを送信することができます。およびネットワーク構成に依存します。

Mar 22, 2025 · 4 min read