一連のサーバー&SSH技 応用・実用編
vps
- TOP
- Old Archives
- 一連のサーバー&SSH技 応用・実用編
序
このブログは多くが検索によって解決法を探してたどり着いた読者に支えられている。
このような場合、その人が向いている方向としては二種類ある。
ひとつは、なにをしようとしているかが(適切かはどうかはともかく)決まっている場合だ。 ポートフォワーディングしたい、とか、SSHでなんとかならないか、とか、自分の中で絞り込みができている場合である。
もうひとつは自分の現状だけを認識している場合だ。 例えば「ストレージがいっぱいなった」とか、「家のデータに外からアクセスできなくて不便だ」とか。 どのような解決方法があるのか、あるいは解決可能なのかどうかから探している状態だ。
このふたつは明確に異なる。
前者であればポイントを絞った答が欲しい一方、自分の中にある前提が間違っていると解決まで回り道をすることになる。 後者であれば何をどう考えて調べればいいのか絞り込んでいくほうが難しい。
しかし前者の問題は解決できるのだが、後者の問題は解決できない、という人が割と多い。 問題を定義し、設計し、手法を構築することは地力が求められ、知識の体系化が進んでいないために発想力が求められると難しい、というケースだ。
そこで、今回はそのあたりに踏み込んで解説していく。
個別ケースや個々の人の理解に合わせた内容は仕事としてやっているので、興味があればのぞいてみてほしい。
Overview
Definition
親と同居しているごく普通のLinuxer少女が、日々を便利にするために奮闘する姿でも描けばよい。
…と思ったのだが、VPSを用意するにあたりクレジットカードが必要になるあたり、やはりペット同居のごく普通の乙女、もちろんLinuxerである、ぐらいにとどめておくのが無難か。
phase 1
ストレージの不足を解消するためのNAS導入と、監視カメラの設置を行う。
スマートフォンはきっと愛猫の写真と動画でいっぱいなのだろう。 これに愛猫が勝手にツナ缶を空けて食べてしまわないかチェックしておく必要がある。
phase 2
NASに写真を保存するようにしたはいいが、このままでは仕事中に愛猫の写真を堪能できない。
24時間愛猫とたわむれるためには家にあるデータにもアクセスできなくてはならない。
phase 3
もし愛猫がトラに進化しそうなときには急いで家にかえりこれを阻止しなくてはならない。
また、愛猫がNASからハードディスクを取り出そうとしたときにはデータ保護のためにNASを緊急停止する必要があるはずだ。
構成と発展
予めお断り
コピペでできるようにすることを目標としているわけではないので、詳しい手順などは各自学んでほしい。
難しい部分は過去の記事で解説している。
家用コンピュータを導入する
この手順において一番最初に、そして独立して効果を発揮するのはNASなのだが、設定なども面倒なので、とりあえずコンピュータを用意しよう。
この段階でラップトップがあるのであれば、NASがさき、デスクトップは後でも構わないし、 この場合必ずしもデスクトップである必要はない。 だが、総合的に考えてよりよいコンピュータ環境を構築するのが目標なので、このような余剰部分も今回は入れていく。
さて、やはりコストパフォーマンスを考えても、デスクトップPCは性能が高い。 そこでデスクトップを導入することにしたいが、おしゃれに気を使う乙女としては部屋にあまりに無骨な機械を導入するのは気が引ける。 かといってせっかくコンピュータを導入するならいろいろしてみたい。 悩みに悩んだ彼女は神に問うた。天の声(はるか)はこう答えた
「Pavilion Waveあたりにしとけば?」
まじめに答えて、まじめに構築する話はそのうちMimir Yokohamaでやることにしよう。
NASを導入する
NASの導入と構築もそのうち向こうでやることにする。 今回はLinuxでのテクニック中心なので、簡単に。
ReadyNASあたりが鉄板だろうし、WebDAV(HTTP)で共有すればスマートフォンのデータを転送するのも簡単だ。
もう少しスマートな話をすると、まずはReadyNASでストレージ環境を作り、共有の作成まで進める。 共有をSMBにして、
# mount -t cifs //nas-aa-bb-cc/shared1 /srv/nas
のようにマウントする。
次にスマートフォンをLinuxデスクトップに接続し、MTP経由でデータをコピーする。 あとは
$ rsync -rv ~/Pictures/20180602 /srv/nas/
のようにして(/
の有無に注意)コピーすればバックアップが確保された状態になる。
監視カメラを導入する
これはどちらかといえばSocks Proxyの説明のためなので詳しくは省くけれども、ウェブカムとmotionを使うのが定番。動体検知もできる。
これについては結構設定が色々ややこしい。 興味がある人は“Linux motion カメラ”で検索すれば色々でてくるので参考にすれば良い。 設定ファイルを眺めるのも悪くない。
ネットワークに接続する
NASを導入する時点で有線でのネットワークは構築されているはずだが、無線LANルーターを含めて、さらに 有線での インターネット接続環境を構築する。
VPSを契約する
私はConoHaのとServerMan@VPSのユーザーだが、さくらのVPSも結構定番。
今回はゲートウェイとして使うだけなので、最低限でも大丈夫でSSH接続だけできるようにすればよいが、発展的にはあまりおすすめできない。
VPSを契約したらサーバーを設定し、SSHログイン可能な状態にしておく。
ラップトップを買う
外からアクセスできるコンピュータが必要である。 ラップトップを買おう。ネットカフェのような環境からアクセスすることを考えるべきではない。
SSHを設定する
ラップトップで2つのSSH鍵を作り、それぞれデスクトップとサーバーのauthorized keyとして登録する。
制限をかけてもいいが、今回の場合鍵のパスワード保護が可能なため、特にかけないほうが良いだろう。
ラップトップ側の~/.ssh/config
は設定が必要。
Host vps
User jrh
Port 22
HostName vps.example.com
IdentityFile ~/.ssh/vpslogin_rsa
Host target-proxy
User jrh
Port 10000
HostName localhost
IdentityFile ~/.ssh/proxylogin_rsa
ProxyCommand ssh -CW %h:%p vps
この場合、VPSのログインしてからリバースプロキシを介してデスクトップにログインする。
localhost
はVPSから見たlocalhost(VPSのlo
)だが、デスクトップにログインするためのSSHを実行するのはラップトップである。
単純にログインしたあとログインする場合、デスクトップにログインするSSHを実行するのはVPSなので、これがProxyCommandの特徴となる。
単純にSSHを張るだけであればデスクトップからVPSにログインできるようにして、
$ ssh -R 22:localhost:10000 vps
のようにすればよいのだが、経験ではそれはうまくいかないのでそれは記事にした。
外から家のデータにアクセスする
これでSSH経由でアクセスできるようになったので、デスクトップでNASをマウントしておけばデータは利用可能な状態になる。
Nemo,
Thunarならばアドレス欄にsftp://target-proxy/
と入力すればアクセス可能。NautilusならConnect
to Serverから。
Dolphin/Konquerorにも同等の機能はあるのだが、うまく動作しない場合がある。
VPSのコンソールやmotionのストリーミングにアクセスする
VPSのコンソールなどWebインターフェイスをもつものについてはインターネットに公開するべきではなくインターネットに閉じておくべきだが、これでは外出中にコントロールできない。
だが、SSHでアクセスできる状態であれば、簡単に解決できる。
$ ssh target-proxy -NCD 8888
Chromiumが簡単。
$ chromium --proxy-server="socks://localhost:8888"
Vivladiでも良い。
$ vivaldi-stable --incognito --proxy-server="socks://localhost:8888"
Firefoxなら専用プロファイルか
$ firefox -P proxylogin