LinuxでOpenVPNを使用してAWS EC2で仮想プライベートネットワークを設定する

Amazon Web Serviceは、試用期間(12か月)の間、Amazon EC2サーバーを無料で実行する機能を提供します。 このようなサーバーは、VPN(Eng。Virtual Private Network-仮想プライベートネットワーク)に使用できます。 この技術を使用すると、リモートサーバーは、コンピューターとインターネット上の他のサーバーとの間の仲介役として機能します。


これは、ロックをバイパスしてサイトに移動する必要がある場合(実際にデータを受信するサイトではなく、VPNサーバーに接続しているプロバイダーの場合)、または特定のアクセス可能な一定のIPがある場合に役立ちますサービス、またはあなたが物理的に位置する間違った地域に関連付けられたIPを持っています(サイトは、稼働中のマシンのIPではなく、サーバーのIPからエントリを決定します)。


AWS EC2でサーバーを作成する


そのため、まずはhttps://aws.amazon.comで登録してください 。登録するには、有効なクレジットカードが必要です。


登録後、コンソールhttps://console.aws.amazon.com/console/homeにアクセスします


右上の[サービス]メニューをクリックし、[計算]セクションで[EC2]を選択します。


画像


将来のサーバーにアクセスするには、キーを作成する必要があります。 [キーペア]を押し、次に[キーペアの作成]ボタンをクリックして、キーの名前(たとえば、「myVPNkey」)を設定し、このファイル(拡張子.pem)をコンピューターの通常〜/ .sshフォルダーに保存します


ここで、キーを保存したフォルダーに移動し、ファイルにアクセスするためのアクセス許可を設定します。


cd ~/.ssh chmod 400 myVPNkey.pem 

また、このファイルのコピーを作成し、安全な場所に保存する必要があります。


次に、AWSウェブサイトでEC2ダッシュボードに戻り(左上隅のメニューを参照)、そこで大きな青い[インスタンスの起動]ボタンをクリックします


  1. サーバーのオペレーティングシステムを選択します。UbuntuServer 14.04 LTS(HVM)64ビット(16.04ではなく14.04)


  2. サーバー構成を選択します。 私たちの目的では、無料の試用構成で十分です。
    t2.micro(可変ECU、1 vCPU、2.5 GHz、Intel Xeonファミリー、1 GiBメモリ、EBSのみ)-緑のラベル「無料ティア対象」がマークされます。 青い[レビューと起動]ボタンをクリックします


  3. (ステップ7:インスタンス起動の確認)[セキュリティグループ]セクションで、[セキュリティグループの編集]をクリックします


  4. (セキュリティグループの構成)選択:セキュリティグループの割り当て:*新しいセキュリティグループの作成

「myVPN」など、セキュリティグループ名で名前を選択します。 次に、サーバーへのアクセスを決定するルールを確認します。 デフォルトでは、1つのルールがあります。


タイプ:SSH
プロトコル:TCP
ポート範囲:22
ソース:カスタム0.0.0.0/0

この場合、SSHプロトコルを使用して、任意のIPからポート22にサーバーに接続できることを意味します。 これらは、sshの接続に使用される標準設定です。


[ルールの追加]ボタンをクリックして、新しいルールを追加します。


タイプ:すべてのトラフィック
プロトコル:すべて
ポート範囲:0-65535
ソース:私のIP

[ソース]で、作業中のマシンのIPを指定します。[マイIP]を選択すると、自動的に検出されます。


IPの表示とは、このルールでは、このIPからのみアクセスが許可されることを意味します(もちろん、別のIPでインターネットにアクセスする場合は変更できます)。


Google検索で「my ip」と入力すると、IPを確認/確認できます。 または専門サイトを使用します。 コンソールで:


 wget -qO- http://ipecho.net/plain ; echo 

または


 curl ipecho.net/plain ; echo 

最初のルールは削除できます(推奨)。 または、IPを登録します。 または、任意のIPから接続するオプションを残し、「0.0.0.0/0のソースを持つルールはインスタンスへのすべてのIPアドレスのアクセスを許可します。既知のIPアドレスからのアクセスのみを許可するセキュリティグループルールを設定する」という警告を無視します。


もう一度、「レビューと起動」をクリックして情報を参照し、「起動」をクリックします。サーバーにアクセスするためのキーを選択する必要があるウィンドウが表示されます。


以前に作成したキー(既存のキーパー)を選択し、「選択した秘密キーファイル(myVPNkey.pem)にアクセスできることを確認し、このファイルがないとインスタンスにログインできないことを確認します「インスタンスの起動」をクリックします。


すべてが順調であれば、サーバーが実行されているというメッセージが表示されます。 [インスタンスの表示]ボタンをクリックし、サーバーのリストが表示されるコンソールに移動します。 リストでサーバーをマークすると、その情報、特にIPを表示でき、サーバーでアクション(停止、開始、削除など)も実行できます。「接続」ボタンを押すと、サーバーに接続するために必要な情報が表示されます。


サーバーのセットアップ


これで、コンソールからsshを使用してサーバーに接続できます。 デフォルトのユーザー名はubuntuです。接続には、IPサーバーまたは次の形式のドメイン名を使用できます:ec2-35-163-203-49.us-west-2.compute.amazonaws.com


コンソールでコマンドを入力します。


 ssh -i "~/.ssh/myVPNkey.pem" ubuntu@ec2-35-163-203-49.us-west-2.compute.amazonaws.com 

初めて接続するときは、次の質問をする必要があります。接続を続行しますか(はい/いいえ)。 -答え「yes」を入力します(デフォルトでは答えは「no」で、Enterキーを押すだけで「Host key validation failed」というメッセージが表示されます。


接続時に、エラーも生成される場合があります。


「 '〜/ .ssh / myVPNkey.pem'のアクセス許可0644が開きすぎています。
秘密鍵ファイルは他者からアクセスできないことが必要です。
この秘密鍵は無視されます。」
この場合、上記のように、ファイルのアクセス許可を変更します
 chmod 400 ~/.ssh/myVPNkey.pem 


接続が成功した場合、コマンドラインをubuntu @ ip-172-31-21-156のようなものに切り替えることで証明されるように、サーバーコンソールに行きます:〜$

サーバーにOpenVPNをインストールする


サーバーコンソールで、最初に(必須)ソフトウェアを更新します。


 sudo apt-get update && sudo apt-get upgrade -y && sudo apt-get -y autoremove && sudo apt-get install -f 

次にOpenVPNをインストールします


 sudo apt-get install -y openvpn 

フォワーディング(IPフォワーディング)をセットアップします( サーバーの電源をオフにするか再起動すると、これを繰り返します )。


 sudo modprobe iptable_nat echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward sudo iptables -t nat -A POSTROUTING -s 10.4.0.1/2 -o eth0 -j MASQUERADE 

openvpnフォルダーに移動して、秘密鍵を作成します。


 cd /etc/openvpn sudo openvpn --genkey --secret ovpn.key 

OpenVPN構成ファイルを作成し、openvpn.confと呼びます。これには、コンソールで動作するnanoエディターを使用します。


 sudo nano openvpn.conf 

ファイルに貼り付けます:


 port 1194 proto tcp-server dev tun1 ifconfig 10.4.0.1 10.4.0.2 status server-tcp.log verb 3 secret ovpn.key 

CTRL + Oを押してファイルへのレコードを確認し、エディターを終了します-CTRL-X。


次のコマンドでサーバーでOpenVPNを実行します


 sudo service openvpn start 

次のコマンドで適宜停止します。


 sudo service openvpn stop 

openvpnが実行されているかどうかを確認します


 sudo service openvpn status 

画像


ローカルマシンにOpenVPNをインストールして構成する


ローカルマシンのコンソール(端末)のもう1つのウィンドウを開きます。 ローカルコンピューターにOpenVPNをインストールします。


 sudo apt-get install -y openvpn 

サーバーコンソール 、キーファイルのアクセス許可を一時的に変更します。


 sudo chmod 777 /etc/openvpn/ovpn.key 

ローカルマシンコンソールで、OpenVPN設定用のフォルダーを作成します。


 mkdir ~/OpenVPNconf && cd ~/OpenVPNconf 

そして、そこからサーバーからOpenVPNキーをダウンロードします。


 scp -i "~/.ssh/myVPNkey.pem" ubuntu@ec2-35-163-203-49.us-west-2.compute.amazonaws.com:/etc/openvpn/ovpn.key ~/OpenVPNconf/ 

サーバーで、キーファイルのアクセス設定を返します。


 sudo chmod 600 /etc/openvpn/ovpn.key 

ローカルでも:


 chmod 600 ~/OpenVPNconf/ovpn.key 

ローカルマシンで、OpenVPN設定を使用してファイルを作成し、openvpn.client.confと呼びます。


 gedit openvpn.client.ovpn 

ファイルに挿入します。


 proto tcp-client remote .IP.... port 1194 dev tun secret "/home//OpenVPNconf/ovpn.key" redirect-gateway def1 ifconfig 10.4.0.2 10.4.0.1 

「秘密」の設定の設定に注意してください。「秘密」はキーファイルの完全なアドレスである必要があります(「ユーザー名」はもちろんシステムと同じである必要があります)。 us-west-2.compute.amazonaws.com
ファイルopenvpn.client.ovpnを保存します


次のコマンドを使用して、コンソールでOpenVPNを実行します。


 sudo openvpn --config ~/OpenVPNconf/openvpn.client.ovpn 

画像
http://ipecho.net/plainにアクセスします。Amazon上のサーバーのIPアドレスが表示されるはずです。 また、お住まいの地域では利用できないサイトにアクセスすることもできます。


UPD:コメントが正しく指摘したように、 AWS Elastic IPはこれに追加する価値があります。 Elastic IPはユーザーが予約したIPアドレスであり、AWSで実行されているサーバーに接続できます。 1つのサーバーで、1つのElastic IPを無料で追加できます。特定のサービスに関連付けられていない予約済みのElastic IPには料金がかかります。 Elastic IPは、AWSで使用するサービスにすばやく簡単に接続および切断できます。


AWS EC2ユーザーコンソールの左側のメニューで、[NETWORK&SECURITY]グループの[Elastic IPs]オプションを選択します。開いたウィンドウで、新しいElastic IPを作成できます([新しいアドレスの割り当て]ボタン)


次に:利用可能なElastic IPのリストで、アドレスを選択し、[アクション]メニュー(グレーのボタン)を使用してAWSで実行されているサーバーにバインドするか、実行中のサービスから切断します。


ハッピーネットワーキング!



Source: https://habr.com/ru/post/J315664/


All Articles