web-dev-qa-db-ja.com

BareosとTLSでの証明書検証エラー

私はBareos 17.2.4-9をDebian Jessieにインストールしています。 --with-opensslスイッチを使用してソースから構築されました。

TLSを有効にしなくても完全に機能しますしかし、TLSを使用するように構成しようとすると、...

# bconsole
Connecting to Director Server-Name:9101
Authorization problem with Director at "Server-Name:9101"
Most likely the passwords do not agree.
If you are using TLS, there may have been a certificate validation error during the TLS handshake.
Please see http://doc.bareos.org/master/html/bareos-manual-main-reference.html#AuthorizationErrors for help.

自己署名証明書とサーバー名の間の検証の問題が原因であると思われます。サーバーのドメイン名が設定されていません。

私は次のように証明書を作成しました...

# hostname
Server-Name
# domainname
(none)
# openssl req -new -x509 -nodes -out Server-Name.pem -keyout Server-Name.pem -days 3650
# chmod 600 Server-Name.pem
Generating a 2048 bit RSA private key
..+++
............................+++
writing new private key to 'Server-Name.pem'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:DE
State or Province Name (full name) [Some-State]:NI
Locality Name (eg, city) []:Leer
Organization Name (eg, company) [Internet Widgits Pty Ltd]:GNM
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:Server-Name
Email Address []:[email protected]

設定ファイルは...

/ etc/bareos/bareos-dir.d/director/bareos-dir.conf

Director {                            # define myself
  Name = bareos-dir
  QueryFile = "/usr/lib/bareos/scripts/query.sql"
  Maximum Concurrent Jobs = 10
  Password = "secret"         # Console password
  Messages = Daemon
  Auditing = yes
  DirAddress = Server-Name
  TLS Enable = yes
  TLS Require = yes
  TLS CA Certificate File = /etc/bareos/TLS/Bareos-Server-Name.pem
  TLS Certificate = /etc/bareos/TLS/Bareos-Server-Name.pem
  TLS Key = /etc/bareos/TLS/Bareos-Server-Name.pem
#  TLS Verify Peer = yes
  TLS Allowed CN = Server-Name
}

/ etc/bareos/bconsole.conf

Director {
  Name = bareos-dir
#  address = localhost
  address = Server-Name
  Password = "secret"
  Description = "Bareos Console credentials for local Director"
}
1
BurningKrome

NB:Bareosバージョン18.2以降、 [〜#〜] tls [〜#〜] は有効になっていますデフォルトではですが、サーバーは古いクライアント。

次のことを試してください。

  1. サーバー上のクライアントアドレス(bareos-dir.d/client/*.conf内)を名前からIPに変更します。それが機能する場合は、DNSルックアップが失敗しており、BareOSが適切なマシンと通信していることを確認できないことを意味します。

  2. 複数のインターフェースがある場合は、以下をclient/myself.conf(またはクライアント構成がファイルデーモンに保存されている場所)に追加します。

FD Address = IP-Address
FD Source Address = IP-Address

これにより、使用する発信インターフェイスが決まり、ルーティングエラーが減少します(クラウドホストで役立ちます)。これらの詳細については、 here を参照してください。

  1. 異常なOSまたはカスタムOSを使用している場合は、 TLS証明書 または-の場所を指定する必要がある場合があります。 TLS CA証明書ディレクトリ も。 TLS Verify Peer も、ピア検証が失敗しているかどうかを判断するのに役立ちます。

デバッグ-SSL接続を確認します

両端(バックアップサーバーからクライアント、クライアントからバックアップサーバー)から、次のことを試してください。

openssl s_client -connect [client-fqdn]:9102 -state -nbio

そして

openssl s_client -connect [client-ip]:9102 -state -nbio

ボーナス回答

すべての接続でTLSが有効になっているため、TLS認証の失敗は必ずしもDirector(サーバー)とFileDaemon(クライアント)の間で発生するわけではありません。 ただし、 TLS障害は(誤って)報告されます。したがって、次のようなエラーが発生します。

Fatal error: Connect failure: ERR=error:140943FC:SSL routines:ssl3_read_bytes:sslv3 alert bad record mac
Error: TLS shutdown failure.: ERR=error:140E0197:SSL routines:SSL_shutdown:shutdown while in init
Fatal error: TLS negotiation failed

...たとえば、DirectorとStorageDaemonの間のTLSAuthの失敗である可能性があります。

すべてのリンクを確認してください!

Bareos-dir.confのパスワードから引用符を削除して、再起動してみてください。

0
dampi0