かならぼ

試した技術のまとめ及びログ

FreeNAS2台で公開鍵認証して、rsyncで同期スケジュールするのをできるだけブラウザからやってみた

f:id:kanalabo:20170818135948p:plain

前回から少し時間が空きましたが、構築したFreeNAS2台を使って、rsync同期を行いましたので、まとめます。

前回の記事→FreeNAS-11.0をインストールしてNASを構築したよ - かならぼ

 

今回の構築のイメージは下記の通り。

f:id:kanalabo:20171013153846g:plain

SSH接続でパスワードなしの許可をするののセキュリティに関しては、別件として考えるとして、ひとまず横においておきましょう。

 

手順

 

それでは順にみていきます。 

SSHクライアント(サーバA:192.168.1.100)側で鍵を生成

できるだけブラウザから、というのに矛盾している感もありますが、コマンドラインから鍵作成を行います。
鍵作成ソフトは色々あるのですが、インストールする手間を考えてのことです。大丈夫、FreeNASならブラウザからコマンド叩けます。

コマンドは、FreeNAS右側のメニューからシェルを選ぶと表示される画面で入力できます。f:id:kanalabo:20171118002619j:plain

ログイン中のアカウントでの作成になりますので、SSH接続したいアカウントでログインするか、suコマンドでアカウント変更してからコマンドを入力してください。

1.鍵を作成
$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/(ユーザ名)/.ssh/id_rsa):
Enter passphrase (empty for no passphrase): 【何も入力せずにenter】
Enter same passphrase again: 【何も入力せずにenter】
Your identification has been saved in /(ユーザ名)/.ssh/id_rsa.
Your public key has been saved in /(ユーザ名)/.ssh/id_rsa.pub.
2.rsa公開鍵を表示
$ cat .ssh/id_rsa.pub
(enter後公開鍵が表示されます。)
例えば、アカウントrootで作成した場合
[ssh-rsa
xxxxxxxxxxxxxxx(ここにランダムの文字)xxxxxxxxxxxxxxxxxxxxxxx root@(ホスト名)
]

表示された公開鍵(上記の[ ]内全て)をコピーしておきます。

公開鍵をSSHクライアント(サーバA:192.168.1.100)からSSHサーバ(サーバB:192.168.1.102)にコピー

1.サーバ側(サーバB:192.168.1.102)に鍵を登録

(右メニュー)ユーザ→ユーザを表示→(ユーザを選択)→(下ボタン)ユーザ修正より公開鍵登録画面を出します。

f:id:kanalabo:20171118004608j:plain

2.SSH公開鍵欄に先ほどコピーした公開鍵をペースト

f:id:kanalabo:20171118005344j:plainコピーできたら、OKボタンを押します。

SSH疎通確認

SSHクライアントとなるサーバ(サーバA:192.168.1.100)から、鍵無しでSSHログインできるかテストします。

SSHサーバ(サーバB:192.168.1.102)のサービスが起動をさせておいてください。

f:id:kanalabo:20171013154307p:plain

$ ssh (ユーザ名)@192.168.1.102

ログインできたら公開鍵認証テスト完了です。

一回目の接続の際は、

Are you sure you want to continue connecting (yes/no)? 

というような確認が出ることがあります。接続していいかどうかの確認なので「Yes」とタイプしてください。

 

rsyncPUSH元(サーバA:192.168.1.100)からrsyncの設定

(FreeNAS公式のドキュメントはこれ→https://doc.freenas.org/9.10/tasks.html#rsync-tasks

 タスク→タブからRsyncTasksを選択して→Add Rsync Tasksボタンを選択

設定を入力していきます。f:id:kanalabo:20171118010446j:plain

 

表示されるオプション
パス 設定側のサーバのどのデータをrsyncするか設定
ユーザ どのユーザで実行するか
リモートホスト rsyncされる側の設定
今回はサーバB:192.168.1.102
Remote SSH Port SSHのポート番号
特に設定してない場合は22
Rsync mode Rsync module か Rsync over SSHを選びます
今回はRsync over SSH
リモートパス rsyncされる側のパス
今回はサーバBのrsyncされる場所
Validate Remote Path チェックしておけばリモートパスがない時に自動で作成します
方向 プッシュかプルかを選べます
今回はプッシュ
Short Description 説明文を入力できます
Minute
Hour
Day
Month
Day of week
タスクにしたい日時を選びます
再帰 サブディレクトリも対象にするか
Times ファイルの日時を保持するか
圧縮 圧縮してrsyncを行うか
アーカイブ -rlptgoDのこと

再帰的、シンボリックリンクシンボリックリンクのコピー、パーミッションの保存、変更時刻の保存、グループの保存、所有者の保存(スーパーユーザーのみ)、デバイスファイル(スーパーユーザーのみ)と特別なファイルの保存)
削除

送信先ディレクトリに存在しない送信先ディレクトリ内のファイルを削除する

Quietモード

リモートサーバからのメッセージを抑制します

Preserve permissions 元のファイルのパーミッションの保持をするか
Preserve extended attributes 拡張属性を保持するか
Delay Updates 一時ファイルを作成し全ての転送が終了した際に書き込みされます
拡張オプション 上記にないrsyncオプションはここに入力できます
有効化 タスクを有効にするかどうか

OKボタンを押すとタスクが登録されます。

即時反映テスト

登録されたタスクを選択した状態だと下にRunNowボタンがありますのでこれを押すと直ちにテストできます。 f:id:kanalabo:20171118021851j:plain

スタートするとスタートされましたと表示されます。

スケジュール設定

テストタスクが表示された後、タスクの詳細画面で有効化設定を行います。

これでスケジュールに沿ってタスクが実行されるはずです。

 

以上です。

やはりFreeNASお手軽ですね。