LinuxでAccess Serverに接続する
クライアントソフトの選択
LinuxからOpenVPN Access Serverに接続するには、クライアントプログラムが必要です。 これは、OpenVPNトンネルを通して送りたいトラフィックをキャプチャし、暗号化してOpenVPNサーバに渡します。 もちろん、その逆で、戻ってきたトラフィックを復号化することも。
Linux Packages Discussed
OpenVPN Access Server | openvpn-…as |
OpenVPN 3 Linux Client | openvpn3 |
OpenVPN open source | openvpn |
OpenVPN 3 Linux Client
OpenVPN 3 Linux プロジェクトは OpenVPN 3 Core Library の上に構築された新しいクライアントです。 このクライアントは、公式の OpenVPN Linux クライアントプログラムです。 OpenVPN 3 for Linux サイトに、機能の概要、よくある質問、openvpn3 パッケージのインストール手順があります。
そこの指示に従ってクライアントをインストールした後、接続プロファイルが必要になります。 これは、あなたの特定のユーザーアカウント用に OpenVPN アクセスサーバーのインストールによって生成されるファイルです。 必要な証明書と接続設定が含まれています。 Access Server の Client Web インターフェース(/admin 部分ではなく、メインアドレス)にアクセスします。 あなたのユーザー認証でログインしてください。 ダウンロード可能なファイルのリストが表示されます。 ユーザーロックプロファイルまたは自動ログインプロファイルを選択すると、client.ovpn ファイルが送信されます。
このファイルを Linux オペレーティングシステムに移動したら、インポートできます。
openvpn3 config-import --config ${client.ovpn}
新しい VPN セッションを開始できます:
openvpn3 session-start --config ${client.ovpn}
実行中の VPN セッションを管理できます:
openvpn3 sessions-list
というように、このようになります。 詳細はこちらで確認できます。 OpenVPN3Linux.
OpenVPN オープンソース OpenVPN CLI プログラム
オープンソースプロジェクトのクライアントプログラムもアクセスサーバーに接続することが可能です。 このパッケージは、ほとんどのディストリビューションで利用可能で、単に openvpn として知られています。 これは、複数の OpenVPN サーバに同時に接続するオプションをサポートし、ユーザがログインする前でも、/etc/openvpn フォルダで見つけた自動ログインプロファイルを自動的に静かに開始できるサービスコンポーネントが付属しています。 このサービス・コンポーネントは、サポートされていれば、お使いのLinuxディストリビューションで利用可能なツールを使用して、ブート時に自動的に起動するように設定できます。 Ubuntu と Debian では、openvpn パッケージをインストールすると、起動時に自動的に起動するように設定されます。
Linux で OpenVPN クライアントをインストールするには、多くの場合、Linux ディストリビューション自体のソフトウェアリポジトリにあるバージョンだけを使用することが可能です。 もし、古いソフトウェアを使用しているときに接続の問題に遭遇した場合、それはOpenVPNの古いバージョンでより高いTLSバージョンをサポートしていない可能性があることが原因かもしれません。 OpenVPN クライアントを Linux システムにインストールする場合は、オープンソースの openvpn コミュニティ wiki にある指示に従ってください。 これは、あなたの特定のユーザーアカウント用に OpenVPN アクセスサーバーのインストールによって生成されるファイルです。 必要な証明書と接続設定が含まれています。 Access Server の Client Web インターフェース(/admin 部分ではなく、メインアドレス)にアクセスします。 あなたのユーザー認証でログインしてください。 ダウンロード可能なファイルのリストが表示されます。 ユーザーロックプロファイルまたは自動ログインプロファイルを選択すると、client.ovpn ファイルが送信されます。 このファイルをLinuxオペレーティングシステムのどこかに保存してください。 OpenVPN Access Server は、サーバーロック、ユーザーロック、自動ログインのプロファイルをサポートしていますが、OpenVPN コマンドラインクライアントは、ユーザーロックまたは自動ログインの接続プロファイルでしか接続できません。
ここでは、あなたが root ユーザーとしてのコマンドライン、またはサービスデーモン経由で接続を開始しようとしていると仮定しています。 非特権ユーザーが接続できるようにしたい場合は、コミュニティ wiki でその実装方法の詳細を見てください。 ここでは、最も単純な実装に焦点を当てます。rootユーザーとして直接、またはサービスデーモンを介して接続を実行します。
自動ログイン プロファイルによる接続を手動で開始する:
openvpn --config client.ovpn
ユーザー ロック プロファイルによる接続を手動で開始する:
openvpn --config client.ovpn --auth-user-pass
Google 認証またはその他の追加要素認証を使用する場合、auth-retry パラメータを追加します:
openvpn --config client.ovpn --auth-user-pass --auth-retry interact
サービス デーモンで自動ログイン接続を開始するには、クライアント(client).POP を配置します。ovpn を /etc/openvpn/ に配置し、ファイル名を変更します。 ファイルの拡張子は .conf で終わる必要があります。 サービスデーモンが再起動後に実行されるように有効になっていることを確認し、システムを再起動するだけです。 自動ログインタイプのプロファイルが自動的にピックアップされ、接続が自動的に開始されます。 このことは、ifconfig コマンドの出力をチェックすることで確認できます。リストの中に tun0 ネットワーク アダプタがあるはずです。
コマンド ライン クライアントで欠けている 1 つの大きな機能は、VPN サーバーによってプッシュされる DNS サーバーを自動的に実装する能力です。 これは可能ですが、resolvconf や openresolv などの DNS 管理プログラムをインストールする必要があり、OS の既存のネットワーク管理ソフトウェアと衝突する可能性もありますし、衝突しない可能性もあります。 しかし、ここでのアイデアは、接続が立ち上がるときと立ち下がるときに、resolvconfやopenresolvを使用してDNSサーバーを実装するスクリプトを使用することである。 このクライアントが完全に自前で管理できないのは、WindowsやMacintosh、Android、iOSといったOSでは、すでにDNSの管理を行う単一の方法が確立されていることが主な理由です。 そのため、DNSの扱い方を知っているOS向けのソフトウェアクライアントを作るのは簡単なのです。 しかし、Linux は非常に多くのバリエーションがあり、また DNS サーバーを実装するさまざまなプログラムや方法をサポートしています。したがって、OpenVPN プログラムから内蔵 DNS サポートを省き、代わりに可能な限り DNS の実装を処理するスクリプトを提供することは合理的なことでした。 そのようなスクリプトは、あなた独自の状況で DNS サーバーを実装するために必要などんなタスクでも自分で書くことができます。
たとえば、Ubuntu や Debian では、幸いにも openvpn パッケージに含まれる /etc/openvpn/update-resolv-conf スクリプトがあり、これらの OS で DNS を実装する処理が可能です。
テキストエディタで client.ovpn ファイルを開きます:
nano client.ovpn
一番下に以下の行を追加します:
script-security 2up /etc/openvpn/update-resolv-confdown /etc/openvpn/update-resolv-conf
最初の行は、DNS 実装タスクを処理する外部スクリプトを使用することを有効にするものです。 up と down の行は、接続が確立したときに VPN サーバーによってプッシュされる DNS サーバーを実装し、その後、接続が停止したときにそれを元に戻すためにあります。
Ubuntu ネットワーク管理プログラム
また、Gnome ネットワーク管理プラグイン用の openvpn 拡張を使って GUI から接続するという選択肢もあります。 しかし、これは現在、セットアップに少々手こずります。 たとえば、すべての VPN がインターネット トラフィックをリダイレクトできるという誤った前提がありますし、古いバージョンでは .ovpn ファイル形式を理解できず、それに埋め込まれた証明書を別のファイルに分割する必要があります。 また、特にインターネット全体ではなく、一部の内部リソースにしかアクセスできないようなサーバでは、VPNサーバを経由するデフォルトのインターネットトラフィックルートがデフォルトで有効になっていないことを確認するために、オプションを掘り下げる必要がありそうです。 しかし、GUI コンポーネントを使用する利点は、Linux 上のデスクトップ環境から接続を開始/停止できることです。