Zarafa и шифрование: различия между версиями
Нет описания правки |
Нет описания правки |
||
(не показана 1 промежуточная версия 1 участника) | |||
Строка 255: | Строка 255: | ||
Для '''apache''' и '''postfix''' необходимо использовать оригинальные файлы сертификатов и настройка шифрования аналогична настройке в вышеследующем разделе. | Для '''apache''' и '''postfix''' необходимо использовать оригинальные файлы сертификатов и настройка шифрования аналогична настройке в вышеследующем разделе. | ||
{{Category navigation|title=Zarafa|category=Zarafa|sortkey={{SUBPAGENAME}}}} |
Текущая версия от 14:38, 2 июля 2015
Zarafa и шифрование
Чтобы не нагромождать и так большую статью о настройке Zarafa, настройка шифрования выделена в отдельную статью. Первая часть статьи описывает конфигурацию шифрования, используя свой CA и вручную созданные сертификаты. Вторая часть описывает настройку уже при имеющихся сертификатах.
Для тех, у кого уже всё есть
Данная инструкция описывает создание самоподписанных сертификатов. Если у Вас уже имеется сертификат, тогда Вам надо перейти в конец этой инструкции.
Предварительные подготовления
Кроме тех пакетов, которые были установлены, нужно еще 2. OpenSSL наверняка уже установлен, а вот плагин TLS к postfix...:h2.
sudo apt-get install postfix-tls
Допускаем, что у Вас все настроено по основной статье, здесь я лишь те изменения и действия, предназначенные для работы шифрования.
Создание CA, сертификатов и частных ключей для них
Переходите к /var/lib/ssl/. Любым текстовым редактором открываем файл openssl.cnf. Все изменения там опциональны, все сделано для повышения удобства создания сертификатов. Меняйте след. строки:
dir = /var/lib/ssl/misc/demoCA # Чисто для удобства, если создавать сертификаты вне папки demoCA default_days = 365 # На сколько дней по умолчанию создавать сертификат stateOrProvinceName_default = Tatarstan # укажите область нахождения Вашей организации localityName_default = Kazan # то же, но город. 0.organizationName_default = Roga i kopyta # Название вашей организации. organizationalUnitName_default<>= Pohorony # Название отдела организации. commonName_default = i-2-6-VM.localdomain # Настойтельно рекомендуется выбрать FQDN сервера в качестве общего имени. Можно узнать по команде hostname -f emailAddress_default = test@rik.ru # Основной адрес электронной почты организации
По сути, эти настройки ни на что не влияют, просто при создании сертификата эти данные будут предложены по умолчанию. Все остальные параметры менять по Вашему усмотрению, нет смысла рассматривать все.
После сохранения изменений переходим к ./misc/. В этой папке запускаем скрипт CA с ключом создания центра сертификации:
cd ./misc ./CA -newCA
Отвечайте на вопросы скрипта, опциональные параметры можете пропустить.
Далее создайте любой каталог и помещаем туда два скрипта, прикрепленные к статье. Запускайте вначале генерацию частных ключей, далее - публичных сертификатов.
./private.key.gen.sh ./public.cert.gen.sh
Скрипты приложены к этой статье (выложу чуть позже). Учтите, что сертификаты для выдаваться разным именам, организацию можно не менять. В случае использования лишь одного имени, создается лишь один сертификат.
Во время выполнения скрипта все нужные данные уже будут по умолчанию, в нужных местах придется лишь набрать пароль. Единственное замечание: помните, что для сертификатов нельзя выдавать одинаковые CommonNames, поэтому во время создания при запросе CommonName указывайте уникальные имена.
В каталоге, где эти скрипты были запущены, для каждого сервиса будут созданы сертификаты и ключи к ним. Теперь поместим их в нужные папки. Выполните эти команды по очереди:
# mkdir /etc/postfix/ssl/ # mkdir /etc/httpd2/ssl/ # mkdir /etc/zarafa/ssl/ # cp postfix_p* /etc/postfix/ssl/ # cp apache_p* /etc/httpd2/ssl/ # cp *.pem /etc/zarafa/ssl/ # rm /etc/zarafa/ssl/postfix_p* /etc/zarafa/ssl/apache_p* # cp /var/lib/ssl/misc/demoCA/cacert.pem /etc/postfix/ssl/ # cp /var/lib/ssl/misc/demoCA/cacert.pem /etc/zarafa/ssl/ # cp /var/lib/ssl/misc/demoCA/cacert.pem /etc/httpd2/ssl/ # chown -R vmail /etc/zarafa/ssl/ # chmod -R 700 /etc/zarafa/ssl/ # chmod 640 /etc/httpd2/ssl/*private* /etc/postfix/ssl/*private*
Теперь переходим, собственно, к настройке шифровании.
Настройка шифрования в zarafa (/etc/zarafa/)
Далее указаны строки конфиг. файлов, которые необходимо изменить:
dagent.cfg:
sslkey_file = /etc/zarafa/ssl/dagent_private_key.pem sslkey_pass = password
gateway.cfg:
pop3s_enable = yes pop3s_port = 995 imaps_enable = yes imaps_port = 993 ssl_private_key_file = /etc/zarafa/ssl/gateway_private_key.pem ssl_certificate_file = /etc/zarafa/ssl/gateway_public_cert.pem ssl_verify_file = /etc/zarafa/ssl/cacert.pem
Если необходимо отключить нешифрованные соединения, то:
pop3_enable = no imap_enable = no
ical.cfg:
icals_enable = yes icals_port = 8443 ssl_private_key_file = /etc/zarafa/ssl/ical_private_key.pem ssl_certificate_file = /etc/zarafa/ssl/ical_public_cert.pem ssl_verify_file = /etc/zarafa/ssl/cacert.pem
Если необходимо отключить нешифрованные соединения для службы календарей, то:
ical_enable = no
indexer.cfg:
sslkey_file = /etc/zarafa/ssl/indexer_private_key.pem sslkey_pass = password ssl_private_key_file= /etc/zarafa/ssl/indexer_private_key.pem ssl_certificate_file= /etc/zarafa/indexer/indexer_public_cert.pem
monitor.cfg:
sslkey_file = /etc/zarafa/ssl/monitor_private_key.pem sslkey_pass = password
server.cfg:
server_ssl_enabled = yes server_ssl_port = 237 server_ssl_key_file = /etc/zarafa/ssl/server_cert_key.pem server_ssl_key_pass = password server_ssl_ca_file = /etc/zarafa/ssl/cacert.pem
spooler.cfg:
sslkey_file = /etc/zarafa/ssl/spooler_private_key.pem sslkey_pass = password
licensed.cfg (если имеется):
sslkey_file = /etc/zarafa/ssl/licensed_private_key.pem sslkey_pass = password
Я думаю, объяснений не требуется, всё тривиально.
Службы zarafa пока не следует запускать.
Postfix (/etc/postfix/)
Далее приведен кусок конфигурации main.cf для включения шифрования.
smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem smtpd_tls_cert_file = /etc/postfiх/ssl/postfix_public_cert.pem smtpd_tls_key_file = /etc/postfix/ssl/postfix_private_key.pem smtpd_use_tls = yes smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache smtp_use_tls = yes tls_random_source = dev:/dev/urandom smtp_tls_note_starttls_offer = yes # Same as defaults #smtpd_enforce_tls = no #smtpd_tls_auth_only = no #smtpd_tls_received_header = no #smtpd_tls_session_cache_timeout = 3600s
Это конфиг универсален, возможно, придется лишь изменить пути к сертификатам, если они помещены не в каталоге ./ssl/.
О включении 465 порта (SMTPS) обратитесь в основной статье, п. "Полезные советы".
Apache (/etc/httpd2/)
Первым делом установите пакет apache2-mod_ssl:
apt-get install apache2-mod_ssl
После этого откройте файл ./conf/sites-available/default_https.conf и измените след. строки:
#ServerName www.example.com:443 # закомментируйте эту строчку SSLCertificateFile "/etc/httpd2/ssl/apache_public_cert.pem" SSLCertificateKeyFile "/etc/httpd2/ssl/apache_private_key.pem" SSLCACertificateFile "/etc/httpd2/ssl/cacert.pem"
Сохраняем этот файл. Редактируйте ports_all:
#NameVirtualHost *:80 #Listen 10.10.19.47:80 <IfModule mod_ssl.c> NameVirtualHost *:443 Listen 443 </IfModule> <IfModule mod_gnutls.c> NameVirtualHost *:443 Listen 443 </IfModule>
Первые две строчки закомментированы, потому что при попытке запустить сервер с этими параметрами apache выдаст ошибку вида:
Starting httpd2 service: (98)Address already in use: make_sock: could not bind to address 10.10.19.47:80 no listening sockets available, shutting down
Следующий файл на изменение - ./conf/mods-start.d/000-default.conf. В ней нужно добавить строчку:
ssl=yes
Последний штрих: создайте символические ссылки:
ln -s /etc/httpd2/conf/mods-available/ssl.conf /etc/httpd2/conf/mods-enabled/ssl.conf ln -s /etc/httpd2/conf/mods-available/ssl.load /etc/httpd2/conf/mods-enabled/ssl.load
Теперь перезагрузите все необходимые службы:
/etc/init.d/postfix restart; /etc/init.d/httpd2 restart; /etc/init.d/mysqld restart; /etc/init.d/zarafa-dagent restart; /etc/init.d/zarafa-gateway restart; /etc/init.d/zarafa-ical restart; /etc/init.d/zarafa-indexer restart; /etc/init.d/zarafa-monitor restart; /etc/init.d/zarafa-server restart; /etc/init.d/zarafa-spooler restart
Если все настройки были прописаны верно, все службы запустятся успешно. Заметьте, что в строке нет команды запуска службы лицензий. Если этот файл необходимо запустить, то поместите нижеследующую строку до команды запуска zarafa-server:
/etc/init.d/zarafa-licensed restart;
Для проверки работы через шифрованное соединение продейлайте след. шаги:
- Войдите в webaccess через https, например, https://www.example.com. Браузер, скорее всего, выведет предупреждение о недоверенности сертификата, добавляйте исключение для сайта.
- Войдите под своим именем и паролем.
- Отправьте письмо самому себе. Приход письма означает корректную настройку шифрования.
Сторонние клиенты, поддерживающие автоматическую настройку, выберут режим с шифрованием сами. Остальные клиенты нужно настраивать с указанием корректных настроек.
Для SMTP доступно два порта - 25 и 465. Оба эти порта будут шифрованы, один - StartTLS, другой - SSL. Вы вправе использовать оба порта по своему разумению.
На этом настройка шифрования почты завершена.
Шифрование официальными сертификатами
В данным разделе объясняется нюанс использования уже существующих сертификатов. Сам алгоритм настройки совпадает с предыдущим разделом.
Рассмотрим ситуацию. В Вашем распоряжении имеются cert.crt (сам сертификат), req.key (закрытый ключ для сертификата), ca.crt (сертификат Центра сертификации). В данном случае эти файлы сгодятся лишь для некоторых служб Zarafa. Для других нужно создать объединенный файл сертификата, содержащий в себе собственно сертификат и ключ к нему. Для этого:
cat /path/to/req.key > /path/to/cert_new.pem cat /path/to/cert.crt >> /path/to/cert_new.pem
Таким образом у Вас будет создано все для настройки шифрования Zarafa существующими сертификатами.
Теперь поясню, что где какие файлы надо указать. В gateway.cfg и ical.cfg нужно указать оригинальные файлы:
ssl_private_key_file = /etc/zarafa/ssl/req.keyh2. ssl_certificate_file = /etc/zarafa/ssl/cert.crt sll_verify_file = /etc/zarafa/ssl/ca.crt
Для indexer.cfg нужно указывать:
sslkey_file = /etc/zarafa/ssl/cert_new.pem sslkey_pass = # при ручном создании пароля к созданному сертификату не будет ssl_private_key_file= /etc/zarafa/ssl/req.key ssl_certificate_file= /etc/zarafa/indexer/cert.crt
Для остальных служб (dagent.cfg, monitor.cfg, licensed.cfg, server.cfg, spooler.cfg) необходимо указать созданный нами файл.
sslkey_file = /etc/zarafa/ssl/cert_new.key sslkey_pass = # при ручном создании пароля к созданному сертификату не будет
Файл ca.crt указываем в server.cfg:
server_ssl_ca_file = /etc/zarafa/ssl/ca.crt
Для apache и postfix необходимо использовать оригинальные файлы сертификатов и настройка шифрования аналогична настройке в вышеследующем разделе.