FreeNAS/TrueNAS設定バックアップの自動化

投稿者: | 2020年12月23日

FreeNAS(現TrueNAS)では設定ファイルをWebGUIからダウンロードしたり、アップロード復元したり出来ますが、もしもの時に備え、定期的にこの設定ファイルをバックアップする仕組みを組んでみました。

設定ファイルは、FreeNAS WebGUIのSystem → General 頁の一番下にあるSAVE CONFIGボタン押し下げで、保存することが出来ます(2つのチェックボックスはデフォルトで外れているので、共にチェック入れてからSAVEする)。

図1.FreeNAS WebGUIのSaveConfiguration

図1.FreeNAS WebGUIのSaveConfiguration

ダウンロードしたtarの中身はこのようになっています。

障害発生等でまっさらな状態から組み直す際には、システムの初期状態からIPアドレスだけ先に付与し、WebGUIからこの設定ファイルをアップロードすることで、設定を元通り復元することが出来るというわけです。そんな大切な設定ファイルの自動バックアップを次の要件でセットアップします。

図2.FreeNAS設定バックアップ概略

図2.FreeNAS設定バックアップ概略

近年ではランサムウェアによる被害も増えていることから、その格好の攻撃先になりやすいsmb共有フォルダへの保存を避け、scpでの転送を前提にしています。尚、執筆時のFreeNASバージョンは11.3U1です。

 

FreeNAS側のsshキーペアを生成

バックアップした設定ファイルを同じサブネット内の別のNASへscpにて転送するわけですが、自動化ではその際にsshの鍵認証が必要になります。WebGUIにそれらしき項目があるので試してみたのですが、どうもこれはFreeNASシステム同士のレプリケーション等、限定的な用途やFreeNASへのアクセスに関する項目のようで、今回の目的にはそぐわないようです。

図3.FreeNASのsshに関するGUI項目

図3.FreeNASのsshに関するGUI項目

詳しくはとても綺麗に整えられた公式ドキュメントが用意されているのでそちらへどうぞ。図5.Cron Jobs

 

仕方無いので通常通り、コンソールから手動で鍵ペアを生成します。

生成された鍵ペアのうち、公開鍵(id_rsa.pub)を接続先である別のNASへSCPを使って転送します(転送先では便宜上、id_rsa.pub.nas30とリネームしています)。

 

設定保存先のNASへ公開鍵を登録

FreeNASよりSCPで転送されたPublic Key公開鍵(id_rsa.pub.nas30)をAlt-Fが稼働するD-Link DNS-323 2Bay NASのsshdのauthorized_keysファイルに追加します(特にGUIは用意されていないのでsshコンソールにて)。但し、Alt-Fではこうしたシステム領域のファイルは、システム起動毎にその都度生成されるので、先ず、

に公開鍵を追記して疎通確認をして問題無くアクセス出来ることを確認の上、起動時のユーザスクリプトに指定されているHDDストレージ領域の保存先にも忘れずに追加して、再起動して公開鍵が消えてしまうのを防ぎます。

 

FreeNAS設定バックアップスクリプト

同じBSD系のpfSense同様、FreeNASは設定ファイルを常に決められた場所(/data)に保持しているので、バックアップはそのファイルを保存すれば良いだけです。当該フォルダには次のようなファイルが収められています。

ここから、次の2つのファイルをバックアップ対象として選択します。

  • freenas-v1.db : 設定データベース
  • pwenc_secret  : パスワードシークレット

これらをtarで固めるわけですが、FreeNASではバージョンが異なる設定は復元適用出来ないことが多いことから、WebGUIにより生成されるバックアップファイルの例に習い、そのファイル名にバージョン番号を付与しておくことにします。

以上より今回組んだ設定バックアップスクリプトは次のようになります。

 

FreeNASのタスクへジョブ登録

FreeNASのWebGUI上で、設定バックアップスクリプトを定期実行するcronジョブを登録します。Tasks → Cron Jobs 頁にて、右上のADDボタン押下で新規ジョブを作成します。

図4.Add Cron Job

図4.Add Cron Job

SAVE CRON JOBで保存しジョブ一覧に戻り、作成したジョブが正しく登録されていることを確認します。

図5.Cron Jobs

図5.Cron Jobs

試しにこのジョブをRUN NOWしてみましょう。期待通りに設定ファイルが保存されていました。

このままではNASの容量の許す限り設定ファイルは増え続けるので、以前紹介した世代管理する仕組みをNAS上で定期的に走らせて、保持する世代数を制限する必要があるでしょう。

 

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA