У меня на 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 включен по умолчанию, но сервер обратно совместим со старыми клиентами.
Пожалуйста, попробуйте эти вещи:
Измените адрес клиента на сервере (в bareos-dir.d/client/*.conf
) от имени до IP. Если это сработает, это означает, что ваш DNS-поиск не работает, и BareOS не может проверить, что он обращается к нужной машине.
Если у вас несколько интерфейсов, добавьте в client/myself.conf
(или там, где конфигурация вашего клиента хранится в файловом демоне):
FD Address = IP-Address
FD Source Address = IP-Address
Это диктует использование исходящего интерфейса и уменьшает количество ошибок маршрутизации (полезно на облачных хостах). Видеть Вот для получения дополнительной информации об этом.
Отладка - для проверки 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 и перезапустите.