Защита Roundcube в Ubuntu 16.04

Поскольку электронная почта является важной частью общения в современном мире, на всех этапах почтового конвейера важно помнить о безопасности. Roundcube – это клиент электронной почты с мощными функциями безопасности и с целым репозиторием плагинов для расширения настроек. В этом мануале вы узнаете, как обеспечить безопасность базовой установки Roundcube.

Читайте также: Почтовый веб-клиент на Roundcube в Ubuntu 16.04

Если вы использовали SSL при настройке параметров IMAP и STMP в начальной настройке Roundcube, то соединение Roundcube с почтовым сервером уже защищено. Тем не менее, подключение к Roundcube из браузера все еще нуждается в защите, и ваши электронные письма отправляются в виде простого текста. Ваша учетная запись Roundcube также защищена только паролем.

Данный мануал поможет:

  • Добавить SSL на Apache с помощью сертификата Let’s Encrypt.
  • Настроить двухфакторную аутентификацию для аккаунта Roundcube с помощью плагина.
  • Настроить GPG для подписи и шифрования почты Roundcube.

Требования

Читайте также:

1: Настройка Roundcube для поддержки SSL

Если вы сейчас посетите свою установку Roundcube, используя домен своего сервера в браузере, вы подключитесь по HTTP вместо HTTPS. Чтобы полностью защитить всю цепочку обмена данными от браузера до почтового сервера, нужно настроить Roundcube для поддержки SSL/TLS.

Простой способ сделать это – использовать бесплатные SSL-сертификаты от Let’s Encrypt. Roundcube настроен на стеке LAMP, поэтому вы можете защитить Apache с помощью Let’s Encrypt на Ubuntu 16.04 по этому пошаговому мануалу. Вот его краткое содержание.

Сначала устанавливаете клиент Let’s Encrypt:

sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update
sudo apt-get install python-certbot-apache

Затем нужно запросить SSL-сертификат и подтвердить автоматическое обновление сертификатов. Вместо example.com укажите свой домен; чтобы добавить поддомены, используйте флаг –d:

sudo certbot --apache -d example.com
sudo certbot renew --dry-run

Во время интерактивной настройки (после ввода sudo certbot —apache -d example.com) вам будет предложено выбрать базовую или безопасную настройку, обязательно выберите безопасную. Это перенаправит весь HTTP-трафик на HTTPS.

Теперь у вас есть безопасное подключение с компьютера к установке Roundcube, что, в свою очередь, защищает соединение с вашим почтовым сервером IMAP/SMTP. Есть еще несколько вещей, которые можно сделать для повышения безопасности сообщений электронной почты, но для этого нужны плагины.

2: Установка плагина Roundcube для двухфакторной аутентификации

Проект Roundcube работает над графическим интерфейсом для плагинов, но на данный момент все плагины устанавливаются через командную строку. Есть два способа сделать это:

  • Ручная установка. Для этого нужно загрузить плагин (обычно это либо .zip файл, либо пакет из репозитория Git), а затем изменить настройки Roundcube в файле /var/www/roundcube/config/config.inc.ph.
  • Полуавтоматическая установка. Менеджер пакетов PHP, Composer, устанавливает плагины, которые вы указываете в файле конфигурации.

Некоторые плагины рекомендуют использовать тот или иной метод установки. Плагин 2FA можно установить любым из методов, поэтому в мануале можно использовать полуавтоматическую установку – это проще.

Composer управляется файлом composer.json, хранящимся в $RC_HOME/composer.json. Чтобы включить Composer, создайте этот файл конфигурации. Roundcube поставляется с базовым конфигурационным файломcomposer.json-dist, который можно скопировать.

cd /var/www/roundcube
sudo cp composer.json-dist composer.json

В этом файле по умолчанию уже указано несколько основных плагинов. Запустите Composer, чтобы установить их и завершить начальную настройку. Убедитесь, что вы запускаете Composer из каталога /var/www/roundcube.

sudo composer install

Чтобы добавить плагин 2FA, внесите его в файл composer.json.

Строка должна иметь такой синтаксис:

organization/plugin_name": "version_or_branch"

Чтобы добавить плагин 2FA, нужно вставить в файл такую строку:

"alexandregz/twofactor_gauthenticator": "dev-master"

Откройте файл:

sudo nano /var/www/roundcube/composer.json

Найдите требуемый блок, который начинается с «require»: {. Каждая строка между фигурными скобками ({}) определяет плагин. Все строки в блоке должны заканчиваться запятой, за исключением последней записи.

Добавьте строку плагина 2FA в конец блока и не забудьте добавить запятую в предыдущую строку.

. . .
"require": {
"php": ">=5.4.0",
"pear/pear-core-minimal": "~1.10.1",
"pear/net_socket": "~1.2.1",
"pear/auth_sasl": "~1.1.0",
"pear/net_idna2": "~0.2.0",
"pear/mail_mime": "~1.10.0",
"pear/net_smtp": "~1.7.1",
"pear/crypt_gpg": "~1.6.2",
"pear/net_sieve": "~1.4.0",
"roundcube/plugin-installer": "~0.1.6",
"endroid/qr-code": "~1.6.5",
"alexandregz/twofactor_gauthenticator": "dev-master"
},
. . .

Сохраните и закройте файл. Затем обновите данные Composer, чтобы установить новый плагин:

sudo composer update

Когда Composer спросит, хотите ли вы включить плагин, введите Y, чтобы продолжить. После того, как он запустится, выйдите из Roundcube и войдите снова, чтобы включить плагин.

Теперь, когда плагин установлен, можно использовать его для настройки 2FA с помощью графического интерфейса Roundcube.

3: Включение 2FA

Чтобы начать работу, войдите в Roundcube, используя IP-адрес сервера или домен в браузере. Нажмите на кнопку Settings в правом углу, затем выберите 2-Factor Authentication в левом боковом меню.

В этих настройках поставьте галочку в Activate, а затем кликните Create secret.

После этого кликните Show recovery codes и скопируйте четыре кода восстановления в безопасное место. Эти коды используются в том случае, если вы не можете сгенерировать токен (к примеру, если вы потеряли телефон).

Нажмите Save.

Это включит 2FA, но после этого нужно добавить секретный ключ в TOTP-совместимое приложение типа Google Authenticator. Кликните кнопку Show QR, которая появилась после сохранения секретного ключа и сканирования кода вашим приложением. Если скан не работает, вы можете ввести код вручную.

Когда приложение приложение сгенерирует коды, убедитесь, что код работает; введите код в поле рядом с кнопкой Check code, затем нажмите эту кнопку. Если он сработает, вы увидите окно Code OK, тогда можете нажать кнопку ОК внизу, чтобы закрыть это окно. Если возникнет проблема, попробуйте повторно добавить секретный ключ в свое приложение.

4: Настройка шифрования GPG

Плагин Enigma добавляет функции просмотра и отправки подписанных и зашифрованных писем. Если вы выполнили предыдущий мануал по установке Roundcube, плагин Enigma уже есть в вашей установке. Если нет, вы можете повторить процедуру, которую использовали для установки плагина 2FA, чтобы добавить плагин Enigma.

Для начала нужно включить некоторые параметры шифрования по умолчанию. Войдите в Roundcube и нажмите кнопку Settings в правом верхнем углу. Затем нажмите Preferences, а затем Encryption в списке Section.

В списке Main Options представлены 7 параметров шифрования. Включение всех 7 обеспечит максимальную безопасность, но это повлияет на удобство использования.

Ниже перечислены все опции в меню Main Options и наши рекомендации для каждой из них, но при выборе параметров вы должны руководствоваться в первую очередь потребностями вашего сервера.

  • Enable message encryption and signing: очень нужная опция. Она позволяет подписывать и шифровать сообщения.
  • Enable message signatures verification: рекомендуется включить эту опцию. Если вам отправят подписанное письмо, Roundcube попробует подтвердить отправителя.
  • Enable message decryption: рекомендуется включить эту опцию. Если кто-то отправит вам зашифрованное письмо, этот параметр позволит Roundcube использовать ключи GPG для его расшифровки.
  • Sign all messages by default: опционально. Подписывает все отправленные вами электронные письма, даже если сервер получателя не поддерживает GPG. Получатель без поддержки GPG увидит скопление символов в конце письма. Вы можете переключать этот параметр при составлении письма.
  • Encrypt all messages by default: опционально. Шифрует каждое отправленное электронное письмо, если у вас есть открытый ключ получателя. Вы можете переключать этот параметр при составлении письма.
  • Attach my public PGP key by default: опционально. Добавляет открытый ключ GPG в качестве вложения в каждое отправленное вами электронное письмо. Если получатель поддерживает GPG, почтовый клиент увидит ключ и установит его, чтобы затем отправить вам зашифрованное сообщение.
  • Keep private key passwords for: определяет, как долго Roundcube помнит пароль, который вы вводите при шифровании/дешифровке сообщений (чтобы не приходилось вводить его каждый раз).

Выбрав параметры, нажмите Save. После этого кликните Identities в столбце Settings.

По умолчанию используется один идентификатор с адресом вашей электронной почты. Нажмите на адрес электронной почты и заполните поле Display Name. Вы можете по желанию заполнить другие поля, например Organization. Когда вы закончите, нажмите кнопку Save.

В последней части конфигурации создается ключ. Нажмите PGP Keys в левой панели навигации.

Если у вас уже есть ключ GPG, вы можете нажать Import в верхнем правом углу и импортировать закрытый ключ, а затем снова кликнуть Import, чтобы импортировать открытый ключ.

Если у вас нет ключа GPG или вы хотите создать новый, нажмите плюс (+) внизу столбца PGP Keys. Выберите идентификатор, для которого нужно создать ключ, а затем выберите сложность ключа (чем больше размер ключа, тем труднее взломать шифрование, но тем медленнее он будет шифровать данные). Наконец, выберите надежный пароль и нажмите Save.

Важно! Существует баг, который мешает создавать новые ключи в Roundcube при использовании Chrome. Если вы используете браузер Chrome, временно перейдите в другой браузер, чтобы создать новый ключ.

Когда вы получаете подтвержденное подписанное письмо, Roundcube отображает зеленое уведомление Verified signature from.

Когда вы получаете и расшифровываете зашифрованное письмо, Roundcube отображает сообщение Message decrypted.

Чтобы использовать шифрование GPG в своих сообщениях, создайте новое электронное письмо, кликнув Mail в верхнем левом углу, а затем Compose. Нажмите Encryption, чтобы просмотреть доступные параметры шифрования. Они зависят от того, что вы выбрали ранее в настройках шифрования. Если вы следовали нашим рекомендациям, вы должны увидеть Digitally sign this message, Encrypt this message и Attach my public key. Отправляя электронное письмо, проверьте параметры шифрования.

Заключение

Добавив SSL, двухфакторную аутентификацию и шифрование GPG, вы значительно повысили безопасность вашей почты. Теперь вы можете ознакомиться с репозиторием плагинов Roundcube.

Tags: , ,