Назад | Перейти на главную страницу

Ошибка проверки сертификата с Bareos и TLS

У меня на Debian Jessie установлен Bareos 17.2.4-9. Он был построен из исходников с использованием --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 []:First.Last@redacted.de

Файлы конфигурации ...

/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"
}

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

Это диктует использование исходящего интерфейса и уменьшает количество ошибок маршрутизации (полезно на облачных хостах). Видеть Вот для получения дополнительной информации об этом.

  1. Если вы используете необычную или нестандартную ОС, возможно, вам придется указать местоположение Сертификат 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 Auth не обязательно между Директором (Сервером) и 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

... может быть, например, сбой TLS Auth между Director и StorageDaemon.

Проверяйте каждую ссылку!

Попробуйте удалить кавычки из пароля в bareos-dir.conf и перезапустите.