Защита веб доступа Zabbix с помощью SSL

On 25/07/2016, in Zabbix, by Алексей Волобуев

Продолжаю статью о настройке Zabbix. Следующим шагом в настройке Заббикса будет замена доступа к веб с помощью протокола http на протокол https.

Шаг первый — создадим папку, где будут храниться ключи и сертификаты

mkdir -p /etc/nginx/ssl

Выдадим нужные права

chmod 640 -R /etc/nginx/ssl

создадим закрытый ключ сервера

openssl genrsa -out private.key 2048

Создаем CSR запрос

openssl req -new -sha256 -key private.key -out server.csr

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) [XX]:RU
State or Province Name (full name) []:Moscow
Locality Name (eg, city) [Default City]:Moscow
Organization Name (eg, company) [Default Company Ltd]:LLC Company
Organizational Unit Name (eg, section) []:IT
Common Name (eg, your name or your server’s hostname) []:monit.domen.ru
Email Address []:sysadmin@itsmart.ru

Please enter the following ‘extra’ attributes
to be sent with your certificate request
A challenge password []:
string is too short, it needs to be at least 4 bytes long
A challenge password []:
An optional company name []:

Пароль я не вводил
В файле server.csr получили файл запрос, содержимое которого необходимо передать в центр сертификации

cat server.csr
——BEGIN CERTIFICATE REQUEST——
….
——END CERTIFICATE REQUEST——

У меня центр сертификации StartSSL, он подписал мой запрос, выслал в ответ архив с сертификатами для разных веб-серверов.
Полученный файл копируем в /etc/nginx/ssl
Пусть это будет файл с именем monit_bundle.crt. Он уже содержит в себе сертификат сервера и ЦС.

Дальше настраиваем веб-сервер NGINX.
Пример настроек можно взять отсюда

Усиливаем безопасность

chmod 400 /etc/nginx/ssl/*
chown  root:root /etc/nginx/ssl/*

Редактируем файл настроек

 nano /etc/nginx/conf.d/zabbix.conf

Добавляем строки

В секцию server

listen              443 ssl;
ssl_certificate     /etc/nginx/ssl/monit_bundle.crt;
ssl_certificate_key /etc/nginx/ssl/private.key;
ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers         HIGH:!aNULL:!MD5;

Проверяем корректность настроек

# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Применяем новые настройки

systemctl reload  nginx.service

Заходим по https://имя_сервера. Если все работает хорошо, то далее можно заняться оптимизацией ssl в nginx. Если все плохо, то исправляем ошибки и снова проверяем.
Пример файла конфигурации с ssl можно взять отсюда

Tagged with:  

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *