モーダルを閉じる工作HardwareHub ロゴ画像

工作HardwareHubは、ロボット工作や電子工作に関する情報やモノが行き交うコミュニティサイトです。さらに詳しく

利用規約プライバシーポリシー に同意したうえでログインしてください。

工作HardwareHub ロゴ画像 (Laptop端末利用時)
工作HardwareHub ロゴ画像 (Mobile端末利用時)
目次目次を開く/閉じる

OpenVPN で二つの VPC をつなぐための設定

モーダルを閉じる

ステッカーを選択してください

モーダルを閉じる

お支払い内容をご確認ください

購入商品
」ステッカーの表示権
メッセージ
料金
(税込)
決済方法
GooglePayマーク
決済プラットフォーム
確認事項

利用規約をご確認のうえお支払いください

※カード情報はGoogleアカウント内に保存されます。本サイトやStripeには保存されません

※記事の執筆者は購入者のユーザー名を知ることができます

※購入後のキャンセルはできません

作成日作成日
2015/05/07
最終更新最終更新
2017/09/11
記事区分記事区分
一般公開

目次

    アカウント プロフィール画像 (サイドバー)

    データサイエンティスト。PythonとRでデータ解析を行っています。

    0
    ステッカーを贈るとは?

    インターネット VPN (Virtual Private Network) には二拠点間の通信を暗号化する方式によって IPsec-VPN や SSL-VPN などがあります。OpenVPN は SSL-VPN の実装のひとつです。AWS VPC を二つ用意してそれらを OpenVPN で接続してみます。

    VPC の構成

    • myvpc-1 (10.1.0.0/16)
      • mysubnet-1-1 (10.1.1.0/24)
        • myinstance-1-1 (10.1.1.4, EIP 52.6.58.160)
      • mysubnet-1-2 (10.1.2.0/24)
        • myinstance-1-2 (10.1.2.4, EIP 52.6.133.31)
    • myvpc-2 (10.2.0.0/16)
      • mysubnet-2-1 (10.2.1.0/24)
        • myinstance-2-1 (10.2.1.4, EIP 52.6.159.238)
      • mysubnet-2-2 (10.2.2.0/24)
        • myinstance-2-2 (10.2.2.4, EIP 52.6.254.18)

    ルーティングテーブル

    myvpc-1

    • 0.0.0.0/0 → インターネットゲートウェイ
    • 10.0.0/8 → myinstance-1-1
    • 10.1.0.0/16 → local

    myvpc-2

    • 0.0.0.0/0 → インターネットゲートウェイ
    • 10.0.0/8 → myinstance-2-1
    • 10.2.0.0/16 → local

    セキュリティグループ

    以下の内容を許可します。検証用ですので簡単のため 0.0.0.0/0 としています。

    • TCP 22 from 0.0.0.0/0 (SSH)
    • UDP 1194 from 0.0.0.0/0 (OpenVPN)
    • ICMP ALL from 0.0.0.0/0 (ping 等)

    OpenVPN インスタンスの設定

    以下の二つのインスタンスを OpenVPN サーバとして設定します。

    • myinstance-1-1 (10.1.1.4, EIP 52.6.58.160)
    • myinstance-2-1 (10.2.1.4, EIP 52.6.159.238)

    自分宛でないパケットも受信するように AWS 設定を変更

    上記二つのインスタンスについて、AWS コンソールにおいて「Actions」→「Networking」→「Change Source/Dest. Check」を Disable します。

    カーネルパラメータの変更

    /sbin/sysctl は起動中にカーネルパラメータを変更するためのコマンドです。OpenVPN サーバは IP パケットを転送する必要があるため設定を変更します。

    $ sudo vi /etc/sysctl.conf
    net.ipv4.ip_forward = 1  ← 0 を 1 に変更して保存
    

    設定を反映させます。

    $ sudo /sbin/sysctl -e -p
    
    • -e → EC2 の AMI とインスタンスタイプの組み合わせによっては設定ファイルで指定された項目がカーネルパラメータとして存在しないため。エラーにせずに無視します
    • -p → /etc/sysctl.conf を読み込んで反映させます

    OpenVPN の設定

    インストール

    $ sudo yum install openvpn
    

    共有鍵の設定

    今回は鍵を共有することで通信の暗号化を行うように設定します。

    myinstance-1-1 (10.1.1.4, EIP 52.6.58.160)

    $ sudo openvpn --genkey --secret /etc/openvpn/secret.key
    

    myinstance-2-1 (10.2.1.4, EIP 52.6.159.238)

    何らかの方法で手動で鍵をコピーしてきます。権限を変更します。

    $ sudo chmod 600 /etc/openvpn/secret.key
    

    設定ファイルの作成

    myinstance-1-1(52.6.58.160):/etc/openvpn/1-to-2.conf

    port 1194
    proto udp
    dev tun  ←トンネル
    secret "/etc/openvpn/secret.key"
    
    remote 52.6.159.238  ←相手のVPNサーバ
    route 10.2.0.0 255.255.0.0  ←ルーティングするパケット
    
    ifconfig 169.254.255.1 169.254.255.2  ←OpenVPN同士で利用する自分と相手のIP
    
    status openvpn-status.log
    verb 3
    

    myinstance-2-1(52.6.159.238):/etc/openvpn/2-to-1.conf

    port 1194
    proto udp
    dev tun
    secret "/etc/openvpn/secret.key"
    
    remote 52.6.58.160
    route 10.1.0.0 255.255.0.0
    
    ifconfig 169.254.255.2 169.254.255.1
    
    status openvpn-status.log
    verb 3
    

    OpenVPN の起動および動作検証

    myinstance-1-1 (10.1.1.4, EIP 52.6.58.160)

    $ sudo openvpn --config /etc/openvpn/1-to-2.conf
    

    myinstance-2-1 (10.2.1.4, EIP 52.6.159.238)

    $ sudo openvpn --config /etc/openvpn/2-to-1.conf
    

    以下のように表示されれば VPN 接続成功です。

    ...
    Wed May  6 14:16:27 2015 Peer Connection Initiated with [AF_INET]52.6.159.238:1194
    Wed May  6 14:16:28 2015 Initialization Sequence Completed
    

    動作検証

    myinstance-1-2 (10.1.2.4, EIP 52.6.133.31)

    $ ping 10.2.2.4
    

    myinstance-2-2 (10.2.2.4, EIP 52.6.254.18)

    $ ping 10.1.2.4
    

    サービスとして起動

    $ sudo service openvpn start
    

    ログファイル

    $ sudo cat /var/log/messages | grep openvpn
    $ sudo cat /etc/openvpn/openvpn-status.log
    
    0
    詳細設定を開く/閉じる
    アカウント プロフィール画像 (本文下)

    データサイエンティスト。PythonとRでデータ解析を行っています。

    記事の執筆者にステッカーを贈る

    有益な情報に対するお礼として、またはコメント欄における質問への返答に対するお礼として、 記事の読者は、執筆者に有料のステッカーを贈ることができます。

    さらに詳しく →
    ステッカーを贈る コンセプト画像

    Feedbacks

    Feedbacks コンセプト画像

      ログインするとコメントを投稿できます。

      関連記事

      • Ciscoルータの基本操作
        シスコ社の製品のうち、ルータは Cisco*** という製品名でスイッチは Catalyst*** という製品名です。いずれも *** は機種番号で、数字が小さいほど小規模ネットワーク向けとなっています。例えば資格試験 CCNA Routing and Switching では小規模および中規模ネットワークが対象です。そのため、中小規模のネットワークのルータおよびス
      • BIND 9 ゾーンファイル Dynamic Update の設定方法
        DHCP 環境下などで IP が動的に付与される場合は DNS レコードを動的に更新する必要があります。これを実現する Dynamic Update 機能が BIND 9 には実装されています。使用方法をまとめます。Dynamic Update に対応した DNS を特に Dynamic DNS または DDNS とよぶことがあります。 ゾーンファイルの作成 ローカルホストに example.co...
      • VyOS の基本的なルーティング設定
        本ページでは、複数の LAN をつなぐルータとしての設定方法をまとめます。具体的には、スタティックルーティングおよびダイナミックルーティング (RIP/OSPF/BGP)の設定方法を把握します。 設定方法を検証するための構成 ルーティング設定の検証を行うために VirtualBox で 5 台の VM を用意します。ホスト OS から vyos-0001 へ SSH 接続する部分を除き、「内部ネッ...
      • BIND 9.10.2 の公式マニュアルに学ぶ DNS の基本
        DNS の実装としては Internet Systems Consortium (ISC) の Berkeley Internet Name Domain (BIND) が有名です。本ページは公式サイトの Documentation からダウンロードできる v9.10.2 の PDF マニュアルおよび『DNSの仕組み完全解説』から基本事項を抽出してまとめ
      • スタティックルートの設定
        サムネイル画像-73e0bcdf3a
        インターフェイスに IP を設定しただけでは他のデバイスと通信できません。各デバイスにルーティングテーブルを設定する必要があります。ルーティングテーブルの設定方法には動的に自動設定するものと、静的に手動設定するものの二種類があります。ここでは静的に手動設定するスタティックルートの方法を紹介します。 具体的にはまず PC0, PC1, Router0, Router1 それぞれ
        あきらあきら10/7/2021に更新
        いいねアイコン画像0