Включение SSL для PostfixAdmin

postfixadminВключение SSL для PostfixAdmin может быть полезно, если вы хотите выставить админку наружу. Выполнять все задачи администрирования, передавая данные в открытом виде, не очень хорошая идея. Это может быть оправдано лишь в том случае, если администрирование осуществляется исключительно из локальной сети, а доступа из интернета к PostfixAdmin нет. К сожалению, один мой почтовый сервер имел только внешний адрес, никакого NAT’а не было и пришлось подумать о некоторой защищенности, о чем я и расскажу в этой статье.

Поскольку PostfixAdmin является лишь дополнением для MTA Postfix, он ожидаемо находится в иерархии статей по настройке Postfix.


Найти больше информации о Postfix вы можете в основной статье по его настройке – Настройка Postfix.


Включение SSL для PostfixAdmin

Первым делом необходимо создать сертификат и уже потом на его основе открывать доступ по 443 порту.

Создание сертификата

Если не указывать полные пути к файлам, то все будет происходить в текущем каталоге. Узнать где вы сейчас находитесь можно командой:

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

nodes как раз говорит о том, что частный ключ сертификата не будет зашифрован. Кстати, в документации 1 apache2 очень подробно написано про сертификаты и самые распространенные действия над ними, советую обязательно почитать.

Из текущего расположения копируем сертификаты в традиционное хранилище

Назначаем необходимые права, как я и говорил выше. Сразу проверяем кто имеет доступ к файлу.

Права только у root’а, отлично. Подчищаем все в текущем каталоге:

Сертификат и его частный ключ готовы, пора подружить с ним apache2.

Настройка Apache

Подключаем модуль SSL:

Собственно сама команда является скриптом, подключающим определенные модули (в моем случае модуль SSL) к конфигурации Apache2, создавая символьные ссылки в каталоге /etc/apache2/mods-enabled. Впрочем это вы и так можете узнать из мануала (команда man a2enmod).

Активируем виртуальный сайт:

Теперь пришло время внести в конфигурацию SSL некоторые изменения:

Необходимо убедиться, что параметр SSLEngine определен и имеет значение on, а также задать используемые версии SSL/TLS. Поскольку SSL версий 2 и 3 уже устарел, лучше исключить их из использования, оставив только TLS. Итого, необходимо, чтобы в файле присутствовали следующие строчки:

По умолчанию all = +SSLv3 +TLSv1 +TLSv1.1 +TLSv1.2, но, как я и говорил выше, я хочу отключить SSLv3. Подробнее читайте в официальной документации 2.

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

Теперь пришло время позаботиться об автоматическом перенаправлении клиентов на защищенный порт. Для этого активируем модуль alias:

Отредактируем файл:

Добавив в описание VirtualHost следующую директиву:

Я указал простой локальный адрес, поскольку пока тестирую сервер внутри сети. Когда я решу выставить админку наружу (если вообще решу), нужно будет установить в настройках публичный адрес сервера или же его доменное имя, которое у вас в любом случае должно быть, ведь вы настраиваете почтовый сервер.

Ну а теперь можно перезапускать apache2:

Проблем с перезапуском не возникло, можно проверить как все работает, вбив в адресной строке http://192.168.1.120/postfixadmin. После этого вас должно перенаправить на https-страницу и сообщить о ненадежном сертификате (все правильно, ведь мы используем самозаверенный сертификат):

Включение SSL для PostfixAdmin 02

Настройка на этом завершена.

Яндекс.Метрика