ネット上の情報ではどうにも上手くいかなかったので、上手くできた設定を載せます。構築はこちら。
事前準備
認証用に証明書・秘密鍵を生成しておきます。この辺りやこの辺りを参考にさせていただきました。
サーバ、クライアントに共通な証明書・秘密鍵を使います。
bacula-fdの設定
DirectorリソースとFileDeamonリソースにTLSの項目が必要です。
Director {
Name = bacula-dir
Password = "baculafd"
TLS Enable = yes
TLS Require = yes
TLS Certificate = /etc/bacula/certs/bacula.crt
TLS Key = /etc/bacula/certs/bacula.key
TLS CA Certificate File = /etc/bacula/certs/bacula_ca_file
}
FileDaemon {
Name = bacula-fd
FDport = 9102
WorkingDirectory = /var/spool/bacula
Pid Directory = /var/run
Maximum Concurrent Jobs = 20
TLS Enable = yes
TLS Require = yes
TLS Certificate = /etc/bacula/certs/bacula.crt
TLS Key = /etc/bacula/certs/bacula.key
TLS CA Certificate File = /etc/bacula/certs/bacula_ca_file
}
Messages {
Name = Standard
director = bacula-dir = all, !skipped, !restored
}
bacula-dirの設定
ClientリソースにTLSの項目が必要です。
Client {
Name = bacula-fd
Address = talt.jp
FDPort = 9102
Catalog = MyCatalog
Password = "baculafd" # password for FileDaemon
File Retention = 7 days
Job Retention = 7 days
AutoPrune = yes
TLS Enable = yes
TLS Require = yes
TLS Allowed CN = "bacula" # サーバとクライアントで同一の証明書を使う場合、証明書作成時に入力したCommon Nameを指定する。
TLS Certificate = /etc/bacula/certs/bacula.crt
TLS Key = /etc/bacula/certs/bacula.key
TLS CA Certificate File = /etc/bacula/certs/bacula_ca_file
}
確認
tcpdumpしながらstatus確認したりすると、暗号化されているのが分かると思います。
# tcpdump -i enp7s0f0 port 9102 -A
関連
参考
- Configuring Bacula to Use TLS to Encrypt Connections - Earth-Works Tips & Tricks for IT Pros
- ~nabeken/diary/ : Bacula + TLS でインターネット越しのリモートバックアップ
- Bacula TLS – Communications Encryption | Bacula
- Zabbix 3.0 通信の暗号化設定(RSA証明書ベースの暗号化) | あぱーブログ
- プライベート認証局の証明書、サーバー証明書、クライアント証明書の作成方法について | レンタルサーバー・自宅サーバー設定・構築のヒント