Немного девичьих IT-шных записок

среда, 19 сентября 2018 г.

Как перевести Windows Server 2016 из редакции Standart в редакцию Datacenter

На самом деле редакции Standart и Datacenter ОС Windows Server 2016 по спецификациям сильно не отличаются (см. wiki на момент написания блога), но для организации хранилища, файловых "помоек" и всего тому подобного, в Datacenter в отличии от Standart есть интересный компонент Реплика хранилища (Storage Replica).

Но имея под рукой установленную редакцию Standart, можно легко превратить ее в Datacenter.

Запускаем PowerShell, проверяем установленную редакцию с помощью команды:
DISM /online /Get-CurrentEdition

Проверяем доступность редакций для апгрейда, в списке должна присутствовать DatacenterEdition:
DISM /online /Get-TargetEditions

И переходим к апгрейду до нужной редакции, что займет не больше 10 минут:
DISM /online /Set-Edition:ServerDatacenter /ProductKey:$$$$$-$$$$$-$$$$$-$$$$$-$$$$$ /AcceptEula

Ключ для апгрейда до Datacenter был взят отсюда.

Вот и всё, после перезагрузки можно проверить редакцию первой командой.

четверг, 10 мая 2018 г.

Генерация и установка SSL-сертификата для сервера MDaemon

Имеется почтовый сервер MDaemon 16 версии, необходимо получить SSL сертификат у стороннего авторизованного центра сертификации, для дальнейшего использования протоколов POP3 SSL, IMAP SSL, SMTP SSL. Весь процесс того, как это сделать опишу здесь.

Коротко о самом сертификате. 
Сертификат - это открытый ключ, необходимый для шифрования в работе указанных протоколов. Сертификату обязательно соответствует закрытый ключ, контейнер закрытого ключа должен храниться на web-сервере, на котором будут использоваться SSL-протоколы. Так же, необходимо наличие корневого и промежуточных (если такие имеются) сертификатов центра сертификации, для того, чтобы система понимала путь сертификации и знала откуда Ваш сертификат происходит и что он действителен. Т.е. полный список того, чтобы SSL-сертификат работал:

  • SSL-сертификат домена или хоста домена,
  • закрытый ключ,
  • промежуточный сертификат центра сертификации,
  • корневой сертификат центра сертификации.

Как и где взять сертификат?
Есть два варианта:

  • развернуть свой центр сертификации и выпустить самоподписанный сертификат 

или же

  • обратиться к стороннему удостоверяющему центру, такому как Thawte, Comodo, Let's Encrypt и т.д. 

Сертификаты от известных УЦ имеют преимущество в том, что их корневые сертификаты предустановлены в браузерах, и вопросов о возникновении Вашего сертификата в браузере не возникнет. Чаще всего получить SSL-сертификат у такого УЦ стоит некоторую сумму денег, и цена различается в зависимости от того, что именно сертификат подтверждает - домен, организацию, степень доверия. Но, например, у Comodo можно заказать бесплатный сертификат, действие которого продлится не более 90 суток. Он будет подтверждать только определенный хост домена в двух вариациях - domen.ru и www.domen.ru. Такие же бесплатные сертификаты можно заказать у Let's Encrypt.

О получении бесплатного сертификата от Let's Encrypt и настройке автоматического продления можно почитать тут.

Остановились на том, что сертификат будет куплен на год у компании RuCenter. Это будет сертификат Thawte SSL 123 для подтверждения домена. Причем покупка SSL-сертификата у партнеров, чем у самих УЦ часто бывает выгодней.
Для того, чтобы заказать сертификат нужно создать файл запроса. И опять есть несколько вариантов: создать запрос на сайте УЦ или на своем сервере (компьютере) с помощью различного программных продуктов (например, можно использовать пакет OpenSSL, но мы пойдем путем проще).

P.S. Доверять созданию запроса на сайте я бы не стала, столкнулась с тем , что первый раз при генерации запроса закрытый ключ не сохранился (хотя техподдержка говорит о том, что он должен был сохраниться автоматически), из-за отсутствия закрытого ключа сертификат пришлось перевыпускать.

Запрос сертификата.
В нашем случае воспользуемся стандартными средствами Windows, и статьей из базы знаний о MDaemon (пруф-линк).
MDaemon не имеет встроенных средств для создания файла запроса сертификата (Certificate Signing Request, CSR), который необходим для получения SSL-сертификата у стороннего центра сертификации (Certification authority, CA).
В ОС Windows имеется встроенная утилита командной строки certreq.exe, которая позволяет создать запрос и импортировать новые сертификаты в хранилище сертификатов Windows, а далее MDaemon уже может воспользоваться ими оттуда.
Необходимо создать CSR-запрос на сертификат с длиной ключа в 2048 бита и заказать сертификат у Центра сертификации.

1. Логинимся на нашем сервере с MDaemon под учетной записью с правами администратора.
2. Создаем файл с именем "CSRParameters.inf" в корне диска C с помощью Блокнота или другого текстового редактора.


;----------------- request.inf -----------------
[NewRequest]
 Subject="CN=mail.vlc.ru,O=Administration Vladivostok,S=Primorsky krai,L=Vladivostok,C=RU"
 KeySpec=1
 KeyLength=2048
 Exportable=TRUE
 MachineKeySet=TRUE
 SMIME=False
 PrivateKeyArchive=FALSE
 UserProtected=FALSE
 UseExistingKeySet=FALSE
 ProviderName="Microsoft RSA SChannel Cryptographic Provider"
 ProviderType=12
 RequestType=PKCS10
 KeyUsage=0xa0
 Silent=TRUE
 [EnhancedKeyUsageExtension]
 OID=1.3.6.1.5.5.7.3.1
 OID=1.3.6.1.5.5.7.3.2
;-----------------------------------------------

3. Открываем командную строку, переходим в корень диска C
cd C:\
Вводим следующую команду
certreq -new CSRParameters.inf CSROutput.pem

4. Проверяем наличие файла CSROutput.pem на диске C.

5. Открываем файл CSROutput.pem текстовым редактором и копируем его содержимое в поле для запроса на сайте УЦ. Сам запрос будет выглядеть следующим образом:

-----BEGIN NEW CERTIFICATE REQUEST-----
3DQIDMQwWCjYuMS43NjA.....[запрос, закодированный по схеме Base64]
-----END NEW CERTIFICATE REQUEST-----

6. В ответ на запрос УЦ пришлет сертификат в формате .crt и корневые сертификаты (если корневых сертификатов не было приложено, их можно взять на сайте УЦ).

Установка сертификата.
1. Открываем консоль mmc, добавляем оснастку "Сертификаты" (локального компьютера). Переходим во вкладку "Личное" и нажимаем в консольном меню "Импорт".

P.S. Сначала необходимо установить полученный SSL-сертификат на том компьютере, где генерировался запрос. Т.к. контейнер закрытого ключа был сохранен именно там. Если запрос генерировался на сервере, где сертификат будет использоваться, то Экспорт и перенос сертификата не нужен.

2. Импортируем SSL-сертификат в "Личное", промежуточные в "Промежуточные центры сертификации", а корневой в "Доверенные центры сертификации". В "Личном" появится сертификат для Вашего домена с иконкой сертификата с ключом. Это значит, что сертификат установлен так, как нам нужно.

3. Если сертификат необходимо перенести на сервер, то следует из "Личного" выполнить экспорт в формате PKCS #12 с экспортом закрытого ключа, а так же отметить:
- Экспортировать все расширенные свойства.
Необходимо также будет установить пароль, который позже потребуется при импорте сертификата на сервер.

4. Импортировать .pfx сертификат в "Личное". Промежуточные в "Промежуточные центры сертификации", а корневой в "Доверенные центры сертификации".

Если всё сделано верно, то в настройках MDaemon "Безопасность", далее "Параметры безопасности", далее "SSL & TLS", далее "MDaemon" отразиться установленный сертификат для нашего домена.

Повторная установка сертификата.
Нужен OpenSSL, открываем его C:\Program Files (x86)\OpenSSL-Win32\bin\OpenSSL.exe
Пишем:
pkcs12 -export -out domain.name.pfx -inkey domain.name.key -in domain.name.crt 

среда, 21 февраля 2018 г.

Создание базы данных в MySQL для Zabbix на Debian 9

В связи с выходом нового выпуска Debian 9, с кодовым именем Stretch, инструкция по установке Zabbix 3.4 (тут) стала немножко неактуальна. Поэтому для любителей Ctrl+C/Ctrl+V внесем небольшие поправки для установки Zabbix, а так же уточнения для создания базы данных в MySQL.

Для установки пакетов необходимо ввести следующие команды:
# wget http://repo.zabbix.com/zabbix/3.4/debian/pool/main/z/zabbix-release/zabbix-release_3.4-1+stretch_all.deb
# dpkg -i zabbix-release_3.4-1+stretch_all.deb
# apt-get update

Не забываем установить MySQL:
# apt-get install zabbix-server-mysql zabbix-frontend-php


Теперь необходимо создать системного пользователя Zabbix и базу данных. Откроем консоль MySQL, для этого введем:
mysql -uroot -p


Далее потребуется ввести пароль нашего суперпользователя root. Откроется консоль MySQL. Сразу создадим базу данных с именем Zabbix с кодировкой UTF8:
CREATE DATABASE zabbix CHARACTER SET utf8 COLLATE utf8_bin;

Теперь создадим пользователя так же с именем Zabbix и придумаем пароль.
CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'password';

Теперь необходимо задать права на все таблицы базы данных Zabbix (zabbix.*) для пользователя Zabbix:
GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost';

Чтобы изменения вступили в силу, обновим наши привилегии:
FLUSH PRIVILEGES;

Теперь перейдем в каталог, где находится скрипт create.sql.gz для создания таблиц в базе данных.
cd /usr/share/doc/zabbix-server-mysql

Выполним его следующей командой, распаковка занимает значительное время, так что следует немного подождать.
sudo zcat create.sql.gz | mysql -uroot zabbix -p

Далее проверим настройки Zabbix'а для подключения к базе данных, они находятся в файле, по указанному ниже пути. Пароль password - это пароль пользователя базы данных Zabbix.
# sudo nano /etc/zabbix/zabbix_server.conf
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=password

Далее проверим настройки Zabbix'а для подключения к базе данных, они находятся в файле, по указанному ниже пути. Пароль password - это пароль пользователя базы данных Zabbix.
# sudo nano /etc/zabbix/zabbix_server.conf
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=password

Так же выполним настройку часового пояса для Apache, откроем файл и изменим все параметры для Timezone на необходимый нам часовой пояс. Список поясов можно посмотреть тут.
/etc/apache2/conf-enabled zabbix
Asia/Vladivostok

Сервер Zabbix полностью установлен, запустим его и добавим службу в автозапуск.
# service zabbix-server start
# update-rc.d zabbix-server enable

Дальнейшая настройка сервера будет производится через веб-интерфейс, который будет расположен по ip-адресу Вашего сервера - http://ip-адрес/zabbix. Первый вход осуществляется с логином Admin и паролем zabbix, но для последующего входа, пароль рекомендуется поменять, да и вообще неплохо бы подумать над безопасностью сервера.