#Firefox Send
「Firefox Send」は、2017年に実験的に提供され、2019年3月に正式版となったファイル共有サービスです。Githubでソースコードが公開されており、独自に構築することができます。
ファイル共有時に、ダウンロード回数やダウンロード可能な日数、パスワードをかけることができ、アップロードしたファイルは暗号化され、ダウンロード回数またはダウンロード日数を過ぎたものはアクセス不可になるなど、某ファイル共有サービスよりも安全に使用することができると思われます。
利用可能なWebブラウザ
Firefoxの他に、Google Chrome、Microsoft Edgeで動作確認できました。Internet Explorerは非常に古いWebブラウザのため対応していませんでした。
#Firefox Sendを独自サーバーに入れる
とはいえ、Firefox Sendはhttps://send.firefox.com/で公開されていますが、そちらを使われると組織のITシステムを管理するものとしては不安です。そこで独自にサーバーを用意し、Firefox Sendを立ててしまいましょう。
https://send.firefox.com/にはアクセス制限をかけ、代わりに独自サーバーの方のFirefox Sendを使ってもらえば良いわけです。
##用意したサーバー
特に制限はありませんのでお好みのIaaSで仮想サーバーを用意します。私は、IBM Cloud IaaSに、メモリ1GBの仮想サーバーを用意し、作業しました。
##作業用ユーザーの作成
rootアカウントで発行されたと仮定します。
先ず、user1 という作業用ユーザーを作成します。
# apt-get update -y
# apt-get upgrade -y
# adduser user1
# gpasswd -a user1 sudo
Node.jsのインストール
続けて、Node.jsをインストールします。
一度SSH接続を閉じ、作業用ユーザーでサーバーにSSH接続します。Node.jsをインストール後、サーバーを再起動します。
$ curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
$ sudo apt-get install -y nodejs
$ sudo reboot
Fail2ban/git のインストール
作業用ユーザーでサーバーにSSH接続します。
SSHへの簡単なセキュリティ対策として総当たり攻撃を防ぐ「fail2ban」と、Firefox Sendのソースをダウンロードするために「git」をインストールします。
$ sudo apt-get install git
$ sudo apt-get install fail2ban
$ sudo systemctl start fail2ban
$ sudo systemctl enable fail2ban
Firfox Sendのインストールと起動。
続けてGithubから、Firefox Sendのソースコードを取得し、インストール。起動します。
$ git clone https://github.com/mozilla/send.git
$ cd send/
$ npm install
$ nohup npm start > out.log 2> err.log &
nohup npm start で起動しています。
この時点で、DNSへの紐づけを行っていなければ、「http://サーバーの公開IP:8080」にアクセスすることで、Firefox Sendを使用することができます。
#Firefox Sendを使う
##送信者:アップロード
独自サーバーに構築したFirefox Sendにファイルをアップロードしてみましょう。
Firefox Sendにアクセスし、ファイルをアップロードします。
「有効期間」や「有効なダウンロード回数」、「パスワード」をかけることができます。
##送信者:共有URL
「アップロード」を実行すると、共有URLが発行されました。この共有URLをファイルを共有したい人にメールなどで伝えます。パスワードをかけてある場合は、別途伝えましょう。
##受信者:ダウンロード
共有URLを受け取った人は、パスワードがかかっている場合はパスワードの入力を求められます。
共有URLの無効化
ファイルアップロード時に送信側で、「有効期間」や「有効なダウンロード回数」を設定した場合、「有効期間」と「有効なダウンロード回数」のどちらかを満たすと共有URLが無効になり、ダウンロードできなくなります。
Firefox Sendの設定
Githubから複製したダウンロードしたFirefox Sendのソースコードのうち、server/config.js が設定ファイルに該当するようです。ドキュメントを読み、設定を変えてAmazon S3連携などを試してみましょう。