格安中華セキュリティ・カメラのFTP機能を使いこなす FTPサーバーはどうすればいいの?

2023年12月6日セキュリティ

筆者テック大家さんは、自分の所有する一棟もの賃貸マンションに、(中華製の)格安のセキュリティ・カメラを導入しています。以下の記事でそんな格安セキュリティ・カメラ、ほんとに使えるの?という疑問に答える記事を書きました。

本日は、この格安セキュリティ・カメラを便利に使うためのFTP機能に関して語っていこうではありませんか!ほんとうはこの内容、他では話したくないのですが、特別に今日もディープに行きますよー

FTPってなんだっけ?

FTPとはFile Transfer Protocolの略です。ファイルをサーバーのとあるディレクトリに送付するための仕組みです。よく、FTPで通信する手順を称して「FTPプロトコル」と言ったりしますが、FTPのPがプロトコルなので、重複表現ですね。”多摩川リーバー”とか、"頭痛が痛い"とか、"最初の第一歩"とかいうのと一緒です。

…と。話がそれました。FTPに話を戻しましょう。

FTPは古いプロトコルです。世間を賑わすHTTPが登場する前からありました。筆者が、ざるのように酒を呑んででもピンピンしていた若かりし大学生時代。HTTPサーバーをソースコードからコンパイルするために、ソースコードをFTPでゲットなんかしていました。1993年頃のことと思います。古い…

このように、FTPのサーバーというのは、ディレクトリ構造になったファイルを保持していて「どこかのディレクトリの、あのファイルを頂戴」といって入手するための仕組みです。逆も然り。手元にファイルがあり、FTPサーバーに「あるディレクトリの中に、これ、保存してください」といってアップロードする仕組みでもあります。

これがセキュリティ・カメラとなんの関係があるんでしょうか。

はい。大ありです。

我らが安物セキュリティ・カメラでも動体検知機能という優れた機能があり、動きを検知して撮影をしてくれます。そして、その映像を、FTPでサーバー内で時間ごとディレクトリを作り、そこにアップロードする機能というのが搭載されているのです。つまりこれ、セキュリティ・カメラはFTPクライアントになっているわけです。(上で挙げた過去記事にもカメラの動き検知の詳細があります。そちらも併せてご覧ください)

FTP使用時は、ここに注意!

セキュリティ・カメラというぐらいですから、一つセキュリティに関する注意をしておきます。

FTPというプロトコルは(”FTPプロトコル”と言ってないよ)、いわゆる「安全なプロココル」ではありません。例えば、よくご存知のHTTPというプロトコルがありますが、最近はHTTPSが使われています。HTTPSのSはセキュア(Secure)のSです。これは、サーバーとクライアントの通信をエンド・ツー・エンドで暗号化して通信経路で覗き見ができないようにする技術です。素のHTTPは安全上の理由から使われなくなってきています。

一方、FTPはそのような安全な仕組みはありません。プロトコル上は平文といって暗号化しない状態で通信が行われます。したがって例えば、パケットキャプチャという技術を使って、第3者に通信内容をのぞき見るられる可能性があるのです。LANなどの限られた範囲で使う分にはまだ良いでしょう。でもあまり安全とはいえません。この問題を解決するために、SFTPFTPSといったセキュアな仕組みがプロトコルとして定義されているのが現状です。

しかしながら、筆者が相手にするのは、骨までしゃぶれる格安中華セキュリティ・カメラ。搭載されているのは素のFTPです。セキュリティ的に脆弱であることを認識した上で使用するしかないでしょう(セキュリティ・カメラなのに脆弱って…)。

ちなみに、テック大家さんの物件のセキュリティ・カメラは、実をいえば、入居者のフリー・インターネットと同じ回線につながっています。でも、セキュリティは一応考えているつもりです。館内の悪者がカメラの通信を覗き見しようとしてもそれを阻止すべく、VLANを使って入居者用の回線にパケットが流れないように工夫しています。

VLANについては以下の記事に詳しく書いておりますので、併せてご覧いただけると嬉しいです。

どうやってカメラの設定するの?

カメラの設定は、以前の記事でも説明していますのでおさらいです。CamHiアプリに以下のような設定画面があります。

FTPクライアントとして動作させるためには、ここで必要な情報を入力するだけです。サーバーアドレス、ユーザ名、パスワード、保存先のパスを指定します。

CamHiアプリのFTP設定画面(再掲)

また、動体検知でアップロードするための設定も必要となります。

動体検知アラームの設定(再掲)

詳しくは下記の以前の記事をご覧ください。

FTPサーバーってどうするの?

さて、セキュリティ・カメラがFTPで写真や映像をアップロードしてくれる、というのは便利なのですが、その相手であるFTPサーバーってどう用意しましょう。それがないと、当然、上記の設定画面の「サーバーのアドレス」を入力できませんね。

FTPサーバーを立てる方法は色々ありますが、筆者テック大家さんの場合はホスティングサービスを利用しています。

ホスティングといえば、ホームページ(古い言い方だなぁ)を設置するためのサーバーを提供してくれるサービスです。筆者の場合、元々、自分の物件のプロモーションのためにサイトを構築しています(公式:ハイドレンジア箱根)。このサイト「Tech Landloard – テック大家さん」もそうです。

このようなホスティングサービスでは、ホームページ(古い言い方だなぁ)のデータをサーバーに転送するためにFTPサーバーが利用できます。それを流用してセキュリティ・カメラの映像を転送してしまおう、という魂胆(こんたん)です。

特に、筆者は数あるホスティングサービスの中でもエックスサーバーというサービスを利用しています。ちょっとお高いサービスですが、データ保存容量も豊富、SSHでログインもできる、WordPressといったアプリのインストールも簡単だし、メーリングリストも、独自ドメインやサブドメインも作れちゃう、など筆者にとって痒いところに手が届く機能満載。なので、満足して使っています。

ここにセキュリティ・カメラの画像もアップロードしちゃっているというわけです。

少し話はずれますが…。

ホスティングサービスの話題がでてきたところで、ホスティングサービスを使った賃貸物件のプロモーションの話をしたいです。

昨今、不動産の賃貸情報といえば、Googleなどでネット検索して上位に来るのは大抵、大手不動産チェーンのサイトです。SUUMOとか、ホームズといった大手の賃貸掲載サイトから検索して物件探しをするのが当たり前になっています。

たとえば、大家さんが街の不動産屋に行って自分の物件の募集の依頼をすると、大抵こういった大手のどこかのサイトに登録されるわけです。するとどうでしょ。大家さんの溺愛物件も、他のあまたある物件と同様、賃料、駅から何分、築年数、バストイレ別、みたいな、頭が空っぽになるくらいありふれた検索キーで比較されることになります。大家さんが、手に豆を作りながら魂を込めて差異化要素を入れ込んだ物件とて、同じです。そんな差異化要素ではなく、賃料、駅近、築年数…、みたいなものの影に隠れてしまうのです。

大家さんもそんな状況を黙って見ているわけではありません。そんなところに埋もれたくない。そういう思いで、テック大家さんは自物件のサイトを立ち上げました(公式:ハイドレンジア箱根)。もちろん、サイトを立ち上げただけで大手不動産サイトに勝てるわけではありません。色々工夫も必要です。この辺りは別記事で語るつもりです。お楽しみに!

パッシブモードってなに?

もう一点、FTPを使うえで理解しておきたいこと。それは、パッシブモードというものです。CamHiの設定画面でも何気なくたたずむこの設定。一体なんでしょう。

元々、FTPができた当時はこのサイトでも何度か登場すれるNAT(Network Address Translation)という機能が考慮されていなかったのでしょう。FTPにおいては、FTPクライアントは、クライアントでありながらサーバーにもなる必要があるようなプロトコルなのです。接続を待ち受けするのはもちろんFTPサーバーなのですが、いざデータの転送を始めるときにFTPサーバー側からFTPクライアントが待ち受けているポートにTCPコネクションを張りに行きます。最初に張るコネクションが「コントロール」コネクション。その後のデータの転送が「データ」コネクションという2つの通信経路を使うのがFTPの特徴です。

そして、このデータコネクションに関しては、クライアント・サーバーの関係性は逆向きになります。つまり、FTPクライアントがポートをリスン(待ち受け)状態になり、FTPサーバーからの接続を待ちます。

しかし、これだとNATの中にFTPクライアントがあるような接続構成だと不都合がおきます。以下の図で簡単に説明します。

FTPアクティブモードの概念図(NATを介したコントロール・データ コネクションの関係)

FTPサーバーからFTPクライアントにコネクションを貼るには、建物の中にサーバーがあるのと同じような状況になってしまいます。これは言うなれば、別の記事でもお話ししているポートフォワーディングなどの経路の調整が必要な状況、ということになります。

そこで、NATやファイヤウォールといった中継機器を介した環境でも問題なく動作するように、考えられたのがパッシブモードです。データ用のコネクションをFTPサーバーからコネクションを貼るのではなく、FTPクライアントからサーバーに対してTCPコネクションを張ります。これなら「正しい」クライアントとサーバーの関係性ですね。

下記の図のようにパッシブモードであれば、問題なしです。

FTPパッシブモードの概念図(NATを介したコントロール・データ コネクションの関係)

FTPができた当時は、NATもなければファイヤウォールもないような時代。FTPクライアントにサーバーからTCPコネクションを張れない、という状態は稀だったことでしょう。それを証拠に、昔からあるFTPクライアントのコマンドラインツールは、デフォルトはアクティブモードです。パッシブモードにするには敢えて “-p"オプションが必要なのです。

でも、安心してください。CamHiの設定画面は、時世を反映してか、デフォルトで(何もしなければ)パッシブモードが有効です。一般的なイメージだと、セキュリティ・カメラはLAN内部に設置するでしょう。普通はパッシブモードでなければ動作しないでしょう。気にせず、そのまま使っていきましょう。

データ、どうやって見るの?

カメラが動体検知で撮った写真たち。こうしてFTPサーバーに溜まっていくのですが、それをどのように見ましょうか。

FTPサーバーなので、FTPクライアントで、とうぜん映像のダウンロードが可能です。

例えば、こんなものが巷にはあります(窓の杜より)。

macOSなら、Finderの「移動」→「サーバーへ接続」という画面があり、ここでFTPサーバーを他のディレクトリと同様の操作感で使うこともできます。以下のような画面でユーザーとパスワードを入れればOK。

ただし、技術的に可能なことと、便利に使えることにはギャップがある、というのは世の常。

監視カメラが1台くらいならFTPクライアントソフトで定期的にダウンロードして一枚つず確認すればなんとかなるかもしれません。でも、カメラが2台ならどうでしょう。いや、3台ならどうでしょう。いやいや、もっと何台もあったらどうでしょう。そしてそれぞれのカメラに映った事象の関係性まで含めて見たくなったら?

単にセキュリティ・カメラが時間ごとにフォルダ作ってアップロードしただけでは、確認作業は大変苦痛なものとなると思いませんか。

そこで、私はFTPサーバー上の動体検知のカメラ画像を見やすくするWebアプリを作りました。以前の記事にも紹介したものです。以下のようなビューワーソフトです。こちらに関してはそのうちGithubで公開するつもりです。お楽しみにー。

プロフィール

テック大家さん
ソフトエンジニア兼不動産オーナー。
某超有名日本メーカーにおいてソフトウエア開発畑を30年近く勤務。
かつてはWindowsのアプリ開発や、組み込み機器のソフト開発を行う。プロジェクトマネジメント・オフショア開発・要件管理などの経験あり。現在は、個人開発で、JavaScript/TypeScript/React/Express、PHP/Laravel、Firebase、Google cloud、Arduino(C++)などでプログラミングを楽しむ。
サラリーマンの傍ら不動産経営を始め、現在、1棟モノの賃貸4物件を東京・神奈川に所有。夫婦でおよそ20年の賃貸経営の実績。
最近の物件では、入居者向けフリーWiFiなど、テック系の設備はDIYで自ら構築。
海外MBA取得。