PC設定覚書と雑記

1. オンラインストレージを自宅サーバーで構築

投稿日時: 2020/04/22 okamoto

GoogleDrive、Dropbox、icloud、Onedrive等のオンラインストレージサービスを、容量制限なしにどこでも自由にしかも無料で使いたいと考えたことはありませんか?

今回、自分で試してみて、結構すんなりと構築できる方法を見つけたので、紹介したいと思います!

自分が今まで使っていた owncloud より多機能で、しかも構築が早く確実にセキュアに出来るんです!

使う手ですが、

 ①省電力自作PCを用意(省電力タイプならメーカー製パソコンでも可)

 ②OSはLinux(WindowsServerでも可だが、高性能かつ無料ならLinuxで)

 ③自宅用ネットワークプロバイダ契約(通常のインターネット契約で可)

 ④DDNSサービスの設定(固定IP契約しているのなら不要)

こんな感じです。

 

では、具体的に。

①ですが、まず省電力マザーボードを選びます。

自分は、Asrock社のCPUオンボードタイプを良く使います。

今話題になっているRaspberry Pi を使うのもアリだと思いますし、これは面白そうだしいずれやってみたい!!

でも、省電力だからとノートPCを使うのはやめましょう! 本体やアダプターの発熱で火事になった例を見かけましたから!

ストレージは、WD社のRedあたりがいいと思います。SoftwareRaid1で構築するとさらに良し。

②のOSです。Linuxは色々なディストリビューションがありますが、つまづいた時に症例や答えをWebで見つけやすいものにした方が絶対にいいです!

すると、Ubuntu、CentOSあたりでしょうか? 自分は専らUbuntuの原型Debianを使っています。

Desktop環境(GUI)は入れずに、コマンドを打ち込んでいくCUI環境で作るのですが、CUIは難しそうだと思ったら、GUIサーバーでもいいんです。

でもCUIでも、SSH端末をクライアントで操作する時はコピペでどんどん操作出来ますし、WebminというGUI風の操作が出来る強力な助っ人もあるので、ぜひCUIサーバーに慣れて下さい!

あ、自分はセキュリティ上、SSHとWebminはローカル(LAN)外からのアクセスは受け付けないように設定しています。

③は自宅でパソコンとインターネットを使っている環境ならそれでOKです。

SoftBank社のAC電源に差すだけでWifiなんていうルーターがありますが、これでもいけそうかな?

④は、MyDNSをおすすめしておきます。

最後に! これだけは覚えて欲しいのがテキストディタ vi の操作法です!

やや特殊ですが、使っているうちに慣れると思います。

コマンド文入力、コマンド文編集のために必須のツールです。ただし、vim、nanoといったツールでもOKです。

 

さて、準備が出来たら、OSをUSBメモリでインストールしましょう。

インストール終了したら、update、upgrade して最新の状態にします。

さて、それからは?

(1)SSHサーバーインストールして、ポート変更、rootログイン禁止設定

(2)ファイヤウォールUFWをインストール

(3)UFWのポートは443、123、SSH分、Webmin分だけ開けておきます。

(4)時刻合わせにntpサーバーインストールして設定変更

(5)snapdインストール

(6)snap install nextcloud

(7)source /etc/profile.d/apps-bin-path.sh

(8)nextcloud.manual-install

(9)nextcloud.enable-https self-signed

これで、Webサーバー、データベースサーバーを含めたnextcloud環境を一気に構築出来、https通信も可能になりました!!

Webサーバーの細かい設定、データベースの作成等も不要なんです!

あとは、DDNSサイトで取得したドメイン名〇〇〇で外部ブラウザからアクセスして下さい!

 https://〇〇〇

これでインストール完了です!

ちょっと説明を簡略化していますが、もし興味があったら調べてみて下さい。もちろん、問い合わせ頂いてもOKです。

 

(補足1)

自分のサーバーマシンからDDNSサービスを提供しているサイトに定期的にアクセスをする必要があります。

その時のスクリプト(実行)ファイルは、例えばこんな感じです。

 wget http://www.mydns.jp/login.html --http-user=mydns●●●●●● --http-password=パスワード -O /dev/null

 (この方法ではip情報更新できなくなったようです。他にもやり方が色々あるようです)

自分は、このファイルを、/etc/cron.d/ディレクトリにおいて、webminで15分おきに実行させています。

注意点は、rootがこのファイルを実行する時、所有者はrootで、パーミッションは700でないといけない点です。

 

(補足2)

インターネット契約をした時に提供されたルーターに、ポートフォワーディング設定が必要です。

つまり、DDNS設定をしたあとは、登録したドメイン名に外部からアクセスがあると、自分の所に信号が来るようになります。

それが、https通信(ポート443)であれば、自作したサーバーマシンに信号を通すようにする作業です。

ルーターのマニュアルを見て下さい。ipマスカレード設定等とも書かれています。

補足ですが、この機能のおかげでhttps以外の信号はサーバーマシンに到達できなくなる訳ですね!

 

(補足3)

Linuxサーバーを構築する時に、またサーバーの初期設定をする時にすごく参考になるサイトです!

色々なOSについて、またそれらのOSの最新版について、分かりやすく書かれています!

 https://www.server-world.info/