VPN
 Computer >> コンピューター >  >> ネットワーキング >> VPN

OpenVPN を使用してプライベート AWS リソースに安全にアクセスする方法

この記事は、私の新しい Pluralsight コース「オンプレミス リソースを AWS インフラストラクチャに接続する」の一部から編集されました。

アマゾン ウェブ サービスで実行しているリソースに接続する必要がある場合がありますか? SSH を使用してパブリック EC2 インスタンスにアクセスし、S3 データを暗号化することは、すべての意図と目的において十分に安全です。しかし、バックエンドの RDS データベース インスタンスにアクセスしたり、公開されていない AWS ベースのデータを操作したりするにはどうすればよいでしょうか?管理者がそのようなリソースを一般大衆の手の届かないところに置いておく理由はさまざまです。しかし、必要なときに彼らに連絡できなければ、彼らはあなたに何の利益をもたらすでしょうか?

そのため、データを保護する ACL とセキュリティ グループを回避する安全で信頼できる方法を見つける必要があります。 Pluralsight の「オンプレミス リソースを AWS インフラストラクチャに接続する」コースで取り上げる 1 つのソリューションは、Direct Connect です。ただし、Direct Connect の値札が会社の予算を無駄にする場合は、ある種の VPN トンネルでうまくいくかもしれません.

バーチャル プライベート ネットワークとは

バーチャル プライベート ネットワーク (VPN) は、制限されたネットワーク アクティビティや匿名のブラウジングを可能にするためによく使用されます。しかし、それはこの記事の目的ではありません。

VPN は、パブリック ネットワークを介して 2 つのサイト間でデータを安全に移動できるようにするポイント ツー ポイント接続です。事実上、トンネルは、地理的に離れた 2 つのプライベート サイトを 1 つのプライベート ネットワークに結合するように設計できます。私たちのコンテキストでは、ローカル オフィス ネットワークを、プライベート リソースをホストしている AWS VPC に接続することを意味します。

これには 2 つの方法があります:

  • AWS Virtual Private Gateway 上に構築されたマネージド VPN 接続
  • 独自の VPN を使用する。

この記事では、自分でやる方法に焦点を当てます。

OpenVPN アクセス サーバー

その名前が示すように、OpenVPN はオープン ソース プロジェクトであり、いつでも無料のコミュニティ エディションをダウンロードして、独自の VPN サーバーにセットアップすることができます。しかし、OpenVPN の会社は、専用の OpenVPN アクセス サーバーを EC2 AMI として提供しています。これは、AWS フレンドリーな統合と自動化された構成ツールを備えた、すぐに使用できるものです。

私が見たところ、AWS VPC 内で AMI を起動し、制御されたリモート接続用に開くことが、この仕事を完了するための「正しい」方法になりました。

どれくらいかかるか?物事をテストするだけで、一度に 2 つ以上の接続を使用して VPN にアクセスする予定がない場合、AMI 自体は無料です. EC2 インスタンスの通常の費用は引き続きかかりますが、アカウントがまだ無料利用枠の対象である場合は、それも無料で利用できます。

VPN をアクティブな運用に移行したら、購入するライセンスは、必要な同時接続数によって異なります。このページには、必要な詳細が記載されています。

このガイドで行うことは次のとおりです。

  • OpenVPN Access Server が VPC にプリインストールされた Ubuntu AMI を選択、プロビジョニング、起動する
  • SSH を使用してサーバーにアクセスし、VPN を構成します
  • 管理ユーザーを設定する
  • ローカル マシンを OpenVPN クライアントとしてセットアップし、AWS VPC のプライベート インスタンスに接続します

準備はいいですか?

OpenVPN アクセス サーバーの起動

EC2 ダッシュボードから、適切な AWS リージョンにいることを確認してから、VPN サーバーとして機能するインスタンスを起動します。クイックスタート AMI のいずれかを使用する代わりに、AWS Marketplace タブをクリックして「openvpn access server」を検索します。 OpenVPN は、ライセンスに関連付けられた多数の公式イメージを提供し、接続クライアントの数を増やしています。

ここでは、「Bring Your Own License」契約で機能するこの Ubuntu イメージを使用します。前に書いたように、私たちがやろうとしていることに実際にライセンスは必要ありません。

OpenVPN を使用してプライベート AWS リソースに安全にアクセスする方法
AWS Marketplace から入手可能な OpenVPN Access Server AMI

AMI を選択するとポップアップが開き、さまざまなインスタンス タイプと EBS ストレージの選択を使用して、このイメージの 1 時間あたりのコストが表示されます。ただし、これらは通常の AWS インフラストラクチャのコストであり、ライセンス料は含まれていません。

OpenVPN を使用してプライベート AWS リソースに安全にアクセスする方法
OpenVPN Access Server AMI の費用 — AWS から直接請求

インスタンス タイプに関しては、t2.micro にダウングレードして、無料利用枠内に維持します。ビジー状態の本番サーバーでは、もう少し電力が必要になる場合があります。

数分後に同じサブネットで 2 番目のインスタンスを起動するので、[Configure Instance Details] ページから「us-east-1b」などを選択し、後で使用できるようにメモします。

OpenVPN を使用してプライベート AWS リソースに安全にアクセスする方法
サブネットを選択して後でメモする

セキュリティ グループ ページは、OpenVPN AMI 設定が真価を発揮する場所です。必要なものすべてを開くセキュリティ グループが表示されます。ポート 22 はサーバーへの SSH トラフィック用、943 は管理 GUI へのアクセスに使用するポート、443 は TLS 暗号化された HTTP トラフィック、OpenVPN はポート 1194 で着信クライアント接続をリッスンします。

OpenVPN を使用してプライベート AWS リソースに安全にアクセスする方法
OpenVPN AMI に付属するセキュリティ グループ

注意 :実用的であれば、通常はこれらのルールを強化して、有効な会社の IP アドレス範囲からの要求のみが受け入れられるようにすることをお勧めしますが、短期間のテストではこれで問題ありません。

ここから、設定を確認し、記載されている SSH 暗号化キーを取得していることを確認して、トリガーを引きます。

インスタンスが起動されると、重要なログイン情報 (サーバーへの SSH 接続に使用するユーザー アカウントが openvpnas という事実を含む) とクイック スタート ガイドが表示されます。同じ情報へのリンクが記載されたメールも届きます。

EC2 インスタンス コンソールに戻ると、新しいマシンの起動が完了すると、パブリック IP アドレスが表示されます。インスタンスを再起動する必要が生じた場合、同じ IP を再度取得できるという保証はなく、かなりの混乱を引き起こす可能性があります。そのため、インスタンスに Elastic IP を割り当てることをお勧めします。

そのために、[Elastic IPs] をクリックしてから、[新しいアドレスの割り当て] をクリックします。新しいアドレスをメモして、ページを閉じます。次に、そのアドレスを選択した状態で、[アクション] をクリックし、[アドレスの関連付け] をクリックします。 [インスタンス] ボックスを 1 回クリックすると、OpenVPN インスタンス (便利なタグ付き) が一覧表示されます。それを選択し、[関連付け] をクリックするだけで完了です。今後は、サーバーにアクセスするための永続的なパブリック IP になります。

OpenVPN を使用してプライベート AWS リソースに安全にアクセスする方法
新しい Elastic IP アドレスをインスタンスに関連付ける

サーバーへのアクセス

このインスタンス用に設定したキー ペアを呼び出す SSH コマンドの一部として、パブリック IP アドレスをターミナルに貼り付けます。

ssh -i KeyPairName.pem openvpnas@<PublicIPAddress>

Windows または macOS マシンからアクセスしている場合は、動作が少し異なる可能性がありますが、必要なすべてのヘルプがドキュメントに記載されています。

ただし、インスタンス コンソールを終了する前に、もう 1 つ重要な機能を実行します。 OpenVPN インスタンスを選択した状態で、[アクション]、[ネットワーク]、[ソース/宛先チェックの変更] の順にクリックします。チェックが無効になっていることを確認します。私がこれをしなければ、たいしたことはできません.

それでは、SSH セッションに移りましょう。開始するとすぐに、OpenVPN EULA ライセンス契約に直面し、次にセットアップ ウィザードが表示されます。後で設定を変更する必要がある場合は、次のコマンドを使用していつでもウィザードを再実行できます:

sudo ovpn-init — ec2.

ウィザードのデフォルトのほとんどは正常に機能しますが、何が起こっているのかを簡単に説明する価値があります。質問と、必要に応じていくつかの色の解説があります:

primary Access Server node? yes [You’d answer no if you were setting up a backup or failover node.]
specify the network interface and IP address to be used by the Admin Web UI [1 — For all interfaces; can be changed to static later.]
specify the port number for the Admin Web UI [default]
specify the TCP port number for the OpenVPN Daemon [default]
Should client traffic be routed by default through the VPN? [no--That’s   not the kind of VPN we’re building here. What we’re doing is only about getting remote clients safely and securely into our VPC. The same applies to client DNS traffic.]
Should client DNS traffic be routed by default through the VPN? [no] 
Use local authentication via internal DB? [no — can be useful, but we’ll use Linux/AWS authentication for simplicity.]
Should private subnets be accessible to clients by default? [yes — that’s the whole point of the VPN, after all.]
login to the Admin UI as “openvpn”? [yes]
Provide OpenVPN Access Server license key [Unnecessary for testing.]

ウィザードが完了すると、いくつかの接続情報が表示され、ネットワーク タイム デーモン NTP をインストールするように勧められます。この Ubuntu ボックスでは、デフォルトで既にインストールされ、実行されているため、これは必要ありません。

前述したように、openvpn ユーザーにパスワードを与える必要があるため、それを使用して Web GUI にログインできます。 passwd コマンドを使用して sudo として実行します。

sudo passwd openvpn

サーバー側で必要なものはこれだけです。ここで、ブラウザーを使用して Web GUI にログインします。サーバーのパブリック IP アドレスに、安全な https プレフィックスを付け、その後にスラッシュと admin を付けて使用します。

https://<PublicIPAddress>/admin

認証局から提供された証明書ではなく、自己署名証明書を使用しているため、「Your connection is not private」という警告が表示されます。

OpenVPN を使用してプライベート AWS リソースに安全にアクセスする方法
自己署名証明書を使用する場合、これは正常です

これは私たちにとって問題ではありません。なぜなら、私たちは VPN を社内の選択したユーザーにのみ公開しており、彼らは私たちの証明書を信頼できるはずだからです.警告をクリックしてサインインし、EULA に同意します。

OpenVPN 管理コンソールが提供する機能を自由に調べてみてください。

OpenVPN を使用してプライベート AWS リソースに安全にアクセスする方法
OpenVPN 管理コンソール

VPN クライアントのセットアップ

ただし、ここでは、前に示した Web アクセス アドレスを使用してクライアント UI ページを開きますが、今回はスラッシュ admin を使用しません。これは、以前と同じ openvpn ユーザーを使用して認証できるログイン画面にすぎません。 (管理コンソールでいつでも新しいユーザーを作成できます。)

ログイン画面の後ろには、これらのプラットフォームのいずれかに OpenVPN クライアント アプリをインストールするための指示が記載されたこの一連のリンクがあります。ただし、最後のリンクは「あなた自身」と呼ばれます。

OpenVPN を使用してプライベート AWS リソースに安全にアクセスする方法
OpenVPN クライアント ページ

クリックすると、client.ovpn というファイルをダウンロードして保存するように求められます。このファイルには、サーバーに一致する構成設定と、認証に使用する実際のキーが含まれています。このファイルを慎重に扱って、悪人の手に渡らないようにする必要があります。これには、暗号化されていない接続を介してプレーン メールで送信しないことも含まれます。

ファイルをローカルで開き、内容をコピーします。次に、ローカル ネットワークで実行されている Linux 仮想マシン内のシェルで、client.ovpn という名前の新しいファイルを作成し、その内容を貼り付けます。クライアント UI の [OpenVPN for Linux] リンクをクリックした場合前に、必要な唯一の追加手順は、Apt パッケージ マネージャーを使用して OpenVPN をインストールすること、または CentOS または Red Hat マシンを使用している場合は Yum をインストールすることであることがわかりました。たった 1 つのコマンドで済みます。作業が完了したら、準備完了です。

nano client.ovpnsudo apt updatesudo apt install openvpn

次に、VPN 接続を開きます。 root として (sudo を使用して) openvpn と入力し、先ほど作成した client.ovpn 構成ファイルを指す config フラグを指定します。

sudo openvpn — config client.ovpn

認証を求めるプロンプトが表示されたら、openvpn アカウントと作成したパスワードをサーバーに戻して使用します。

ここで、ローカル クライアントで 2 番目のシェル セッションを開き、local を使用して OpenVPN サーバーに ssh 接続できるようにします。 IP アドレス — VPN 接続が機能していなければ不可能なことです。

ただし、最初に ip a を実行して、このマシンでアクティブなすべてのネットワーク インターフェイスを一覧表示します。

ip a

ローカル ネットワークの他に、tun0 という名前のネットワークも表示されるはずです。このインターフェースは OpenVPN によって作成され、通常は 172.16.x.x の範囲内にあります。

秘密鍵 (もちろんローカルに存在する必要があります) とサーバーの private を使用して、リモート サーバーに ssh します。 IPアドレス。うまくいけば、VPN を手に入れることができます!

ssh -i KeyPairName.pem openvpnas@<PrivateIPAddress>

最後に、現在構成されている VPN により、Amazon VPC 内の他のプライベート リソースにアクセスできることを示します。これは、たとえば、パブリック ネットワークに公開できない VPC で実行されているデータベース インスタンスがある場合に役立ちます。

標準の Ubuntu EC2 インスタンスを起動する予定ですが、起動しません パブリック IP を付与します。簡単にするために、OpenVPN サーバーに使用したのと同じ us-east-1b サブネットを指定します。使用するセキュリティ グループは、ポート 22 経由の SSH アクセスを許可しますが、それ以外は許可しません。

それが実行されたら、そのプライベート IP アドレスを書き留めて、ローカル クライアントに戻ります。インスタンスが完全に起動したことを確認したら、同じ秘密鍵、「ubuntu」ユーザー名 (通常の Ubuntu EC2 インスタンスのデフォルトであるため)、および先ほどコピーしたプライベート アドレスを使用して SSH 接続します。

また。うまくいけば、AWS プライベート リソースへの完全に設定された VPN 接続が確立されます。その瞬間を味わってください。

使い終わったら、すべてのサーバーをシャットダウンし、Elastic IP アドレスを解放することを忘れないでください。不必要にコストがかかるのは望ましくありません。

この記事は、私の新しい Pluralsight コース「オンプレミスのリソースを AWS インフラストラクチャに接続する」の一部から編集されました。私の Bootstrap IT サイトには、私の著書 Linux in Action へのリンクや、2 時間以上のビデオと Linux のテキストの約 40% で構成される Linux in Motion と呼ばれるハイブリッド コースへのリンクなど、他にも多くの情報が掲載されています。


  1. MS Office を無料で使用する 5 つの方法

    十分な信用を与えていないかもしれませんが、MS Office は常に Windows フレームワークの有用な定数でした。ドキュメントの作成から創造的なプレゼンテーションの作成まで、MS Office は私たちの生活の中でさまざまな方法で私たちを助けてきました。私たちのほとんどは、主にシステムでスタンドアロン バージョンの MS Office を使用しており、すべてのアプリケーションや機能にアクセスできるわけではありません。最近では、多くの MS Office の代替品が発売されていることも耳にするかもしれませんが、それでも私たちは何よりもオリジナルのものを好みますよね? MS Office

  2. Windows での推奨アクションとは何ですか? また、どのように使用できますか?

    Windows で検索候補を入力するとすぐに、Google やその他の一般的な検索エンジンが自動候補を表示する方法を覚えていますか? Microsoft は、Windows 11 ユーザー向けに同様の機能を導入しました。 この機能は推奨される操作であり、Windows での操作を簡素化するための Microsoft の最新の試みです。この記事では、Windows で推奨されるアクションを使用して最大限に活用する方法について説明します。 Windows 11 で推奨アクションを使用する方法 推奨アクション機能を有効にすると、電話やイベントを自動的にスケジュールできます。電話番号をコピーするか