8. Настройка почтового сервера

Установка почтового сервиса в систему

Почтовый сервис mail требует, чтобы в системе были установлены сервисы LDAP и Unix, поэтому если они еще не были установлены установите их командой:

cl-setup ldap
cl-setup unix

Установка почтового сервиса производится командой:

# установка сервиса с параметрами по умолчанию
cl-setup mail

Для указания имени почтового хоста, отличного от используемого по умолчанию, служит параметр "--host":

# mymail.mydomain.com почтовый хост (не указывайте одно короткое имя, например: mymail)
cl-setup --host mymail.mydomain.com mail

Использование протокола pop3 и/или imap управляется через параметр "--type":

# устанавливает сервис с поддержкой двух протоколов pop3 и imap с шифрованием TLS
cl-setup --type imap,pop3 mail
# устанавливает сервис с поддержкой только pop3 и шифрованием TLS
cl-setup --type pop3 mail

Шифрование (или отмена его использования) указывается параметром "--crypt":

# будет использовано шифрование TLS, и по умолчанию будет использоваться только IMAP
cl-setup --crypt tls mail 
# без шифрования, по умолчанию используется только IMAP
cl-setup --crypt none mail

Если необходимо указать используемые протоколы и шифрование, выполним команду с параметрами следующего вида:

# без шифрования, поддержка imap и pop3
cl-setup --crypt none --type imap,pop3 mail

После выполнения команды cl-setup, с требуемым набором параметров - почтовый сервис конфигурируется и запускается. Результат можно проверить, посмотрев открытые порты:

> netstat -tln
...
tcp        0      0 *:imaps                 *:*                     LISTEN     
tcp        0      0 *:pop3s                 *:*                     LISTEN     
tcp        0      0 *:smtp                  *:*                     LISTEN     
...

Для предотвращения спама для системных почтовых пользователей /etc/mail/aliases не создается почтовая директория.

Для того чтобы получать письма посланные на адреса указанные в /etc/mail/aliases выполните следующие команды:

mkdir /var/calculate/server-data/mail/nobody
chown nobody:nobody /var/calculate/server-data/mail/nobody
chmod 0700 /var/calculate/server-data/mail/nobody

Письма для системных почтовых пользователей будут находится в /var/calculate/server-data/mail/nobody

Учетные записи

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

Управление учетными записями

Добавление учетных записей

Добавление учетной записи пользователя почтового сервиса производится командой cl-useradd:

cl-useradd -p -e <почтовый псевдоним один или несколько через запятую> <учетная запись> mail

# добавляем пользователя guest с псевдонимом для почты guestmail@mymail.mydomain.com
cl-useradd -p -e guestmail@mymail.mydomain.com guest mail

Смена пароля

Для смены пароля учетной записи почтового сервиса используется команда cl-passwd:

cl-passwd guest mail

Удаление учетных записей

Удаление учетной записи пользователя почтового сервиса производится командой cl-userdel

cl-userdel guest mail

Почтовые группы

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

Управление почтовыми группами

Добавление почтовой группы

Добавление почтовой группы производится командой cl-groupadd

# добавить почтовую группу guestgroup с альтернативным почтовым адресом gg@mydomain.com
cl-groupadd -e gg@mydomain.com guestgroup mail

Удаление почтовой группы

Удаление почтовой группы производится командой cl-groupdel:

# удалить почтовую группу guestgroup
cl-groupdel guestgroup mail

Добавление и удаление почтовых учетных записей в группу

Добавление и удаление учетных записей производится двумя способами:
  • с использованием команды cl-usermod
    # добавить пользователя guest в группы guesttest и guestgroup
    cl-usermod -a guesttest,guestgroup guest mail
    
    # заменить пользователю guest группы на guesttest
    cl-usermod -G guesttest guest mail
    
  • с использованием команды cl-groupmod
    # удалить пользователей guest1 и guest2 из группы guesttest
    cl-groupmod -d guest1,guest2 guesttest mail
    
    # добавить пользователей guest1 и guest2 в группу guesttest
    cl-groupmod -a guest1,guest2 guesttest mail
    

Проверка работы сервера

Проверить работоспособность сервера можно при помощи программы telnet, при этом сервер должен быть сконфигурирован без шифрования ("--crypt none"). В конечном рабочем варианте, для безопасности, шифрование следует оставить включенным.
  1. устанавливаем сервис
    cl-setup --type imap,pop3 --crypt none mail
    
  2. добавляем пользователя guest
    cl-useradd -p -e guest@mymail.mydomain.org guest mail
    
  3. вводим пароль
  4. запускаем telnet
    > telnet
    
  5. подключаемся к smtp
    > open localhost 25
    Trying 127.0.0.1...
    Connected to mymail.mydomain.org.
    Escape character is '^]'.
    220 mymail.mydomain.org ESMTP
    > EHLO "mymail" 
    250-mymail.mydomain.org
    250-PIPELINING
    250-SIZE 100000000
    250-ETRN
    250-ENHANCEDSTATUSCODES
    250-8BITMIME
    250 DSN
    > MAIL FROM:<noname@mailer.org>
    250 2.1.0 Ok
    > RCPT TO:<guest@mymail.mydomain.org>
    250 2.1.5 Ok
    > DATA
    354 End data with <CR><LF>.<CR><LF>
    > Hello
    > .
    250 2.0.0 Ok: queued as D42932B91
    > QUIT
    221 2.0.0 Bye
    Connection closed by foreign host.
    
  6. теперь запускаем telnet и подключаемся по pop3
    > telnet
    > open localhost 110
    Trying 127.0.0.1...
    Connected to mymail.mydomain.org.
    Escape character is '^]'.
    +OK Dovecot ready.
    > USER guest
    +OK
    > PASS 111
    +OK "Аутентифицироваться удалось" 
    > LIST
    +OK 1 messages:  "На сервере есть одно сообщение" 
    1 529
    .
    QUIT
    +OK Logging out.
    Connection closed by foreign host.
    
Спасибо!