В этом руководстве я покажу вам, как установить и настроить почтовый сервер на Ubuntu 24.04, поскольку крупные и средние компании могут получить большую выгоду от наличия частного почтового сервера. Используя почтовый сервер, становится возможным внимательно отслеживать весь трафик электронной почты. Кроме того, гибкость настройки параметров позволяет создать понятную и организованную службу электронной почты. Хотя существуют различные варианты настройки почтового сервера Linux, мы сосредоточимся конкретно на Postfix и Dovecot.
# - данные команды должны выполняться с правами root либо непосредственно от имени пользователя root, либо с помощью команды sudo.
$ - данные команды должны выполняться от имени обычного пользователя
Мы предполагаем, что у вас установлена новая версия Ubuntu 24.04. Нам необходимо обновить системные пакеты до последних доступных версий. Для этого выполните следующие команды:
Имя хоста — это метка, используемая для идентификации машины и которая поможет вам отличить ваши серверы от других. Вам потребуется создать запись DNS A для вашего имени хоста, поскольку имя хоста сервера должно быть полным доменным именем (полное доменное имя). Например, в этом руководстве мы будем использовать mail.yourdomain.com в качестве имени хоста сервера. После этого выполните следующую команду:
Далее создадим базу данных. По умолчанию вы можете войти в оболочку MySQL без пароля.
1
$ sudo mysql
После входа в систему давайте выполним эти команды.
1
2
3
4
MariaDB [(none)]> CREATE DATABASE postfixadmin;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON postfixadmin.* TO 'postfixadmin'@'localhost' IDENTIFIED BY 'Uy0rg2qVcf';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> \q
Установите почтовый сервер Postfix из репозитория Ubuntu по умолчанию с помощью этой команды:
1
$ sudo apt install postfix-mysql
Данные, относящиеся к почтовому серверу, будут храниться в базе данных MySQL. После завершения установки пакета postfix-mysql нам необходимо создать несколько файлов конфигурации для связи Postfix с базой данных.
1
$ sudo mkdir -p /etc/postfix/sql
Сопоставьте пароль, имя базы данных и пользователя базы данных с теми, которые вы создали на предыдущем шаге.
1
$ sudo vim /etc/postfix/sql/mysql_virtual_alias_maps.cf
1
2
3
4
5
user = postfixadmin
password = Uy0rg2qVcf
hosts = localhost
dbname = postfixadmin
query = SELECT goto FROM alias WHERE address='%s' AND active = '1'
1
$ sudo vim /etc/postfix/sql/mysql_virtual_domains_maps.cf
1
2
3
4
5
user = postfixadmin
password = Uy0rg2qVcf
hosts = localhost
dbname = postfixadmin
query = SELECT domain FROM domain WHERE domain='%s' AND active = '1'
1
$ sudo vim /etc/postfix/sql/mysql_virtual_mailbox_maps.cf
1
2
3
4
5
user = postfixadmin
password = Uy0rg2qVcf
hosts = localhost
dbname = postfixadmin
query = SELECT maildir FROM mailbox WHERE username='%s' AND active = '1'
1
$ sudo vim /etc/postfix/sql/mysql_virtual_alias_domain_maps.cf
1
2
3
4
5
user = postfixadmin
password = Uy0rg2qVcf
hosts = localhost
dbname = postfixadmin
query = SELECT goto FROM alias,alias_domain WHERE alias_domain.alias_domain = '%d' and alias.address = CONCAT('%u', '@', alias_domain.target_domain) AND alias.active = 1 AND alias_domain.active='1'
1
$ sudo vim /etc/postfix/sql/mysql_virtual_alias_domain_mailbox_maps.cf
1
2
3
4
5
user = postfixadmin
password = Uy0rg2qVcf
hosts = localhost
dbname = postfixadmin
query = SELECT maildir FROM mailbox,alias_domain WHERE alias_domain.alias_domain = '%d' and mailbox.username = CONCAT('%u', '@', alias_domain.target_domain) AND mailbox.active = 1 AND alias_domain.active='1'
1
$ sudo vim /etc/postfix/sql/mysql_virtual_mailbox_limit_maps.cf
1
2
3
4
5
user = postfixadmin
password = Uy0rg2qVcf
hosts = localhost
dbname = postfixadmin
query = SELECT quota FROM mailbox WHERE username='%s' AND active = '1'
1
$ sudo vim /etc/postfix/sql/mysql_virtual_alias_domain_catchall_maps.cf
1
2
3
4
5
user = postfixadmin
password = Uy0rg2qVcf
hosts = localhost
dbname = postfixadmin
query = SELECT goto FROM alias,alias_domain WHERE alias_domain.alias_domain = '%d' and alias.address = CONCAT('@', alias_domain.target_domain) AND alias.active = 1 AND alias_domain.active='1'
Теперь мы можем запустить приведенные ниже команды, чтобы отредактировать файл main.cf в Postfix.
По-прежнему в файл 10-auth.conf мы включаем auth-sql.conf.ext. Итак, давайте отредактируем файл, чтобы он выполнился.
1
$ sudo vim /etc/dovecot/dovecot-sql.conf.ext
Вставьте в файл следующие строки:
1
2
3
4
5
driver = mysql
connect = host=localhost dbname=postfixadmin user=postfixadmin password=Uy0rg2qVcf
default_pass_scheme = BLF-CRYPT
password_query = SELECT username as user, password, '/var/vmail/%d/%n' as userdb_home, 'maildir:/var/vmail/%d/%n' as userdb_mail, 150 as userdb_uid, 8 as userdb_gid FROM mailbox WHERE username ='%u' AND active ='1'user_query = SELECT '/var/vmail/%d/%u' as home, 'maildir:/var/vmail/%d/%u' as mail, 150 AS uid, 8 AS gid, concat('dirsize:storage=', quota) AS quota FROM mailbox WHERE username ='%u' AND active ='1'
Строки выше содержат учетные данные базы данных. Убедитесь, что они соответствуют тем, которые вы создали на предыдущем шаге. Сохраните файл и выйдите
Затем откройте файл /etc/dovecot/conf.d/10-mail.conf и измените следующие значения:
1
$ sudo vim /etc/dovecot/conf.d/10-mail.conf
1
2
3
4
5
6
mail_location = maildir:/var/vmail/%d/%n
mail_uid = vmail
mail_gid = mail
mail_privileged_group = mail
first_valid_uid =150last_valid_uid =150
Сохраните файл, затем выйдите. Теперь приступим к редактированию других файлов конфигурации dovecot.
1
$ sudo vim /etc/dovecot/conf.d/10-master.conf
В этом файле необходимо внести несколько изменений.
Найдите раздел службы lmtp и измените его на следующее:
1
2
3
4
5
6
7
service lmtp {
unix_listener /var/spool/postfix/private/lmtp {
mode =0600 user = postfix
group = postfix
}
}
Найдите раздел аутентификации службы и измените его на:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
service auth {
unix_listener /var/spool/postfix/private/auth {
mode =0666user = postfix
group = postfix
}
unix_listener auth-userdb {
mode =0600user = vmail
}
user = dovecot
}
Измените раздел службы auth-worker на следующее:
1
2
3
service auth-worker {
user = vmail
}
Не забудьте сохранить файл и затем выйти. И вот пришло время исправить разрешения.
$ sudo vim /etc/apache2/conf-enabled/postfixadmin.conf
Вставьте эти строки в этот файл.
1
2
3
4
5
6
7
Alias /postfixadmin /opt/postfixadmin/public
<Directory "/opt/postfixadmin/public">
AllowOverride All
Options +FollowSymLinks
Require all granted
</Directory>
Перейдите по адресу http://ваш_ip_адрес/postfixadmin/setup.php и создайте пароль для установки. Если у вас уже есть веб-сайт на вашем сервере, вы также можете получить доступ к postfixadmin по адресу http://yourdomain.com/postfixadmin/setup.php.
Дважды введите пароль установки и нажмите кнопку «Создать хэш setup_password».
Вы увидите строку, содержащую пароль установки, и вам нужно скопировать его в config.local.php, примерно так:
После добавления строки в файл config.local.php вы можете обновить страницу, чтобы войти в систему и создать суперадминистратора.
Прокрутите вниз, чтобы создать учетную запись суперадминистратора. Пароль настройки, который вы создали ранее, необходим для создания суперадминистратора. В поле администратора необходимо заполнить адрес электронной почты.
Теперь, когда суперадминистратор создан, вы можете использовать его учетные данные для входа в http://192.168.24.6/postfixadmin/login.php и добавления доменов, адресов электронной почты и т.д.
На этом этапе ваш сервер может отправлять электронные письма. Чтобы получать электронные письма, убедитесь, что запись DNS MX вашего домена указывает на этот сервер. Вы можете использовать свой любимый почтовый клиент для отправки электронных писем или вместо этого использовать веб-почту. Давайте сейчас установим Roundcube.
1
$ sudo apt install roundcube
Далее давайте отредактируем файл конфигурации roundcube по адресу /etc/apache2/conf-enabled/roundcube.conf.
1
$ sudo vim /etc/apache2/conf-enabled/roundcube.conf
Раскомментируйте эту строку
1
# Alias /roundcube /var/lib/roundcube/public_html
И это должно выглядеть так:
1
Alias /roundcube /var/lib/roundcube/public_html
Сохраните файл, выйдите и перезапустите Apache.
1
$ sudo systemctl restart apache2
Следующий шаг — отредактировать еще один файл конфигурации Rouncube, на этот раз /etc/roundcube/config.inc.php.
Вы успешно установили почтовый сервер на Ubuntu 24.04.
Теперь вы можете перейти к своему http://ваш_ip_адрес/roundcube и войти в систему, используя учетные данные, созданные на предыдущем шаге. После входа в систему вы можете попробовать отправить электронное письмо.
Если вам понравился этот пост о том, как установить почтовый сервер на Ubuntu 24.04. Вы также можете поделиться этим постом с друзьями в социальных сетях, кому эта статья может быть интересна или просто оставьте комментарий ниже. Спасибо.