2017/03/13

さくらのクラウドのVPCルータを使って学ぶVPN接続の基礎

パブリッククラウドを使うときに一番気になるのが「セキュリティ」だ。私自身、インフラやネットワークについてはド素人なので「とりあえずVPN接続ってやつをすればいいんでしょ?」程度の知識しかない。VPNについてなんとなくわかっているが、どのような仕組みでセキュアな接続ができるか知らない。

ちょうどさくらのクラウドの2万円クーポンが手元にあるので、VPCルータアプライアンスを使って、VPN接続について掘り下げて勉強しようと思う。目標は「VPCルータにVPN接続し、クラウド上のサーバにアクセスする」だ!



VPCルータ とは


VPCルータは、VPC(Virtual Private Cloud)環境を簡単に構築できる仮想ルータアプライアンスです。
VPCルータ | さくらのクラウドニュース

ちょっと何言ってるかわかんないっす。

なので、詳しく調べた。


クラウド・コンピューティング とは

まずはクラウド・コンピューティング(以下クラウドと呼ぶ)について知る必要がある。

クラウドは、サーバやストレージ、ネットワークなどの物理的なコンピュータリソースを、好きなときに、好きなだけ使えるシステムのことをいう。
そして、クラウドには大きく分けて「パブリック・クラウド」と「プライベート・クラウド」がある。


パブリック・クラウド と プライベート・クラウド

パブリック・クラウドは、AWSをはじめ、GCP、Azure、IDCF、そして今回利用するさくらのクラウドなどがあげられる。
法人・個人に関係なくクラウド環境をインターネット経由で提供しており、利用者がハードウェアを所有することなく、好きなときに必要な分だけ(時間単位で利用可能)利用できるようにしたサービスだ。
ハードウェアのメンテナンスコストがなく、利用料が安く抑えられるメリットがある反面、1つのホストサーバに複数のユーザのサーバ(インスタンス)が収容されるので自社のポリシーが適用できなかったり、サーバにもインターネット経由でアクセスしたりとセキュリティ的に不安な一面もある。

対し、プライベート・クラウドは、主に企業が自社専用のクラウド環境を用意し、社内で好きに利用できる形態だ。ハードウェアやネットワークを自社で所有するので、好き勝手使えるクラウド環境ともいえる。こちらはすべて自社で賄わなければならずコストが高い反面、独自のセキュリティポリシーが適用でき、また自社のプライベートなネットワークからアクセスできるのでセキュリティ的にも安心できる。


VPC(Virtual Private Cloud)とは

話を戻して、VPC(Virtual Private Cloud)とは、バーチャルなプライベート・クラウド、言い換えればパブリック・クラウドをプライベート・クラウドっぽく使うための環境といえる。
具体的には、クラウド上に構築したネットワークをユーザのネットワークに接続することで、クラウド上の資産をあたかもプライベート・ネットワーク内の一部として利用できる



VPN とは


VPNとは、Virtual Private Networkの略。
また、VirtualとPrivateがでてきたけど…。

プライベート・ネットワーク とは

Virtual Private Networkは、バーチャルなプライベート・ネットワークなので、まずはプライベート・ネットワークについて学ぶ必要がある。

インターネットは誰でも利用できるので、通信内容の盗聴や改ざん、なりすましといったセキュリティリスクがつきまとってくる。たとえば、個人情報が詰まったデータを本社から支社に送信したとする。何の対策をしていないと「悪意をもった人」によりデータの中身が見られてしまったり、改ざんされてしまったりと重大な問題を引き起こしてしまう。

そこで、他のネットワークとは一切接続されていない専用回線を使って、本社と支社をつなぐことで(内部の犯行でない限り)盗聴や改ざんをされることはない。
専用回線などにより外部に公開しないよう構築されたネットワークを、プライベート・ネットワークとよぶ。


VPN(Virtual Private Network) とは

専用回線をつかうプライベート・ネットワークを構築するには、膨大なコストが必要だ。
そこでプライベート・ネットワークをバーチャル(仮想的)に構築して、セキュアな接続を可能にした技術がVPNである。

専用回線ではなくインターネットを使うものの、トンネリングと暗号化という技術を使って安全なネットワークを構築できる。


トンネリングとは、ネットワークの2点間をトンネル(仮想回線: 2点間を直結する1本の回線)で繋ぎ、入口と出口にいる人以外には中を通っているデータを見えなくするための技術。
やりとりするデータは、パケット(データの小さな塊)に新たにヘッダ情報を付加し、中身が見えないようにカプセル化されてから通信される。

しかし、トンネリングだけではデータの中身が見えてしまうので、秘密鍵と公開鍵を使ってパケットを暗号化/複合して、第三者による盗聴や改ざんを防いでいる。


サイト間VPN と リモートアクセスVPN

VPNについて説明してきたが、実はVPN接続にも2種類ある。
ひとつはLANとLANをつなぐサイト間VPN(LAN間接続VPN、拠点間接続VPNともいう)
もうひとつは個人PCなどからプライベート・ネットワークにつなぐリモートアクセスVPNがある。


サイト間VPNは、本社と支社のルータ同士を繋いだり、クラウド上のVPCルータと会社のルータを繋ぐときに使う。VPCルータを使うとクラウド上にあるサーバやストレージをあたかも社内サーバのごとく利用することができる。

リモートアクセスVPNは、外出中の人やリモートワークしている人が自社のネットワークに接続するときに使う。会社のプライベート・ネットワークにはファイルサーバやWebサーバなどがあり、ほとんどの場合社外からアクセスできない。普通にインターネット経由で接続してもアクセスできないのだ。そこでリモートアクセスVPNを使って、自分のPCを社内ネットワークに接続することで、社内のファイルサーバやWebサーバにアクセスできるようになる。


今回は、自分のPCとクラウド上のネットワークを繋ぎたいので、リモートアクセスVPNを使う。



リモートアクセスVPN


さくらのクラウドのVPCルータは、2つのVPNプロトコルに対応している。
  • PPTP(※1)
  • L2TP/IPsec(※2)
どちらのプロトコルも通信手段は似ている。
  1. 準備: 通信相手のVPN装置(ルータ)が本物かどうか確認する
    • PPTPでは、PPP(※3)が持っている認証機能を利用する
    • IPsecでは、IKE(※4)という手順を使う
  2. 準備: 送受信するデータを暗号化するために、暗号鍵を取り決める(鍵を交換する)
    • 送信側と受信側で同じ暗号鍵を持つことになる
  3. データの暗号化・カプセル化をする
    • 手順2で取り決めた暗号鍵を使ってIPパケットを暗号化し、ヘッダを付けてカプセル化する
  4. 手順3でカプセル化したデータを送信する

※1: PPTPとは、Point-to-Point Tunneling Protocolの略で、※3で説明するPPPを拡張したプロトコル。

※2: L2TP/IPsecとは、Layer 2 Tunneling Protocol / Security Architecture for Internet Protocolの略で、L2TPの機密性の欠如を補うためIPsecと一緒に実装されるため、L2TP/IPsecとまとめて呼ばれている。
IPsecは暗号技術を使って、改ざん検知や秘匿機能を提供するプロトコル。

※3: PPPとは、Point-to-Point Protocolの略で、2点間でデータ通信を行うためのプロトコル。TPC/IP以外の通信プロトコルでも接続できるように設計されているため、主に電話回線やISDNを使って通信する。

※4: IKEとは、Internet Key Exchangeの略で、IPsecで暗号化通信をする前準備で、暗号鍵を安全に交換するために利用される通信プロトコル。UDPポート番号500で通信する。


PPTP と IPsec の違い

2つのプロトコルの違いを二言でいうと「一方通行で上り・下りのトンネルをそれぞれつくるか(IPsec)、両方通れるトンネルを1つつくるか(PPTP)」「セキュリティ重視なのがIPsec、速度重視なのがPPTP」である。

PPTPは、マイクロソフトが開発したMS-CHAPバージョン2というプロトコルを使う。ハッシュ値とユーザ名、パスワードを使って認証する。送信と受信を1つのトンネルで実現するため、通信速度を維持したまま接続できる。また、WindowsのOSにはPPTPクライアントとしての機能があるため、リモートアクセスVPNに向いているといわれている。

IPsecは、認証時にユーザ名ではなく、送信元のIPアドレスなどの情報を見て認証し、送信用・受信用のそれぞれのトンネルを用意して通信を行うので、フリーのwi-fiスポットなどセキュリティに不安がある回線でも安心して使うことができる。
ただし、送信元のIPアドレスを見て認証を行うので、接続する度にIPアドレスが違うことの多いリモートアクセスでは不向きといわれている。(使えないわけではない)


セキュリティには目をつむり、速度を重視するためにPPTPを使うか。
速度には目をつむり、セキュリティを重視するためにIPsecを使うか。


今回は、高速通信が必要なわけではないので、セキュリティを重視してIPsecによるVPN接続を行う。



VPCルータの機能


ようやくここから本題に。
さくらのクラウドのVPCルータには、以下のような機能がある。
  • NAT機能
    • IPマスカレード(Forward NAT)
    • ポートフォワーディング(Reverse NAT)
  • VPN機能
    • L2TP/IPsec
    • PPTP
  • ファイアウォール機能
  • syslog転送機能
などなど。


いっぱい機能があり、プランによっても使える機能が違ったりと、使い方が全然わからない。ただ、今回はVPN接続がしたいだけなので、VPN機能のL2TP/IPsecについてのみ触れる。



完成予想図


料金

今回は、以下の構成にする。
リソースプラン台数時割日割月割備考
サーバ1Core/1GB17円76円1,522円CentOS 7.3
ディスクSSD 20GB12円21円432円
VPCルータスタンダード112円129円2,571円
スイッチ-110円108円2,160円
合計(税込)31円334円6,685円
※ 2017/03/10時点の料金
※ リージョンは石狩(東京だと値段が違うので注意)

1時間以内であれば31円(税込)でVPN接続を体験することができる。


ネットワーク図

SAKURA CLOUDの枠で囲まれているところが、クラウド上のネットワーク。
サーバとVPCルータはインターネットと192.168.0.0/24のローカルネットワークに接続されている。
サーバのプライベートIPアドレスは192.168.0.10。グローバルIPアドレスも持っているので80番と433番ポートだけ開放しており、それ以外のアクセスは拒否する。メンテナンスをする場合は、VPN接続をしてサーバにアクセスする。

このような構成ですすめていく。



VPCルータを作成する


作成にちょっとだけ時間がかかるVPCルータから作成する。
メニューから[VPCルータ]を選択し、右上にある作成ボタンをクリックする。
  • プラン: スタンダード
  • 名前: VPC
  • 説明: VPN接続用
入力がおわったら、作成ボタンをクリックする。VPCルータが利用可能になるまでにちょっと時間がかかるので、今のうちにスイッチやサーバを作成する。



スイッチを作成する


ネットワークを構築する(サーバとVPCルータを繋ぐ)ためにスイッチを作成する。
メニューから[スイッチ]を選択し、右上にある作成ボタンをクリックする。

  • 名前: 192.168.0.0/24
    • スイッチの名前にIPアドレスを書いておくとわかりやすい気がする
  • 説明: VPN接続用
  • ルータ: いいえ

今回はスイッチだけで良いのでルータは有効にしない。
入力がおわったら、作成ボタンをクリックする。



サーバを作成する


今回はWebサーバに見立てたサーバを作成する。
HTTP/HTTPSの80,443番ポートだけ開放し、それ以外は拒否する。

メニューから[サーバ]を選択し、右上にある作成ボタンをクリックする。
さらに[シンプルモード]にチェックが入っていることを確認し、設定を行う。
※ シンプルモードのチェックを外すとより高度な設定ができるようになる


  • ディスクイメージ: CentOS 7.3 64bit
  • サーバプラン: 1GB/1仮想コア
  • ディスクプラン: 20GB SSDプラン
  • 接続先のネットワーク: インターネット
    • NIC0はインターネットに接続する
    • NIC1にはローカルネットワークに接続するために192.168.0.10を指定する予定
  • サーバの設定
    • 管理ユーザのパスワード: (任意のパスワード)
    • 公開鍵: なし
      • 本来ならセキュリティ上の観点から公開鍵は設定すべき!
      • サーバを乗っ取られるといくらスイッチに接続されているサーバすべてが乗っ取られる場合がある
  • ホスト名: cloud
  • 作成数: 1
入力がおわったら、作成ボタンをクリックする。



サーバとスイッチを接続する


サーバ一覧からさきほど作成したサーバの詳細ページを開く。
[NIC]タブにある追加ボタンをクリックし、新しいNICを追加する。
※ NIC追加はサーバが停止していないとできないので、起動している場合はシャットダウンする

追加されたNIC1のグリッドを右クリック(または右端の▼をクリック)し、[接続の編集]をクリックする。そして、さきほど作成したスイッチと接続し、更新ボタンをクリックする。

同様に、追加されたNIC1のグリッドを右クリックし、[IPv4アドレスを編集]をクリックし、サーバのIPアドレス(192.168.0.10)を指定し、更新ボタンをクリックする。

ここまで終わると、NICの設定が以下のとおりになる。

残念なことに、コントロールパネルからはサーバとスイッチを接続することはできても、NIC1のIPアドレスを変更することができない(現時点では)
※ NIC0は「ディスクの修正」機能を使うことで、コントロールパネルから変更可能

ということでサーバにログインし、IPアドレスの変更を行う。



NIC1のIPアドレスを変更する


さきほど作成したcloudサーバにログインし、IPアドレスを変更する。
※ コントロールパネルのコンソール機能からログインすることもできる
※ sshクライアントを使って接続する場合は、CentOSの管理者ユーザ(root)でログインする


以下のコマンドを実行し、追加したNICの情報を確認する。
ip a show dev eth1
3: eth1:  mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
    inet6 xxxx::xxxx:xxxx:xxxx:xxxx/64 scope link
       valid_lft forever preferred_lft foreve

次に、IPアドレスを恒久的に変更する。(中にはOSを再起動するとリセットされるタイプの設定もあるので注意)
私自身、CentOS 7.xに詳しくないので、nmtuiコマンドを使って以下のようなGUIから設定する。

$ nmtui

接続の編集
↓
Wired connection 1
↓
IPv4の設定
* 手作業
* アドレス: 192.168.0.10/24
* ゲートウェイ: 192.168.0.1
↓
OK
↓
Back
↓
終了

# nmtuiの設定だけだとIPアドレスの変更が反映されないので、ネットワークサービスを再起動する
$ systemctl restart network.service

# NIC1の確認
$ ip a show dev eth1
3: eth1:  mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.10/24 brd 192.168.0.255 scope global eth1
       valid_lft forever preferred_lft forever
    inet6 xxxx::xxxx:xxxx:xxxx:xxxx/64 scope link
       valid_lft forever preferred_lft forever

これでプライベートIPアドレスの設定ができた。
あとはスイッチとVPCルータを繋ぎ、VPN接続できるように設定するだけだ。



サーバにパケットフィルタを適用する


いままでグローバルIPアドレスからsshでログインしてNICの設定をいじっていた。
(コントロールパネルのコンソールを使っている場合は違うけど)

サーバにログインして行う設定はすべて終わったので、不要なポートはすべて閉じる。
今回の192.168.0.10のサーバはWebサーバという体なので、80番ポートと443番ポートだけを開放し、それ以外はすべて拒否する。


パケットフィルタを作成する

まずはサーバに適用するためのパケットフィルタを作成する。
メニューから[パケットフィルタ]を選択し、右上にある作成ボタンをクリックする。

  • ルールのコピー元: なし
  • 名前: (任意の名前)
  • 説明: (任意の説明)
入力がおわったら、作成ボタンをクリックする。



ルールを設定する

先述のとおり、Webサーバ用のパケットフィルタなので、HTTP:80番ポートとHTTPS:443番ポートだけ許可する。

パケットフィルタ一覧からさきほど作成したパケットフィルタの詳細ページを開く。
[ルール]タブにある追加ボタンをクリックし、パケットフィルタのルールを定義していく。
※ ルールは上から(番号が若い順から)適用されるので順番に注意(作成後でもドラッグ&ドロップで変更可能)
#プロトコル送信元ネットワーク送信元ポート宛先ポートアクション説明
1tcp(空欄)(空欄)80allowhttp
2tcp(空欄)(空欄)443allowhttps
3ip(空欄)--denyすべてのパケットを拒否

そのままではパケットフィルタのルールが設定されないので、反映ボタンをクリックする。


サーバにパケットフィルタを適用する

パケットフィルタの設定がおわったので、次にサーバに適用する。
サーバ一覧から作成したサーバの詳細ページを開く。
[NIC]タブから共有セグメントのグリッドを右クリック(または右の▼をクリック)し、[パケットフィルタを編集]をクリックする。

  • パケットフィルタ: (さきほど作ったパケットフィルタ)
パケットフィルタを選択したら、更新ボタンをクリックする。
これでパケットフィルタのルールがサーバに適用され、httpの80番ポートとhttpsの443番ポート以外ではアクセスできなくなった。
# グローバルIPアドレスからsshでログインする
$ ssh root@xxx.xxx.xxx.xxx
ssh: connect to host xxx.xxx.xxx.xxx port 22: Operation timed out

今回は勉強のためなのでhttp:80、https:443だけを許可する設定にした。
しかし、このままでは時刻を同期するためのntpや、パッケージをインストールするためのyumなどが使えなくなっている。
そんな場合は、パケットフィルタ[ルールのコピー元]で[不要ポートのフィルタ(Linux用)]というプリセットを選択すると楽に設定できる。


VPCルータにスイッチを接続する


サーバとスイッチは接続できたので、次はVPCルータとスイッチを接続する。
VPCルータ一覧から最初に作成したVPCルータの詳細ページを開く。
次に、[インターフェース]タブから[プライベート1]にスイッチを接続する。
  • スイッチ: 既存のスイッチを接続
  • 接続先スイッチ: さきほど作成したスイッチ(192.168.0.0/24)
  • IPアドレス: 192.168.0.1
  • プリフィックス: /24
入力がおわったら、更新ボタンをクリックする。
ただ、このままではVPCルータに設定が投入されないので、右上の反映ボタンをクリックする。


設定がおわると、以下のようになる。

マップ機能を使うと、現在のネットワーク環境を可視化してくれる。
これで、完成予想図で提示したネットワーク図と同じになったことが確認できた。



VPCルータにリモートアクセスの設定をする


サーバ、VPCルータ、スイッチ、すべてを接続し終わったので、次にVPN接続するための設定を行う。先に説明した「L2TP/IPsec」のあたりだ。

VPCルータ一覧からVPCルータの詳細ページを開く。
次に、[リモートアクセス]タブ > [L2TP/IPsecサーバ]タブを選択し、編集ボタンをクリックする。

  • L2TP/IPsecサーバ: 有効
  • 動的割り当て範囲(開始): 192.168.0.200
  • 動的割り当て範囲(終了): 192.168.0.210
  • Pre Shared Secret: sacloud 
動的割り当て範囲は、L2TP/IPsecクライアントに割り当てるIPアドレスの範囲。
サーバのプライベートIPアドレスを被るとアクセスできなるので、スイッチを接続したときのIPアドレスのブロック(192.168.0.0/24)から、サーバと被らなさそうなIPアドレスの範囲を設定する。

Pre Shared Secretは、事前共有キーや共有シークレットなどと訳されている場合が多い。あらかじめVPCルータに合言葉を設定しておき、VPN接続するときに使う。
VPCルータとスイッチを接続したときと同様に、そのままではVPCルータに設定が投入されないので、反映ボタンをクリックする。



リモートアクセスするためのアカウントを作成する


VPCルータの詳細ページの[アカウント]タブから、追加ボタンをクリックしてリモートアクセスのアカウントを作成する。ここで登録したアカウントは、VPN接続するときのユーザ認証に使われる。
  • ユーザ名: (任意のユーザ名)
  • パスワード: (任意のパスワード)
入力がおわったら、追加ボタンをクリックする。
VPCルータとスイッチを接続したときと同様に、そのままではVPCルータに設定が投入されないので、反映ボタンをクリックする。



クライアントのVPN設定をする


ようやくクラウド上での設定がすべて終わったので、サーバ、VPCルータを起動する。そして、クライアント(個人のPC)からVPCルータにVPN接続し、サーバにsshでログインする。


まずVPCルータのグローバルIPアドレスを知る必要がある。
VPCルータの詳細ページを開き、[インターフェース]タブのグローバル:共有セグメントと書かれているところのIPアドレスを確認する。


クライアントPCを設定する(macOSの場合)

ネットワークの環境設定を開き、左のリストの下にある[+]ボタンをクリックする。
  • インターフェイス: VPN
  • VPNタイプ: L2TP over IPSec
    • PPTPを使う場合は、VPNタイプをPPTPにする
  • サービス名: (任意のサービス名)
入力がおわったら、作成ボタンをクリックする。


次に、VPCルータに接続するためにIPアドレスやリモートアクセスのアカウントを設定する。
  • 構成: デフォルト
  • サーバアドレス: さきほど確認したVPCルータのグローバルIPアドレス
  • アカウント名: リモートアクセスのアカウントで作成したアカウント名
  • 認証設定
    • ユーザ認証.パスワード: リモートアクセスのアカウントで作成したアカウントのパスワード
    • コンピュータ認証.共有シークレット: リモートアクセスのL2TP/IPsecサーバで指定したPre Shared Secret



クライアントPCを設定する(Windows7の場合)

コントロールパネルからネットワークと共有センターを開き、[新しい接続またはネットワークのセットアップ]をクリックする。

[職場に接続します]を選択し、VPN接続のセットアップウィザードを実行する。

次に接続方法を選択する。ここでは[インターネット接続(VPN)を使用します]をクリックする。

次に接続先のVPCルータの情報を入力する。
  • インターネット アドレス: さきほど確認したVPCルータのグローバルIPアドレス
  • 接続先の名前: (任意の名前)
  • オプション: 事前共有キーを設定する必要があるので[今は接続しない]を選択
入力がおわったら、次へボタンをクリックする。

リモートアクセスのアカウントを設定する。
  • ユーザ名: リモートアクセスのアカウントで作成したアカウント名
  • パスワード: リモートアクセスのアカウントで作成したアカウントのパスワード
  • このパスワードを記憶する: (任意)
入力がおわったら、作成ボタンをクリックする。


次にL2TP/IPsecで接続するために、VPNの設定を変更する。
ネットワークと共有センターの[アダプターの設定の変更]をクリックし、さきほど作成したネットワークを選択し、[この接続の設定を変更する]をクリックする。

プロパティのセキュリティタブの[VPNの種類]から、「IPsecを利用したレイヤー2トンネリングプロトコル(L2TP/IPSec)」を選択する。


次に、同タブの詳細設定ボタンをクリックし、事前共有キーの設定を行なう。
事前共有キーには、リモートアクセスのL2TP/IPsecサーバで指定したPre Shared Secretを入力する。
入力がおわったら、OKボタンをクリックして、VPNの設定は完了。

さきほど作成したVPNを選択し、[この接続を開始する]でVPN接続できる。

VPN接続でサーバにsshでログインする

VPNの設定が終わったら、接続ボタンをクリックし、VPCルータにVPN接続する。
「接続済み」と表示されればOK!

最後にクライアント(個人のPC)からクラウド上にあるサーバにsshでログインする。
# pingで疎通を確認
$ ping 192.168.0.10

# sshでログインする
$ ssh root@192.168.0.10

ログインしようとしたときに、次のようなワーニングが表示されることがある。
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx.
Please contact your system administrator.
Add correct host key in /Users/rikko/.ssh/known_hosts to get rid of this message.
Offending RSA key in /Users/rikko/.ssh/known_hosts:43
RSA host key for 192.168.0.10 has changed and you have requested strict checking.
Host key verification failed.
このメッセージは過去に192.168.0.10というサーバにアクセスしたことがある場合、そのサーバと今回接続するサーバの中身が違うよ!という警告だ。

サーバにはじめて接続するとき、以下のようなメッセージを見たことはあるだろうか?
The authenticity of host 'xxx.xxx.xxx.xxx (xxx.xxx.xxx.xxx)' can't be established.
RSA key fingerprint is xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx.
Are you sure you want to continue connecting (yes/no)?
ここでyesと答えると、.ssh/known_hostsというファイルに接続先ホスト(サーバ)の情報(RSA公開鍵のフィンガープリント)が登録される。そのフィンガープリントと今回接続しようとしているホストのフィンガープリントが異なるため、このような警告が表示される。

その場合は、known_hostsから対象のフィンガープリントを削除すればよい。ただし手作業で削除するのは骨が折れるし、間違って編集してしまう危険性があるのでssh-keygenコマンドを使う。
# ホストの情報を削除する
$ ssh-keygen -R 192.168.0.10

# 再度ログインする
$ ssh root@192.168.0.10

以上で、さくらのクラウドのVPCルータを使ってVPN接続する方法は終わり。
ネットワークには苦手意識があったものの、手を動かしてみると思ったより簡単にVPN接続することができた。手を動かすの大事!



参考サイト





以上

written by @bc_rikko

0 件のコメント :

コメントを投稿