[comment]: # ({a804241c-5407a56a})
# 6 Безопасное подключение к веб-интерфейсу

[comment]: # ({/a804241c-5407a56a})

[comment]: # ({5ca67f7f-7cadd09e})
#### Обзор

В этом разделе приведены шаги по настройке Zabbix и примеры конфигурации для
безопасных TLS-соединений между веб-интерфейсом Zabbix и сервером Zabbix.

[comment]: # ({/5ca67f7f-7cadd09e})

[comment]: # ({b3284585-ec63018e})
#### Конфигурация

По умолчанию связь между веб-интерфейсом Zabbix и сервером Zabbix не зашифрована. Для повышения безопасности включите TLS на обеих сторонах. Ниже приведен пример самого простого способа сделать это.

1\. Сгенерируйте сертификаты и ключи.

Создайте рабочий каталог:

```bash
sudo mkdir -p /etc/zabbix/ssl && cd /etc/zabbix/ssl
```

Создайте сертификат CA (измените значение `MyZabbixCA`, чтобы оно соответствовало фактическому common name):

```bash
sudo openssl genrsa -out ca.key 4096
sudo openssl req -new -x509 -days 3650 -key ca.key -out ca.crt -subj "/CN=MyZabbixCA/"
```

Сгенерируйте закрытый ключ и сертификат для сервера Zabbix (измените значение `zabbix-server.example.com`, чтобы оно соответствовало фактическому common name):

```bash
sudo openssl genrsa -out server.key 2048
sudo openssl req -new -key server.key -out server.csr -subj "/CN=zabbix-server.example.com/"
sudo openssl x509 -req -days 365 -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -sha256 -out server.crt
```

Сгенерируйте закрытый ключ и сертификат для веб-интерфейса Zabbix (измените значение `zabbix-frontend-node`, чтобы оно соответствовало фактическому common name):

```bash
sudo openssl genrsa -out frontend.key 2048
sudo openssl req -new -key frontend.key -out frontend.csr -subj "/CN=zabbix-frontend-node/"
sudo openssl x509 -req -days 365 -in frontend.csr -CA ca.crt -CAkey ca.key -CAcreateserial -sha256 -out frontend.crt
```

2\. Установите правильные права доступа.

Для сервера Zabbix (при необходимости измените владельца/группу в соответствии с пользователем демона сервера Zabbix в вашем дистрибутиве):

```bash
sudo chown root:zabbix /etc/zabbix/ssl/server.{crt,key} /etc/zabbix/ssl/ca.crt
sudo chmod 640 /etc/zabbix/ssl/server.key
sudo chmod 644 /etc/zabbix/ssl/server.crt /etc/zabbix/ssl/ca.crt
```

Для веб-интерфейса (при необходимости измените владельца/группу в соответствии с пользователем веб-сервера в вашем дистрибутиве):

```bash
sudo chown root:www-data /etc/zabbix/ssl/frontend.{crt,key}
sudo chmod 640 /etc/zabbix/ssl/frontend.key
sudo chmod 644 /etc/zabbix/ssl/frontend.crt
```

3\. Настройте сервер Zabbix.

В `zabbix_server.conf` добавьте:

```ini
TLSFrontendAccept=cert
TLSCertFile=/etc/zabbix/ssl/server.crt
TLSKeyFile=/etc/zabbix/ssl/server.key
TLSCAFile=/etc/zabbix/ssl/ca.crt
# При необходимости:
# TLSFrontendCertIssuer=/CN=MyZabbixCA/
# TLSFrontendCertSubject=/CN=zabbix-frontend-node/
```

Затем перезапустите сервер:

```bash
sudo systemctl restart zabbix-server
```

4\. Настройте веб-интерфейс Zabbix.

Во время [установки веб-интерфейса](/manual/installation/frontend) включите параметр *Encrypt connections from Web interface* (а также *Verify server certificate issuer and subject*, если необходимо) и заполните поля *TLS CA file*, *TLS key file*, *TLS certificate file* (а также поля *Server TLS certificate issuer* и *Server TLS certificate subject*, если необходимо):

![](../../../../assets/en/manual/appendix/install/frontend_encrypt.png){width="600"}

|Parameter|Description|
|--|--------|
|*TLS CA file*|Укажите полный путь к файлу сертификата центра сертификации (CA), используемому для проверки сертификата сервера.|
|*TLS key file*|Укажите полный путь к файлу закрытого ключа клиента, соответствующего сертификату клиента.|
|*TLS certificate file*|Укажите полный путь к файлу сертификата клиента, если требуется взаимная аутентификация TLS.|
|*Server TLS certificate issuer*|Укажите Distinguished Name (DN) издателя, который должен совпадать с сертификатом сервера.|
|*Server TLS certificate subject*|Укажите Distinguished Name (DN) субъекта, который должен совпадать с сертификатом сервера.|

В существующих установках отредактируйте следующие поля в `zabbix.conf.php`:

```php
$ZBX_SERVER_TLS['ACTIVE'] = '1';
$ZBX_SERVER_TLS['CA_FILE'] = '/etc/zabbix/ssl/ca.crt';
$ZBX_SERVER_TLS['KEY_FILE'] = '/etc/zabbix/ssl/frontend.key';
$ZBX_SERVER_TLS['CERT_FILE'] = '/etc/zabbix/ssl/frontend.crt';
// При необходимости:
// $ZBX_SERVER_TLS['CERTIFICATE_ISSUER']  = '/CN=MyZabbixCA/';
// $ZBX_SERVER_TLS['CERTIFICATE_SUBJECT'] = '/CN=zabbix-server.example.com/';
```

5\. Проверьте шифрование, убедившись, что в журнале веб-интерфейса Zabbix или в файле журнала сервера Zabbix нет сообщений об ошибках:

```bash
tail -f /var/log/zabbix/zabbix_server.log
```

[comment]: # ({/b3284585-ec63018e})
