Процесс доставки электронных писем от одного человека к другому через локальную сеть или Интернет включает в себя взаимодействие множества систем. Каждая из этих систем должна быть правильно настроена, чтобы выполнять свою работу. Оправитель использует почтовый агент пользователя (Mail User Agent, MUA) или клиент электронной почты, чтобы отправлять сообщения через один или несколько агентов передачи почты (Mail Transfer Agents, MTA), последний из которых передаст сообщение агенту доставки почты (Mail Delivery Agent, MDA) для доставки почты в почтовый ящик получателя, откуда оно может быть доставлено получателю с помощью его почтового клиента, обычно через сервер POP3 или IMAP.
В Ubuntu агент передачи почты (Mail Transfer Agent (MTA)) по умолчанию - Postfix. Он считается безопасным, быстрым и легким в администрировании. Он совместим с MTA sendmail. Данный раздел объяснит, как установить и настроить postfix. Так же будет описано, как настроить SMTP сервер с использованием безопасного соединения (для безопасной передачи почты).
Для установки postfix вместе с SMTP-AUTH и Transport Layer Security (TLS) запустите следующую команду:
sudo apt-get install postfix
Просто нажимайте enter когда установщик будет задавать вопросы, настройки будут описаны более подробно в следующем шаге.
Для настройки приложения postfix, выполните следующую команду:
sudo dpkg-reconfigure postfix
Будет запущен пользовательский интерфейс. На каждом экране выберите следующие значения:
- Ok
- Сайт в интернете
- NONE
- mail.example.com
- mail.example.com, localhost.localdomain, localhost
- No
- 127.0.0.0/8
- Yes
- 0
- +
- все
Замените mail.example.com именем хостав вашего почтового сервера
Следующие шаги настраивают postfix для использования SASL для SMTP AUTH. Вместо правки файла настроек напрямую, вы можете использовать команду postconf для настройки всех параметров postfix. Параметры настройки будут сохранены в файле /etc/postfix/main.cf
. Позже если вы пожелаете перенастроить определенный параметр, вы можете либо выполнить команду или вручную изменить файл.
-
Configure Postfix to do SMTP AUTH using SASL (saslauthd):
postconf -e 'smtpd_sasl_local_domain =' postconf -e 'smtpd_sasl_auth_enable = yes' postconf -e 'smtpd_sasl_security_options = noanonymous' postconf -e 'broken_sasl_auth_clients = yes' postconf -e 'smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination' postconf -e 'inet_interfaces = all'
Open the
/etc/postfix/sasl/smtpd.conf
file and add the following lines to end of the file:pwcheck_method: saslauthd mech_list: plain login
-
Next, configure the digital certificate for TLS. When asked questions, follow the instructions and answer appropriately.
openssl genrsa -des3 -rand /etc/hosts -out smtpd.key 1024 chmod 600 smtpd.key openssl req -new -key smtpd.key -out smtpd.csr openssl x509 -req -days 3650 -in smtpd.csr -signkey smtpd.key -out smtpd.crt openssl rsa -in smtpd.key -out smtpd.key.unencrypted mv -f smtpd.key.unencrypted smtpd.key openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 3650 sudo mv smtpd.key /etc/ssl/private/ sudo mv smtpd.crt /etc/ssl/certs/ sudo mv cakey.pem /etc/ssl/private/ sudo mv cacert.pem /etc/ssl/certs/
Вы можете получить цифровой сертификат в компании сертификации или создать сертификат самостоятельно. За подробностями обращайтесь к документу «Создание сертификата со своей подписью»
-
Настройте Postfix для выполнения TLS шифрования, как для входящей, так и для исходящей почты:
↵ postconf -e 'smtpd_tls_auth_only = no'↵ postconf -e 'smtp_use_tls = yes'↵ postconf -e 'smtpd_use_tls = yes'↵ postconf -e 'smtp_tls_note_starttls_offer = yes'↵ postconf -e 'smtpd_tls_key_file = /etc/ssl/private/smtpd.key'↵ postconf -e 'smtpd_tls_cert_file = /etc/ssl/certs/smtpd.crt'↵ postconf -e 'smtpd_tls_CAfile = /etc/ssl/certs/cacert.pem'↵ postconf -e 'smtpd_tls_loglevel = 1'↵ postconf -e 'smtpd_tls_received_header = yes'↵ postconf -e 'smtpd_tls_session_cache_timeout = 3600s'↵ postconf -e 'tls_random_source = dev:/dev/urandom'↵ postconf -e 'myhostname = mail.example.com'↵
SMTP AUTH для with postfix будет настроена после того, как вы запустите все команды. Собственный сертификат создан для TLS и настроен для использования с postfix.
Начальная настройка postfix завершена. Вы можете запустить демона postfix с помощью следующей команды:
sudo /etc/init.d/postfix start
Теперь демон postfix установлен, настроен и удачно запущен. Postfix поддерживает SMTP AUTH как определено в документе RFC2554, который основан на SASL. Однако, аутентификацию SASL все таки необходимо настроить до того, как вы сможете использовать SMTP.
The libsasl2, sasl2-bin and libsasl2-modules are necessary to enable SMTP AUTH using SASL. You can install these applications if you have not installed them already.
sudo apt-get install libsasl2 sasl2-bin
Некоторые изменения необходимы для корректной работы. Из-за того, тчто Postfix запускается в окружении с измененным корнем (с помощью chroot) в /var/spool/postfix
, необходимо сконфигурировать SASL для запуска в "поддельном" root-окружении (/var/run/saslauthd
становится /var/spool/postfix/var/run/saslauthd
):
mkdir -p /var/spool/postfix/var/run/saslauthd rm -rf /var/run/saslauthd
Для активации saslauthd отредактируйте файл /etc/default/saslauthd
, изменив или добавив в него переменную START. Для настройки запуска saslauthd в "поддельном" root-окружении, добавьте параметры PWDIR, PIDFILE и PARAMS. Напоследок, измените переменную MECHANISMS на подходящую для вашего случая. Файл должен выглядеть примерно вот так:
# This needs to be uncommented before saslauthd will be run # automatically START=yes PWDIR="/var/spool/postfix/var/run/saslauthd" PARAMS="-m ${PWDIR}" PIDFILE="${PWDIR}/saslauthd.pid" # You must specify the authentication mechanisms you wish to use. # This defaults to "pam" for PAM support, but may also include # "shadow" or "sasldb", like this: # MECHANISMS="pam shadow" MECHANISMS="pam"
Если хотите, вы можете использовать shadow вместо pam. Этот способ будет использовать передачу паролей хешированных с помощью MD5, что является полностью безопасным. Имя пользователя и пароль, необходимые для авторизации, будут такими же, как и у пользователей на системе, которую вы используете под сервер.
Теперь обновите "состояние" dpkg для /var/spool/portfix/var/run/saslauthd
. Инициализационный скрипт saslauthd воспользуется заданными настройками, чтобы создать недостающие каталоги с соответствующими правами доступа и владения:
dpkg-statoverride --force --update --add root sasl 755 /var/spool/postfix/var/run/saslauthd
Настройка SMTP AUTH завершена. Теперь самое время для проверочного запуска и тестирования установок. Вы можете запустить демон SASL с помощью следующей команды:
sudo /etc/init.d/saslauthd start
Чтобы проверить правильно ли работают SMTP-AUTH и TLS, выполните следующую команду:
telnet mail.example.com 25
После установки соединения с почтовым сервером postfix, введите:
ehlo mail.example.com
Все работает правильно, если в представленном выводе вы увидите в том числе и строки представленные ниже:
250-STARTTLS 250-AUTH LOGIN PLAIN 250-AUTH=LOGIN PLAIN 250 8BITMIME
Введите команду quit для завершения сеанса.
Exim4 is another Message Transfer Agent (MTA) developed at the University of Cambridge for use on Unix systems connected to the internet. Exim can be installed in place of sendmail, although the configuration of exim is quite different to that of sendmail.
Для установки exim4, выполните следующую команду:
sudo apt-get install exim4 exim4-base exim4-config
Для настройки exim4, выполните следующую команду:
sudo dpkg-reconfigure exim4-config
Отобразится пользовательский интерфейс. Он позволяет настроить многие параметры. Например, в exim4 файлы настроек разбиты на множество файлов. Если вы желаете иметь настройки в одном файле вы можете настроить это в пользовательском интерфейсе.
All the parameters you configure in the user interface are stored in /etc/exim4/update-exim4.conf.conf
file. If you wish to re-configure, either you re-run the configuration wizard or manually edit this file using your favourite editor. Once you configure, you can run the following command to generate the master configuration file:
sudo update-exim4.conf
The master configuration file, is generated and it is stored in /var/lib/exim4/config.autogenerated
.
Вы не должны, ни при каких обстоятельствах, редактировать вручную основной файл настроек /var/lib/exim4/config.autogenerated
. Он обновляется автоматически каждый раз, когда вы запускаете команду update-exim4.conf
You can run the following command to start exim4 daemon.
sudo /etc/init.d/exim4 start
TODO: This section should cover configuring SMTP AUTH with exim4.
Dovecot - это агент доставки почты, написанный с упором на безопасность. Он поддерживает основные форматы почтовых ящиков: mbox или Maildir. Этот раздел рассказывает о том, как настроить его в качестве сервера imap или pop3.
Для установки dovecot, выпоните следующую команду в командной строке:
sudo apt-get install dovecot-common dovecot-imapd dovecot-pop3d
Для настройки dovecot вы можете отредактировать файл /etc/dovecot/dovecot.conf
. Вы можете выбрать протокол, который будете использовать. Возможные варианты: pop3, pop3s (pop3 secure), imap и imaps (imap secure). Описание этих протоколов выходит за пределы данного руководства. Для дальнейшей информации посетите статьи в википедиа ulink url="http://en.wikipedia.org/wiki/POP3">POP3
IMAPS and POP3S are more secure that the simple IMAP and POP3 because they use SSL encryption to connect. Once you have chosen the protocol, amend the following line in the file /etc/dovecot/dovecot.conf
:
protocols = pop3 pop3s imap imaps
It enables the protocols when dovecot is started. Next, add the following line in the pop3 section of the file /etc/dovecot/dovecot.conf
:
pop3_uidl_format = %08Xu%08Xv
Next, choose the mailbox you use. Dovecot supports maildir and mbox formats. These are the most commonly used mailbox formats.
Выбрав тип почтового ящика, отредактируйте файл /etc/dovecot/dovecot.conf
и измените следующую линию:
default_mail_env = maildir:~/Maildir # (для maildir) или default_mail_env = mbox:~/mail:INBOX=/var/spool/mail/%u # (для mbox)
You should configure your Mail Transport Agent (MTA) to transfer the incoming mail to this type of mailbox if it is different from the one you have configured.
Once you have configured dovecot, start the dovecot daemon in order to test your setup:
sudo /etc/init.d/dovecot start
If you have enabled imap, or pop3, you can also try to log in with the commands telnet localhost pop3 or telnet localhost imap2. If you see something like the following, the installation has been successful:
bhuvan@rainbow:~$ telnet localhost pop3 Пытаемся 127.0.0.1... Соединился с localhost.localdomain. Клавиша возврата '^]'. +OK Dovecot готов.
Для настройки использования SSL в dovecot, вы можете отредактировать файл/etc/dovecot/dovecot.conf
, изменив следующие строки:
ssl_cert_file = /etc/ssl/certs/dovecot.pem ssl_key_file = /etc/ssl/private/dovecot.pem ssl_disable = no disable_plaintext_auth = no
Файлы cert и key создаются автоматически при установке dovecot. Пожалуйста, обратите внимание, что данные ключи не подписаны и их использование будет давать ошибки вида "bad signature" (плохая подпись) при подключении клиентов. Чтобы избежать этого, вы можете воспользоваться коммерческими сертификатами, или, что еще лучше, вы можете использовать свои собственные сертификаты SSL.
Для доступа к вашему почтовому серверу с другого компьютера вы должны настроить брандмауер на разрешение соединений по необходимым портам.
- IMAP - 143
- IMAPS - 993
- POP3 - 110
- POP3S - 995
Mailman - это программа с открытыми кодами для управления дискуссиями, ведущимися через электронную почту, и рассылками электронных новостных сообщений. Многие открытые списки рассылок (включая все на Ubuntu mailing lists) используют Mailman, в качестве программы управления почтовыми списками. Это мощное приложение, при этом его легко установить и поддерживать.
Mailman предоставляет веб-интерфейс для администраторов и пользователей. То есть, ему необходим сервер Апач (apache) с поддержкой mod_perl. Mailman использует внешний почтовый сервер для отправки и получения электронной почты. Он отлично взаимодействует со следующими почтовыми серверами:
- Postfix
- Exim
- Sendmail
- Qmail
Мы рассмотрим как установить mailman, веб-сервер apache и почтовый сервер Exim. Если вы хотите установить mailman для другого почтового сервера, пожалуйста, обратитесь к разделу ссылки.
Для описания установки apache2 смотрите «Установка».
To install Exim4 you run the following commands at a terminal prompt:
sudo apt-get install exim4 sudo apt-get install exim4-base sudo apt-get install exim4-config
Once exim4 is installed, the configuration files are stored in the /etc/exim4
directory. In Ubuntu, by default, the exim4 configuration files are split across different files. You can change this behavior by changing the following variable in the /etc/exim4/update-exim4.conf
file:
- dc_use_split_config='true'
Для инсталляции Mailman выполните следующую команду в строке терминала:
sudo apt-get install mailman
Она копирует файлы, необходимые для установки, в каталог /var/lib/mailman. Плюс, устанавливает скрипты CGI в каталог /usr/lib/cgi-bin/mailman. А также создает линукс пользователя list и линукс группу list. Этот пользователь будет владельцем процесса mailman.
Данный раздел подразумевает, что у вас уже установлены: mailman, apache2 и exim4. Теперь вам нужно только настроить их.
После установки apache2, добавьте следующие строки в файл /etc/apache2/apache2.conf
:
Alias /images/mailman/ "/usr/share/images/mailman/" Alias /pipermail/ "/var/lib/mailman/archives/public/"
Mailman использует apache2 для исполнения своих CGI-скриптов. CGI скрипты mailman-а установлены в каталоге /usr/lib/cgi-bin/mailman. Чтобы изменить это, вы можете отредактировать файл /etc/apache2/apache2.conf
.
После установки Exim4, сервер Exim может быть запущен из командной строки терминала при помощи:
sudo /etc/init.d/exim4 start
Для того, чтобы mailman работал с exim4, вам необходимо настроить exim4. Как замечено ранее, по умолчанию exim4 использует множество конфигурационных файлов различных типов. Для получения более подробной информации, обратитесь к веб-странице Exim. Для запуска mailman, нам нужно добавить новый файл настроек к следующим типам конфигураций:
- Основное
- Передача почты
- Маршрутизатор
Exim создает основной файл настроек, разбирая все эти настроечные мини-файлы. То есть порядок, в котором идут эти файлы настроек, очень важен.
Все настроечные файлы основного типа хранятся в каталоге /etc/exim4/conf.d/main/
. Создайте новый файл 04_exim4-config_mailman
и добавьте в него следующее:
# start # Home dir for your Mailman installation -- aka Mailman's prefix # directory. # On Ubuntu this should be "/var/lib/mailman" # This is normally the same as ~mailman MM_HOME=/var/lib/mailman # # User and group for Mailman, should match your --with-mail-gid # switch to Mailman's configure script. Value is normally "mailman" MM_UID=list MM_GID=list # # Domains that your lists are in - colon separated list # you may wish to add these into local_domains as well domainlist mm_domains=hostname.com # # -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= # # These values are derived from the ones above and should not need # editing unless you have munged your mailman installation # # The path of the Mailman mail wrapper script MM_WRAP=MM_HOME/mail/mailman # # The path of the list config file (used as a required file when # verifying list addresses) MM_LISTCHK=MM_HOME/lists/${lc::$local_part}/config.pck # end
Все настроечные файлы, принадлежащие к типу транспортировка, хранятся в каталоге /etc/exim4/conf.d/transport/
. Создайте новый файл 40_exim4-config_mailman
и добавьте в него следующее:
mailman_transport: driver = pipe command = MM_WRAP \ '${if def:local_part_suffix \ {${sg{$local_part_suffix}{-(\\w+)(\\+.*)?}{\$1}}} \ {post}}' \ $local_part current_directory = MM_HOME home_directory = MM_HOME user = MM_UID group = MM_GID
Все настроечные файлы, принадлежащие к типу роутер, хранятся в каталоге /etc/exim4/conf.d/router/
. Создайте новый файл 101_exim4-config_mailman
и добавьте в него следующее:
mailman_router driver = accept require_files = MM_HOME/lists/$local_part/config.pck local_part_suffix_optional local_part_suffix = -bounces : -bounces+* : \ -confirm+* : -join : -leave : \ -owner : -request : -admin transport = mailman_transport
Порядок основных и транспортных файлов настроек не важен. Однако, порядок файлов настроек роутера должен быть сохранен. Конкретно этот файл по порядку должен быть до файла 200_exim4-config_primary. Оба этих файла содержат одинаковый тип информации. Первый из них будет определен как предшественник. Для получкения более полной информации, обратитесь к секции ссылки.
Once mailman is installed, you can run it using the following command:
sudo /etc/init.d/mailman start
Once mailman is installed, you should create the default mailing list. Run the following command to create the mailing list:
sudo /usr/sbin/newlist mailman
Enter the email address of the person running the list: bhuvan at ubuntu.com
Initial mailman password:
To finish creating your mailing list, you must edit your /etc/aliases
(or
equivalent) file by adding the following lines, and possibly running the
`newaliases' program:
mailman: "|/var/lib/mailman/mail/mailman post mailman"
mailman-admin: "|/var/lib/mailman/mail/mailman admin mailman"
mailman-bounces: "|/var/lib/mailman/mail/mailman bounces mailman"
mailman-confirm: "|/var/lib/mailman/mail/mailman confirm mailman"
mailman-join: "|/var/lib/mailman/mail/mailman join mailman"
mailman-leave: "|/var/lib/mailman/mail/mailman leave mailman"
mailman-owner: "|/var/lib/mailman/mail/mailman owner mailman"
mailman-request: "|/var/lib/mailman/mail/mailman request mailman"
mailman-subscribe: "|/var/lib/mailman/mail/mailman subscribe mailman"
mailman-unsubscribe: "|/var/lib/mailman/mail/mailman unsubscribe mailman"
Hit enter to notify mailman owner...
#
We have configured exim to recognize all emails from mailman. So, it is not mandatory to make any new entries in /etc/aliases
. If you have made any changes to the configuration files, please ensure that you restart those services before continuing to next section.
We assume you have a default installation. The mailman cgi scripts are still in the /usr/lib/cgi-bin/mailman/ directory. Mailman provides a web based administration facility. To access this page, point your browser to the following url:
hostname/cgi-bin/mailman/admin
The default mailing list, mailman, will appear in this screen. If you click the mailing list name, it will ask for your authentication password. If you enter the correct password, you will be able to change administrative settings of this mailing list. You can create a new mailing list using the command line utility (/usr/sbin/newlist). Alternatively, you can create a new mailing list using the web interface.
Mailman предоставляет пользователю веб-интерфейс. Для доступа к этой странице, перейдите в браузере на следующий url:
hostname/cgi-bin/mailman/listinfo
На этом экране появится созданный при установке список рассылки "mailman". Если щёлкнуть на на названии списка рассылки, появится форма регистрации. Для подписки на этот список можно ввести Ваш почтовый адрес, имя (не обязательно) и пароль. После этого Вам будет отправленно электронной почтой приглашение. Чтобы подписаться на список рассылки, следуйте инструкциям, содержащимся в этом приглашении.