Перейти к собственно контенту

Архив

Метка: ssl

Данная статья описывает настройку Redmine+Unicorn+Nginx на ОС FreeBSD. Данные будем хранить в MySQL

Установка Web сервера

Ставим nginx
# cd /usr/ports/www/nginx
# make config-recursive
# make install clean

в /etc/rc.conf добавляем:
nginx_enable=YES

Ставим MySQL ( я выбрал MariaDB 10.1 )
# cd /usr/ports/databases/mariadb101-server
# make config-recursive
# make install clean

в /etc/rc.conf добавляем:
mysql_enable=YES
Запускаем MySQL
# /usr/local/etc/rc.d/mysql-server start

Задаем пароль для root в MySQL ( в скобках сам пароль )
# mysqladmin -u root password 'password'

Установка Redmine

# cd /usr/ports/www/redmine
# make config-recursive
# make install clean

Создаем пользователя и базу для redmine:
# mysql -p
CREATE DATABASE redmine CHARACTER SET utf8;
CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'PASSWORD';
GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost';

Переходим в директорию с Redmine, копируем и редактируем конфиг подключения к БД в соотвествии ранее созданного пользователя:
cd /usr/local/www/redmine/
cp config/database.yml.example config/database.yml
nano config/database.yml

Установка Unicorn:
Редактируем файл Gemfile
# ee Gemfile
и добавляем в конце
gem 'unicorn'

Выполняем команду
# bundle install --without development test

Генерируем ключи и инициализируем базу данных
# bundle exec rake generate_secret_token
# rake db:migrate RAILS_ENV=production
# rake redmine:load_default_data RAILS_ENV=production

Создаем и редактируем конфиг unicorn
# touch config/unicorn.rb
# ee config/unicorn.rb

и приводим его к такому виду
worker_processes 3 # Numbers CPU + 1
working_directory "/usr/local/www/redmine/"
preload_app true
timeout 300
listen "/usr/local/www/redmine/tmp/sockets/unicorn.sock", :backlog => 64
pid "/usr/local/www/redmine/tmp/pids/unicorn.pid"
stderr_path "/usr/local/www/redmine/log/unicorn.stderr.log"
stdout_path "/usr/local/www/redmine/log/unicorn.stdout.log"

before_fork (далее…)

Данная статья описывает настройку почтового сервера на ОС FreeBSD ( у меня стоит версия 11.1-STABLE ) на базе Exim в качестве SMTP сервера с поддержкой SpamAssasin и ClamAV, Dovecot в качестве POP3 / IMAP сервера, поддержкой SSL и веб интерфейсами Vexim для упрвавления ящиками и Roundcube в качестве почтового веб клиента. Данные будем хранить в MySQL

Установка Web сервера и сервера баз данных

Ставим nginx
# cd /usr/ports/www/nginx
# make config-recursive
# make install clean

в /etc/rc.conf добавляем:
nginx_enable="YES"

Ставим MySQL ( я выбрал MariaDB 10.1 )
# cd /usr/ports/databases/mariadb101-server
# make config-recursive
# make install clean

в /etc/rc.conf добавляем:
mysql_enable="YES"
Запускаем MySQL
# /usr/local/etc/rc.d/mysql-server start

Задаем пароль для root в MySQL ( в скобках сам пароль )
# mysqladmin -u root password 'password'

Ставим PHP ( отмечаем FPM )
# cd /usr/ports/lang/php71
# make config-recursive
# make install clean

в /etc/rc.conf добавляем:
php_fpm_enable="YES"

Приводим файл /usr/local/etc/php-fpm.conf к такмоу виду:
[global]
pid = run/php-fpm.pid
error_log = /var/log/php-fpm.log
events.mechanism = kqueue
include=/usr/local/etc/php-fpm.d/*.conf

Редактируем файл пула
# ee /usr/local/etc/php-fpm.d/www.conf
и приводим к такому виду
[www]
user = www
group = www
listen = /tmp/www.sock
listen.backlog = -1
listen.owner = www
listen.group = www
listen.mode = 0666
pm.status_path = /status
ping.path = /ping
pm = dynamic
pm.max_children = 5
pm.start_servers = 1
pm.min_spare_servers = 1
pm.max_spare_servers = 5
pm.max_requests = 5000
security.limit_extensions = .php
chdir = /usr/local/www/
env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp
php_admin_value[cgi.fix_pathinfo] = 0
php_admin_value[open_basedir] = /usr/local/www:/tmp:/usr/local/share/pear:/usr/local/mail:/var/www
php_admin_value[error_log] = /usr/local/www/logs/php-fpm-error.log
php_admin_value[memory_limit] (далее…)

В дополнение к статье по настройке почтового сервера решил написать как настроить на этой же связке SSL соединение.

Создаем директорию для хранения наших сертификатов

deathstar# mdkir -p /usr/local/etc/ssl/certs

Генерируем сертификат утилитой OpenSSL ( ставим из портов если не установлена )

deathstar# cd /usr/local/etc/ssl/certs && openssl req -new -x509 -days 3650 -nodes -out mail.pem -keyout mail.key

И заполняем данные о сертификате ( пишем что угодно, но Common Name должно иметь значение вашего домена, в моем случае это адреса smtp и imap — mail.deathstar.name )

Далее пересобираем exim с поддержкой SSL если это не было сделано раньше и редактируем конфиг Exim

deathstar# ee /usr/local/etc/exim/configure

Описываем порты, на которыхбудет висеть Exim после строки MY_IP ( 25 и 465 для SSL )

daemon_smtp_ports = 25:465

Ниже описываем порт, на котором будет SSL

# TLS
tls_on_connect_ports = 465
tls_advertise_hosts = *
tls_certificate = /usr/local/etc/ssl/certss/mail.pem
tls_privatekey = /usr/local/etc/ssl/certs/mail.key
#auth_advertise_hosts = ${if eq{$tls_cipher}{}{}{*}}

Здесь прописываются пути к сертификату, к ключу, и порт на котором будет SSL.
Для того чтобы запретить не SSL соединения расскоментируйте строку
auth_advertise_hosts
Сохраняем и перезапускаем Exim и пробуем почту на порту 465 с включенным SSL =)

Добавляем SSL в Dovecot

Перечисляем протоколы, которые будет обслуживать Dovecot:

protocols = imap pop3 imaps pop3s
….
Описываем сами протоколы, порты, на которых они будут висеть и пути к SSL сертификату и ключу
protocol imap {
listen=*:143
ssl_listen=*:993
ssl_cert_file=/usr/local/etc/ssl/certs/mail.pem
ssl_key_file=/usr/local/etc/ssl/certs/mail.key
}

protocol pop3 {
listen=*:110
ssl_listen=*:995
ssl_cert_file=/usr/local/etc/ssl/certs/mail.pem
ssl_key_file=/usr/local/etc/ssl/certs/mail.key
}

Включаем SSL, сменив

# SSL/TLS support: yes, no, required. (далее…)