ネットワーククライアント導入

install_openvpn_client_ubuntu.sh

OpenVPN のユーザー名・パスワード認証を使う Ubuntu 20.04、22.04、24.04 LTS 向けです。クライアントファイルの配置からサービス起動までを繰り返し行えます。

ファイル選択とサービスへの影響を確認

ワンライナー

curl -fL 'https://www.helper.sh/install_openvpn_client_ubuntu.sh' -o './install_openvpn_client_ubuntu.sh'

このコマンドは同梱ファイルをダウンロードするだけで、実行しません。保存したソースを確認し、バージョンを照合してから実行するか判断してください。

保存したファイルを照合

このページのビルドに同梱されたバイト列と照合します。ファイルはこのタブ内で処理し、この機能は送信・保存しません。上限は2 MiBです。

期待する SHA-256
c096e3498bd2f98b7b57bcd28b0dc0664e658f60a4cb2caa2a192195979e4f00

同梱ファイルのバイト数: 7887

チェックサムファイルを保存

スクリプトとチェックサムを同じディレクトリに保存してください。GNU Coreutils のある Linux では次のコマンドでバイト列だけを検査できます。スクリプトは実行しません。コマンドには元のファイル名が必要です。

sha256sum --check './install_openvpn_client_ubuntu.sh.sha256'

まだ照合していません。

スクリプトとチェックサムは同じサイトから取得し、独立した署名ではありません。一致しても安全性、上流の真正性、ホストへの適合性は証明しません。可変の依存先は別途確認してください。

検証と制限を読む

実行条件

  • ソースが識別するUbuntu 20.04/22.04/24.04、root、Bash、systemd、到達可能なaptリポジトリ。
  • 接続設定には確認済みの設定・認証ファイルの組が必要です。導入のみは組なしでも完了します。

適用場面

  • 新しい Ubuntu ホストで OpenVPN クライアントを手早く構成する
  • ユーザー名・パスワード認証を使うクライアント導入を標準化する
  • 設定ファイルの手動コピーと openvpn-client@client の有効化ミスを減らす

主なポイント

  • 設定ファイルがなくても終了せず、OpenVPN を導入して /etc/openvpn/client/ を作成します。後からファイルを配置できます。
  • 作業ディレクトリの client.conf と login.txt を使い、既に /etc/openvpn/client/ にあるファイルは再利用します。
  • ローカルの update-resolv-conf がある場合に限りコピーし、DNS フックを設定します。
  • openvpn-client@client を有効化して再起動します。

推奨手順

  1. 保存したインストーラーを取得・照合・確認してから実行を判断します。
  2. 完全なソースまたは対象の組、実単位、共有認証と任意補助コードを確認します。
  3. 承認後も導入のみと設定適用を区別します。コピーと再利用ではバックアップの範囲が異なります。
  4. サービス・実インターフェース・経路・DNS・認可されたアプリ接続を個別に確認し、activeやtun0だけで判断しません。

注意事項

  • login.txt は chmod 600 で保護し、Git にコミットしないでください。
  • 本番ホストへコピーする前に client.conf の接続先、ポート、証明書を確認してください。
  • サービスが起動しない場合は、再実行を繰り返す前に journalctl を確認します。
  • update-resolv-conf を指定する場合、DNS 値はそのヘルパースクリプト側で定義します。
  • systemd-resolved を使う Ubuntu では、/etc/resolv.conf を直接書き換える方式より resolvectl 対応の update-resolv-conf を選んでください。

対応範囲と制限

  • root、Bash、Ubuntu、aptリポジトリ、systemdのOpenVPNクライアント単位が必要です。ソースは20.04/22.04/24.04を識別し、他のUbuntu版でも警告後に続行します。互換性証明ではなく、パッケージ版も固定しないため導入版と対応マニュアルを確認します。Ubuntu20.04の標準セキュリティ保守は2025年5月で終了しており、既存ホストの実際のESM対象を確認してください。新規導入の推奨ではありません。
  • --config-dir PATH、--config-name NAME、--source-conf PATH、--source-login PATH、--source-dns-helper PATHは各値が必要です。-h/--helpは説明表示のみ。Ubuntu版に--no-dns、dry-run、自動復元はありません。値不足はset -uで終了し得ます。CentOS専用指定を流用しないでください。
  • ソースの設定と認証ファイルが揃うと、その組を優先して対象へコピーします。なければ完全な対象の組を再利用します。片方ずつ別の場所にあるファイルは組み合わせません。どちらの組も揃わなければ導入とディレクトリ準備後に終了値0で終わり、設定未適用であってVPN接続成功ではありません。
  • 対象はCONFIG_DIR/CONFIG_NAME.confとCONFIG_DIR/login.txtです。同じディレクトリの別インスタンスもlogin.txtを共有するため、一方のコピーが他方に影響し得ます。--config-dirはコピー先だけを変え、systemd単位の検索先を書き換えません。独自ディレクトリは実際の単位を確認してください。

変更されるファイル、サービス、データ

  • apt-get updateとopenvpn導入後、対象ディレクトリを作成します。コピー時のみ既存対象ファイルの日時付き.bakを作成します。再利用時もCRLF除去とchmod 600を行うため無変更ではありません。認証情報のバックアップも保護します。
  • ローカルDNS補助があると、補助ファイル自体のバックアップなしに/etc/openvpn/update-resolv-confへコピーし、CRLFを除去して実行可能にし、完全一致で不足するscript-security 2/up/down行を追記します。別の既存フックは整理しません。補助は実行コードなのでDNS影響を別途確認します。不在でも既存フックは消しません。
  • openvpn-client@CONFIG_NAMEを有効化・再起動します。接続先・経路・DNS影響は設定と補助に依存し、固定サーバーポートや接続準備完了を保証しません。auth-user-pass確認は行頭を限定しないgrepの警告で、実効認証や設定検証ではありません。

読み取り専用の確認

  • 承認済み変更の前に、どの完全な組を選ぶか、バックアップと補助コードを手元で確認し、systemctl catで実単位を確認します。login.txt、鍵、設定、実ログをこのサイトへ貼り付けないでください。下の既定読み取りコマンドは導入・起動・接続を行いません。必要なら確認済みの単位名に置換します。
  • 承認済み保守後は対象単位、非公開ログ、実際のトンネルと経路を確認します。稼働状態、tun0という例、完了表示だけでは認証・経路・DNS・アプリ接続を証明できません。認可された目的地と名前解決は個別に確認し、固定インターフェース名を前提にしないでください。

失敗した場合

設定未適用なら、完全な組を特定してから次の変更を計画します。再実行はapt操作も繰り返します。失敗時は対象と.bakを保持し、実単位・ログ、認証パスとフックを手元で確認して手動復旧を計画してください。証明書検証の無効化、バックアップ削除、共有login.txtの不用意な変更や設定先指定だけでサービスが変わるとの判断は避けます。自動復元はありません。

systemctl status openvpn-client@client --no-pager
systemctl cat openvpn-client@client
ip -brief address
ip route show
readlink -f /etc/resolv.conf

OpenVPN 2.6 · Ubuntu Server · Ubuntu · Ubuntuクライアントのソース確認記録

実行前にダウンロードして内容を確認し、バージョンを検証してください。ハッシュはこのバイト列を識別するだけで、安全性を証明しません。pipe 実行は取得した内容を直ちに実行し、上流の依存関係は変化することがあります。

関連トピック

OpenVPN: 接続・経路・DNS の切り分け

ディストリビューション別のクライアントを選び、DNS フック変更前に名前解決の管理元を確認します。

トピックを見る

問題ページ

OpenVPN 接続後も内部 DNS を解決できない

ファイルの変更や再起動の前に、設定されたフックと稼働中の DNS 管理元を確認します。

ページを見る