遠くのニュースかと思っていた 新型コロナウィルスが、世界中で蔓延してしまいました。

中国での報道を観ていると、凄まじい勢いで拡大していたので、日本でも広がるだろーなーと思っていたら、やはり蔓延してしまいました。

こうなると外出規制とかあって、仕事に行くこともままならない状態ですよ。

芸能人も死んじゃったりしてると、感染は、避けたいです。

しかしながら、仕事をしなければ生活がなりたたないですよね。

じゃー、テレワークだーとかって、急には無理だぜ 特に中小企業さんには、荷が重いし

会議とかは、フリーの ZoomやMicrosoft Terms、Line Businessとかでなんとかなるけど、会社のPCがなきゃ無理ってこともあるでしょう

そこで、自宅のPCから店舗や会社へなるべく無料でリモート接続する方法を紹介します。

ちゃんと、セキュリティも確保するんで、ご安心を

とりあえず、Windowsを想定していますが、Macでも同じことが出来ますよ

 

概略

簡単な仕組みを説明しますね。

店舗や会社のPCをリモートPCと呼びます。自宅のPCをローカルPCと呼びます。 

ローカルPCからリモートデスクトップでリモートPCへ接続します。

この方式ですと、既存のインフラに変更を加えないので、今回のようにその場しのぎな状況には、うってつけのやり方と思います。

TCP接続1本でなんとか出来るとはいうものの、本来のVPNのような効率の良い通信が出来るものではありません。

しっかりとしたテレワーク環境を整えるまでの、時間稼ぎに使いましょう。

リモートPCは、店舗や会社のネットワークに接続されていれば、自身のPCでなくても結構です。

前提として、リモートPCとローカルPCは、インターネットへ接続出来ることとします。

必要な物は、VMware Workstation Player 、AWS(Amazon Web Services)、Vyos、teratermかputty です。

VMware Workstation Playerは、無料で試用可能です。

AWSは、一年間無料で試用可能です。

Vyosは、rollingreleaseを無料使用可能です。

 

1. 仮想VYOS構築

VyosというソフトウェアルーターをローカルPCに構築します。

今回は、実マシンに構築せずに仮想マシンとして構築します。

ですから、VMware PlayerをローカルPCにセットアップして下さい。

VyosのイメージISOをダウンロードします。

VMware Playerにて、仮想マシンをVyosのイメージISOを使って新規作成します。

仮想マシン設定は、以下です。

メモリ 500MB

プロセッサ 1 以上

ハードディスク 5GB

CD/DVD : VyosイメージISO

ネットワークアダプタ ブリッジ(自動)

ディスプレイ 自動検出

 

ということで作成した仮想マシンを起動すると、ログインプロンプトが表示されます。

初期ユーザーとパスワードは、 共に vyosです。

User: vyos

Pass: vyos

ログイン出来ると、不愛想なプロンプトが表示されます。

vyos@vyos:~$ 

vyosの操作の基本を説明しておきます。

動作設定を行うには、configureコマンドを入力します。

すると、プロンプトが以下のように変化します。

vyos@vyos# 

この状態でしか動作設定コマンドを受け付けないので、気を付けてください。

動作設定を反映するには、commitコマンドを入力します。

動作設定を保存するには、saveコマンドを入力します。

動作設定から抜ける時は、exitを入力します。

上記、3コマンドをセットで忘れないようにして下さい。

 

ISOイメージから起動しただけですので、仮想マシンにvyosをインストールします。

install image を入力して下さい。

すると、色々と聞いてくるので適当に答えていきます。

Partition(Auto/Parted/Skip) [Auto]

Install the image on? [sda]

Continue? (Yes/No)[No]  <- ここは、Yesと答えて下さい。

How big of ... 

What would you ...

Which one ...

Enter password for user 'vyos' : [パスワード] <- ここは、パスワードを入力して下さい。 後で、外部からのパスワードログインを停止するので、ユーザー名と同じ vyosでも良いです。

Which drive GRUB ...

全て完了すると、また、不愛想なプロンプトに戻るので、一旦、シャットダウンします。

poweroffコマンドを入力します。 次に y を入力します。

仮想マシンが停止すると、VMware Playerも終了するので、もう一度、起動して下さい。

一応、VyosイメージISOは、必要無くなったので、切り離しておいて下さい。 まー、別にセットされていても害は無いですけど。

再び、 VMware Playerで、Vyosを起動します。

またまた、ログインプロンプトが表示されるので、先ほど入力した、ユーザー(vyos)、パスワードを入力します。

 

では、いよいよ本格的な設定を行います。

リモートPCのネットワーク環境に合わせてVyosも設定します。

動作設定モードに入ります。

configure

ほとんどの方は、DHCPによる自動IP取得だと思うので、以下でよろしいかと思います。

set interfaces ethernet eth0 address dhcp

もし、うちは、硬派に固定IPなんだよって方は、以下のように設定して下さい。

set interfaces ethernet eth0 address [任意のIPアドレス]/[マスクビット数]

set protocols static route 0.0.0.0/0 next-hop [ゲートウェイアドレス]

set system name-server [DNSアドレス]

次に、リモート接続出来るようにsshサーバを起動します。

set service ssh port 22

次に、ssh鍵を作成します。

ssh-keygen -t rsa

コマンドを入力すると、以下のように聞かれるので適当に答えます。

Generating public/private rsa key pair.
Enter file in which to save the key (/home/vyos/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:

全部、リターンで良いです。 

これで、大変重要な鍵を作成しました。

これが外部に漏れるとノーガード状態になってしまうので、慎重に扱って下さい。

作成した鍵ファイルは、最後に接続する時に使用する大切なファイルなので、仮想マシンから取り出して保存して置きます。

これが、なかなか面倒臭いのですが、teratermというソフトやwinscpなんかで、コピーする必要があります。

vyosのIPアドレスは、

show interface を入力すると表示されます。

鍵のありかは、 /home/vyos/.ssh/id_rsa です。 <- この鍵ファイルは、秘密鍵と呼びます。

 

コピーが完了してから、次にssh鍵を設定して、外部からのパスワードログインを停止します。

loadkey vyos ~/.ssh/id_rsa.pub

set service ssh disable-password-authentication

これで、vyosは、完了です。

全ての動作設定を反映、保存します。

commit

save

終了します。

exit

 

2.AWSで中継サーバー構築

有名なAWSで、ssh中継サーバーを構築します。

別にAWSでなくても良いのですが、無料枠があるので良いかなと思いました。

この中継サーバー構築の目的は、ファイヤウォール内にいるリモートPCとローカルPCを接続させる為に構築します。

どちらの環境のルーターも設定変更しなくて良いことが最大のメリットです。

 

とりあえず、AWSのアカウントを作成し、ログインして下さい。

ここの記事を読んでいる方は、日本に住んでいる方を前提としているのですが、もしかして違う方は、右上の場所を選択するメニューがあるので、これを変更して下さい。

サービスメニューからEC2を選択して下さい。

すると、EC2 ダッシュボードといものが表示されます。

左のメニューからインスタンスをクリックすると、インスタンス作成画面が表示されます。

青いインスタンスの作成ボタンがあるので、押してあげましょう。

ここら辺りの説明は、この記事が古くなると変わってしまうでしょう。必要なスペックを記載するので、他のサイトとか参考にして構築して下さい。

OS:Ubuntu Server 20.04 LTS

タイプ:t2.nano あるいは、t2.micro

メモリ:500MB程度

ストレージ: SSD 8GB 程度 もっと少なくっても大丈夫でしょう

インスタンスを作成する直前に、キーペアをどうするか聞いてきます。

新しいキーペアを作成してダウンロードして下さい。 この鍵を使って、AWSインスタンスに接続します。

この鍵を AWS鍵 とします。

 

インスタンス作成後、起動して下さい。

起動完了すると、説明画面に必要な情報が表示されるので、記録しておいて下さい。

パブリック DNS (IPv4) <- これが一番重要です。

これを AWSのドメイン名 とします。 

 

次に、外部ポートを開けたいので

ネットワーク & セキュリティ の セキュリティグループ をクリックして下さい。

右下の項目にインバウンドルールとあるので、これをクリックします。

すると、インバウンドのルールの編集ボタンが表示されるので、これをクリックします。

ポート: 8080 を開けたいので、画像のように設定し、ルールの保存をクリックします。

 

起動している AWSインスタンスに接続します。

sshで接続するので、teratermで良いかと思います。

接続先は、AWSのドメイン名 です。

ユーザーは、ubuntu

鍵は、ダウンロードしておいた AWS鍵 を指定して下さい。

接続出来ると、やはり、不愛想なプロンプトが表示されます。

AWSインスタンスは、あまりすることが無いのですが、sshサーバの設定変更をする必要があります。

sudo -s で、ルートになります。

echo GatewayPorts clientspecified >> /etc/ssh/sshd_config

これで、設定完了ですので、反映しましょう。

systemctl restart ssh

 

以上で、AWSインスタンスの設定は、完了です。 

 

3.AWS接続構築

VyosとAWSインスタンスが構築出来たので、VyosからAWSインタスンスへの接続環境を構築します。

Vyosでの作業になるので、Vyosを起動して下さい。 起動していたら、そのままで良いです。

AWSインタスンスの鍵を配置します。

ここまで、これた方は、手慣れたものでしょう。

SCPで、AWS鍵 をVyosへコピーします。

場所は、/home/vyos/.ssh/ です。

次に、teraterm等で接続して下さい。

コピーした鍵の属性を変更します。

chmod go-rw /home/vyos/.ssh/AWS鍵

次に、ssh接続情報ファイルを作成します。

/home/vyos/.ssh/config を以下の内容で作成します。

Host AWSのドメイン名
HostName AWSのドメイン名
port 22
IdentityFile /home/vyos/.ssh/AWS鍵
User ubuntu
RemoteForward 0.0.0.0:8022 localhost:22

ServerAliveInterval 120
ServerAliveCountMax 3
TCPKeepAlive yes

  

接続してみましょう。

ssh AWSのドメイン名

Are you sure you want to continue connecting (yes/no)? yes

不愛想なプロンプトが表示されればOKです。

特に用事が無いので終了です。

exit

 

次に常駐接続してみます。

ssh -f -N AWSのドメイン名

おそらく、問題無く接続出来たはずです。

バックグラウンドで接続したので、わからないと思います。

netstat -a | grep ssh で確認出来るかと思います。

これで、AWSインスタンスの8022ポートが、vyosに接続される状態になっています。

vyosを再起動したりした後は、常駐接続を行えば復旧します。

 

4.リモートデスクトップ接続

リモートPCで、リモートデスクトップ設定をしておいて下さい。

適当にGoogle検索すれば、やり方がヒットするでしょう。

 

いよいよ、ローカルPCよりリモートPCへ接続してみましょう。

puttyが一番良い感じなんですが、teratermでもOKです。

ローカルPCにて、AWSのドメイン名 へssh接続します。

ちょっと、気を付けていただきたいことがあります。ポート番号を8022にして下さい。

22に接続すると、AWSインスタンス、そのものに接続してしまいます。

接続すると、ユーザーと鍵を指定する必要があります。

ユーザーは、vyos

鍵は、1で大切に保管されている 秘密鍵 を指定します。

 

 teratermの場合、Setup -> SSH Forwarding.. を開きます。

すると、ポート転送設定画面が表示されるので、リモートPCのIPアドレスを入力します。

画像の場合、リモートPCのIPを 192.168.0.55 としていますが、このアドレスは、事前に調べておく必要があります。

Windows10の場合、「ネットワークのプロパティ」を表示すれば IPv4 アドレスとして、表示されます。

ここが重要なのですが、Forward local port 13389としていますが、これは、ローカルPCの13389番をリモートPCに接続する番号ですと設定しています。

なので、リモートデスクトップ接続する時に、localhost:13389と指定することで、192.168.0.55のリモートPCに接続することになります。

ちょっと、ややこしいですかね。

とにかく、13389番を色々と変えれば、別のリモートPCにも接続出来るんだよってことを理解しておいて下さい。

マックの場合、マック用のリモートデスクトップがあるようなので、同じような感じで接続出来ます。

しかし、Teratermが無いので、代替えソフトか、気合のsshコマンドで行う必要があります。

Wineでなんとかするっていうのもありですね。

 

5.注意点とか

めでたく、リモートデスクトップに接続出来ることは、おわかりいただけたと思いますが、気を付けてほしい点があります。

仮想マシンのVyosやリモートPCですが、これを起動しているパソコンがスリープや省電力モードにならないように設定して下さい。

後、Windows Updateなんかで、再起動されるとか、どうしようもないですよ。

 

たまに、ファイヤウォールにて外ポートへ抜けるのを80と443に限定している環境があるかと思います。

そんな時は、AWSの /etc/ssh/sshd_config に、Port 443 と追加すれば、443もsshとして開いてくれます。

さらに、インバウンドルールで、443ポートを追加します。

Vyosの /home/vyos/.ssh/config port 22 port 443 に変更すれば、Okです。

 

あまりないですが、VyosとAWSインスタンスの接続が切れてしまうことがあります。

これを検知して、再接続する必要があります。

 /home/vyos/keepssh.sh を以下の内容で作成します。

#!/bin/sh

HIT=`ps -x | grep "ssh\ -f\ -N\ AWSのドメイン名" | wc -l`

if [ $HIT -le 0 ]; then
        ssh -f -N AWSのドメイン名
fi

次に /home/vyos/crontab.txt を以下の内容で作成します。

0 * * * * /home/vyos/keepssh.sh

作成したcron定義を有効化します。

crontab crontab.txt

さらに、keepssh.shに実行権限を与えます。

chmod a+x keepssh.sh

これで、毎時0分に接続チェックを行い、切断されていれば、再接続を行います。

 

応用編として、vyos の webproxyやOpenVPNを使うことで、リモートネットワーク上のさまざまな機器に接続することも可能です。

しかしながら、やりすぎるとセキュリティ上、問題になるので、お気を付けくださいませ

 

 

Joomla templates by a4joomla