V6プラス自宅LANに外出先からアクセス②VPS基本設定


外出先から、サーバ公開できない自宅LANにアクセスするため。

まずは、クラウドIaaSサーバ/VPS/レンタルサーバのどれかと契約します。事業者やサービスにより呼び方は異なりますが、ここではVPSと呼称致します。


どんなVPSを契約すれば良いの?

次の条件のVPSを選択します。

  1. グローバルIPアドレスでインターネットからアクセス可能。
  2. 固定IPである必要はありません。可変でも大丈夫です。
  3. OpenVPNがインストール可能。サーバとして動かすためCentOS等のLinuxがより安全かと思います。
  4. ネットワーク性能は高ければ良。
    通信量(トラフィック)の制限が厳しくないもの。
  5. ストレージ容量は最低限で大丈夫。
  6. CPU,メモリー性能もそこそこで。

クラウドサーバの事業者により、コースや料金、特徴も様々あるかと思いますが、どれが良いかと申しますと・・・

・・・先生!よく分かりません!

ここは手探りで、実験も兼ねまして。まずは月額がワンコインで収まる、IDCFクラウドに契約してみました。

Light.S1の仮想マシンを作成し、OSはCentOSを選択しました。バージョンは7.4のようです。

以降、こちらの仮想マシンを対象に、構築のご説明を進めさせて頂きます。

ちなみにクラウドサーバ事業者が提供するVPNサービスは利用しません。VPNサービスの契約は不要です。本当に最低限のVPSのみ契約したかたちです。


VPSのネットワーク設定

ファイアウォール

  1. ssh用にTCPパケットを許可(必須)。任意のポート番号(IANA公式22番)。
  2. OpenVPN用にUDPパケットを許可(必須)。任意のポート番号(IANA公式1194番)。
  3. ping用にICMPパケットを許可(オプション)。

セキュリティをより高めたい場合、sshとOpenVPNのポート番号は、公式とは別のものに変えたほうが良いようです。OpenVPNのポート番号は、外出先の環境で使用しやすいもの(たとえば80や443等)に変える場合もあるようです。VPNを使う上でTCPとUDPに機能的な違いは無いため、よりセキュリティの高いUDP推奨です(詳細はOPenVPN HOWTOを御覧ください)。

ポートフォワード

sshとOpenVPNのポートフォワードを設定しました。

sshのポート番号を変えたい場合、パブリックポートをファイアウォールで設定した別のポート番号と同じにします。

OpenVPNのポート番号は、あとでOpenVPNサーバのserver.confを作るときに設定し、パブリックポート、プライベートポートをその設定に合わせるかたちにします。

まずは公式ポート番号で構築・動作確認してから、あとからポート番号を変える方がスムーズに進みそうです。


VPSへログイン・ファイル転送しやすい工夫

TeraTerm

TeraTermでsshログインする場合。

下記の内容の拡張子.ttlファイルを作成し、TTPMACRO.EXEで開くように関連付けしておくと便利です。パスワードを記録したくない場合、/ask4passwdを使います。

HN = '<VPSのIPアドレス・ホスト名>'
PT = '<sshポート番号>'
UN = 'root'
KF = '<RSAプライベート・キーのファイルパス>'
PW = '<ログインパスワード>'
; sprintf2 CMD '%s:%s /ssh2 /KR=UTF8 /KT=UTF8 /auth=publickey /user=%s /keyfile=%s /ask4passwd' HN PT UN KF
sprintf2 CMD '%s:%s /ssh2 /KR=UTF8 /KT=UTF8 /auth=publickey /user=%s /keyfile=%s /passwd=%s' HN PT UN KF PW
connect CMD
end

このファイルをコピーしてマクロを書き足すことで、自動実行の仕組みを作ったりできます。(ログイン後サーバやサービスを再起動したり、ログを見たり、管理画面を開いたり)

WinSCP

RSAプライベート・キーをPuTTYユーザー・キー(ppkファイル)に変換すれば、WinSCPでファイル転送を行えます。

puttygen.exeを起動して

Conversions→import key→RSAプライベート・キーを選択します

安全のため、パスフレーズ(パスワード)を2回入力してから、「Save private key」ボタンをクリックしてppkファイルを作ります。

WinSCPのログイン→設定→高度なサイトの設定を開き、秘密鍵にppkファイルを指定しておけば、WinSCPでsshファイル転送を行なえます。


今後、OpenVPNを使うにあたり、クライアント用のキーファイル等を何度か転送する必要があります。

この時、必ずセキュアと呼ばれる暗号化された安全な経路で転送して下さい。Eメールはセキュアではありません。サーバの盗聴や乗っ取り等の被害を防ぐために、上記のような公開鍵による暗号を利用した、SFTPやSCPで転送することをお勧めします。


ダイナミックDNS設定

VPSにグローバルIPアドレスが割り当てられていると思いますが。IPアドレスの変更や、VPSを変更したい場合に備えて、ホスト名でアクセスできるようにします。

お好みのダイナミックDNS(DDNS)を選んで頂いて大丈夫です。今回はno-ipを利用してみました。

no-ip

こちらの記事を参考にアカウントを作成します。

次に、no-ipのIPアドレス更新ソフトをビルドします。コンパイルにgccが必要のようですね。

yum install gcc
wget http://www.no-ip.com/client/linux/noip-duc-linux.tar.gz
tar zxvf noip-duc-linux.tar.gz
cd noip-2.1.9-1
make

警告が表示されつつ、無事にビルドされたようですので、インストールします。

make install

作成したログイン名またはEメールアドレス、パスワード等を入力し、インストールを進めます。

あとは、自動起動の設定ですが。

同じフォルダにあるredhat.noip.shを使って、initから起動する方法もありますが。今回はsystemdを使って起動するように設定します。

こちらの情報を参考に、systemdの起動スクリプトを使わせて頂きたいと思います。

wget https://gist.githubusercontent.com/NathanGiesbrecht/da6560f21e55178bcea7fdd9ca2e39b5/raw/ea1ef414bda8a33f329dff1ab853016040b89891/noip2.service
cp noip2.service /usr/lib/systemd/system
systemctl enable noip2.service
systemctl start noip2.service

これで、IPアドレスの他に、ホスト名でVPSへアクセスできるようになりました。


以上で、VPSの基本設定を行った感じです。お疲れ様でした!

次回はOpenVPNサーバを構築したいと思います。


V6プラス自宅LANに外出先からアクセス

スポンサーリンク

フォローする

スポンサーリンク