Git サーバの設定と PC のバックアップ

前回は Synology DS220+ の設定と基本的なパッケージのインストールを行いました。今回は Git サーバと公開鍵認証、PC のバックアップなどを行っていきます。

 


Git サーバ

私もプログラマの端くれなのでパッケージにあった Git を設定してみました。
PC 上のローカルリポジトリでも良いのですが面倒でついつい使わずにやってしまうんですよね…
(掃除するのが面倒なときに新しい掃除グッズを買って自らをやる気にさせる的なアレです)
私は Git を使いこなしている、には程遠くて CVS や Subversion でも事足りる程度の使い方しか出来ませんが。
 

基本的な設定

公式マニュアル : Git Server

ssh 接続が必要なので事前に設定しておきます。ポート22のままだとセキュリティアドバイザーに怒られるので変えておいたほうが良いでしょう。何番でも良いのですが 0~1023 は Well Known Ports と呼ばれ他のサービスで使われるので避けます。また、1024~49151 は Registered Ports と呼ばれこれも可能なら避けたほうが良いらしいです。49152-65535 が Dynamic/Private Ports なのでここを使うことが推奨されています。

  • ssh 可能なのは Administrator グループ(個別に設定したいところではありますが)。私はアクセスできるフォルダや DSM アプリの使用権限を極力制限した ssh/git 専用アカウントを作りました。
  • ホームディレクトリは /var/services/homes ですが /volume1/homes へのシンボリックリンクなのでどちらを編集しても構いません。
  • ログインしてディレクトリを見ると admin ユーザーだと777に見えてビビりますが sudo -i で root になると本来のパーミッションが見えます。(これどういう仕組なんでしょうね? 知ってたら教えて下さい)

これで ssh/git は使えるようになりますが毎回パスワード入れたくないので公開鍵認証にしてみます。

公開鍵認証

公式マニュアル : SSH 経由で RSA キー ペアで DSM にサインインする方法

  • ホームディレクトリが 711 ですがこれはこのままで構いません。
  • ssh フォルダは 700 にします。中の authorized_keys などは 644 でも良いのですが私は 600 にしました。
  • ググると /etc/sshd_config や .ssh/ 以外の既存のディレクトリのパーミッションを変更している方がいますが基本的には必要ないはずです。

私は PuTTY や Windows10 標準の OpenSSH ではなく cygwin の ssh を使っているのでキーエージェントは昔から https://github.com/ganaware/win-ssh-agent を使わせて頂いています。
最近は Windows10 に標準で OpenSSH が入ったり、WSL や Git For Windows など選択肢が増えた (カオスになったとも言う) ので全部に対応したエージェントがあると良いのだけど… 頑張ればできるみたいですが調べきれていません。
(例えば GitHub Desktop に NAS のリポジトリを追加するには c:/Users/***/.ssh/ に cygwin の ~/.ssh/ と同じ設定を書けば良いのですがパスフレーズは別途 GitHub Desktop に聞かれるので入力する必要があります)

以上でパスワード入力無しで ssh や git が使えるようになりました。


PC のバックアップ

私の求めるバックアップは何かあった時「PCまるごとリストア」できるタイプではなく「ブラウザが記憶しているパスワード」や「めったに見返すことは無いけど記念に保存している物」です。
本当は NAS に置かずに普段は繋いでいない外付け HDD などに保存したほうが安全なのですが面倒で忘れたりすると困るので NAS に自動バックアップすることにします。そのため暗号化などセキュリティには気を使いたい感じ。


バックアップツール

Synology の Drive Client と Active Backup for Business、PC 用の Duplicati を試してみました。ついでに NAS のバックアップに Hyper Backup も。

 Synology Drive Server/Client

いちばんお手軽なのはこれ。PCにインストールしたクライアントソフトでバックアップと同期するフォルダを設定できます。

  • バックアップはファイルコピータイプ、世代管理あり。
  • バックアップするフォルダは選べる。

  • 暗号化は無い? (暗号化フォルダは盗難に対する耐性は上がりますが今回のニーズには合いません)
  • 同期する場合、ファイルにマークが付くのは良いけど AppData/Local などショートカットアイコンがあるフォルダを同期するとデスクトップのアイコンにもマークが付くので煩いw

ファイルコピータイプなので小さいファイルが多いと不利ですね。あとパスワードなど機微な情報が含まれるのでNASにアクセスされても内容を取り出せない暗号化の機能は欲しいかなぁ…

 

Active Backup for Business

  • リストアはファイル/フォルダ単位で行える。
  • ソースタイプが「システムボリューム」だとCドライブのみ。D:に移したホームディレクトリなどは含まれないので注意。

DS File から見えないのは良いのですがドライブまるごとなので Google ドライブなども含まれるのが嫌な感じ。これはちょっと私の目的には合わないかなぁ…

 

Duplicati

ちょっと良い感じのツールが無かったので以前から自宅や会社でバックアップに使っていたオープンソースのソフトも試してみました。NASでなくPCにインストールして使うタイプです。

  • 指定サイズ(50MBとか)の複数ファイルにまとめるタイプ。
  • バックアップするフォルダ、リストアするフォルダとも選べる。
  • バックアップ先はSMBマウントしたドライブか sftp、WebDAV などが選べる。(クラウドにもバックアップできる)
  • ログが見やすい。(追加/変更されたファイル数がメイン)


 

 
 
 
 
 
 

Duplicati の設定

今回の PC バックアップには Synology の機能は使わず Duplicati で行うことにしました。
バックアップフォルダを見せたくないので NAS には sftp で接続することにします。
  • NASの設定でsftpサービスを有効に。sshポート変更している場合は注意
  • Path on server には /volume1 を含めない (sftpの仕様)
ロックされたファイルもコピーするために Volume Shadow Copy Service を使います。
Microsoft Visual C++ 2015-2019 Redistributable が必要ですが開発者の方なら入っている気がします。ない場合はインストールしておきましょう。
Duplicati as a service として実行するならいくつか方法がありますが普通にインストールしてトレイアイコンのショートカットに --no-hosted-server オプションを追加。Duplicati.WindowsService.exe install を実行。

これでロックファイルも警告が出なくなりますが代わりに cygwin の .bash_history や .ssh フォルダなどパーミッションが600なファイルがバックアップできないようです。なにか方法ないのかな? まぁ他人が読めてはいけないファイルをバックアップに残すのはどうなんだって話になりますが…
 
ちなみに各ブラウザでプロファイルが保存されている場所ですが Firefox は \AppData\Roaming\Mozilla\Firefox\Profiles\ を保存すればOK。他のPCに引っ越すことも出来ます。
Chrome は \AppData\Local\Google\Chrome\User Data\Default 、 Edge は \AppData\Local\Microsoft\Edge\User Data\Default ですがこちらは Roaming でなく Local なのでハード固有の暗号化が行われているため他のPCに持っていっても取り出せません。パスワードなどは必ずエクスポートしておきましょう。


Hyper Backup

NAS で SHR や RAID1 を使っていればドライブの単体故障への耐性は得られるのですが縮退運転中にもう1台が壊れたりソフトウェア的なバグや誤操作でデータが消えてしまうと困ります。NAS 上にしかないデータは別途バックアップが必要です。具体的には DS Note のメモやアプリ設定、NAS 上にしか置いてない画像データなどですね。

Hyper Backup は
  • USBドライブやクラウドへバックアップできる。
  • 世代管理ありと上書き1世代が選べる。アプリ設定は世代管理ありじゃないとバックアップできないものもある。
  • バックアップタスクは複数作れるので、機密データはUSBドライブに、写真などはGoogleドライブにといった事もできる。
  • 暗号化できるのでバックアップ先にアクセスされてもパスワードか暗号化キーが無いと見えない。
といった感じで結構良いですね。


Cloud Sync

NAS とクラウドを同期するアプリ。暗号化の有無や同期方向を指定できます。
Android や Chromebook ではやはり Google ドライブの方が使い勝手が良かったので出先で編集したいメモのみ NAS と Google ドライブを双方向に同期して Android/Chromebook からは Google ドライブの方を編集するようにしました。
同期間隔はデフォルトで1分ですがそんなに頻繁でなくて良いので10分にして夜間は同期を停止するようにしてみました。

 
 
これでとりあえずの設定は終わったので、この状態で暫く使ってみようと思います。
引っ越したら Surveillance Station を使って防犯カメラを管理したり、時間が出来たらメディアサーバや docker も試してみる予定です。

今まで散らばっていたり複数箇所に同じデータがあったりした物もこの機会に整理したし、デバイスとNAS、クラウドの3箇所に保存されている安心感は良いです。その分、万一流出してしまうと大変なことになるので注意が必要ですが。

前の記事 次の記事
No Comment
コメントを追加
comment url