Библиотека сайта rus-linux.net
Установка полнофункционального почтового сервера Postfix с Webmail в Debian 9
Оригинал: Install a Complete Mail Server with Postfix and Webmail in Debian 9
Автор: Matei Cezar
Дата публикации: 12 октября 2017 года
Перевод: А. Кривошей
Дата перевода: ноябрь 2017 г.
Из этого руководства вы узнаете, как установить и настроить полнофункциональный почтовый сервер Postfix в Debian 9. Здесь также описывается, как настроить почтовые ящики учетных записей с помощью Dovecot для получения и создания писем по протоколу IMAP. Для работы с почтой пользователи будут использовать веб-интерфейс Rainloop Webmail.
Требования
- минимальная инсталляция Debian 9
- статический IP-адрес, настроенный для сетевого интерфейса
- локальное или зарегистрированное общедоступное доменное имя.
В этом руководстве мы будем использовать учетную запись частного домена для настройки почтового сервера, сконфигурированного только с помощью файла /etc/hosts, без какого-либо DNS-сервера, участвующего в обработке разрешений DNS.
Этап 1: Предварительная настройка почтового сервера Postfix на Debian
1. На первом этапе войдите в систему с правами root и убедитесь, что ваша система Debian обновлена до последний версий пакетов установленных программ, а также установлены все исправления безопасности с помощью следующей команды:
# apt-get update # apt-get upgrade
2. На следующем этапе установите пакеты, которые будут использоваться для администрирования системы:
# apt-get install curl net-tools bash-completion wget lsof nano
3. Затем откройте файл /etc/host.conf для редактирования в своем любимом текстовом редакторе и добавьте приведенную ниже строку в начале файла, чтобы разрешить DNS сначала читать файл hosts.
order hosts,bind multi on
4. Затем задайте полное доменное имя вашего компьютера (FQDN) и добавьте свое доменное имя, а FQDN вашей системы, в файл /etc/hosts. Используйте IP-адрес вашей системы для разрешения имени домена и FQDN, как показано ниже на скриншоте.
Замените IP-адрес и домен. Затем перезагрузите компьютер, чтобы использовалось правильное имя хоста.
# hostnamectl set-hostname mail.tecmint.com # echo "192.168.0.102 tecmint.com mail.tecmint.com" >> /etc/hosts # init 6
5. После перезагрузки проверьте правильность настройки имени хоста с помощью приведенной ниже последовательности команд. Команда hostname должна возвратить имя домена, FQDN, имя хоста и IP-адрес системы.
# hostname # hostname -s # hostname -f # hostname -A # hostname -i # cat /etc/hostname
6. Также, с помощью приведенных ниже команд, проверьте, правильно ли домен отвечает на локальные запросы. Имейте в виду, что домен не будет отвечать на удаленные запросы, отправленные другими системами в вашей сети, потому что мы не используем DNS-сервер.
Тем не менее, домен должен отвечать другим системам, если вы вручную добавите имя домена в каждый из файлов /etc/hosts. Также имейте в виду, что разрешение DNS для домена, добавленного в файл /etc /hosts, не будет работать с помощью команд host, nslookup или dig.
# getent ahosts mail.tecmint.com # ping tecmint.com # ping mail.tecmint.com
Этап 2. Установка почтового сервера Postfix в Debian
7. Наиболее важной частью программного обеспечения, необходимой для правильного функционирования почтового сервера, является MTA-агент . MTA - это программное обеспечение, построенное по архитектуре сервер-клиент, которое отвечает за пересылку почты между почтовыми серверами.
В этом руководстве мы будем использовать в качестве агента передачи почты Postfix. Для установки postfix в Debian из официальных репозиториев выполните следующую команду.
# apt-get install postfix
8. Во время процесса установки Postfix вам будет задан ряд вопросов. В первом вопросе выберите вариант «Internet Site» в качестве общего типа для настройки Postfix и нажмите клавишу [enter] для продолжения, а затем добавьте свое имя домена в системное имя электронной почты, как показано на скриншотах ниже.
Этап 3. Настройка почтового сервера Postfix в Debian
9. Далее создайте основной конфигурационный файл Postfix и настройте Postfix для своего домена, используя приведенные ниже команды.
# cp /etc/postfix/main.cf{,.backup} # nano /etc/postfix/main.cf
Теперь настройте Postfix в файле main.cf, как показано ниже.
# See /usr/share/postfix/main.cf.dist for a commented, more complete version smtpd_banner = $myhostname ESMTP biff = no # appending .domain is the MUA's job. append_dot_mydomain = no readme_directory = no # See http://www.postfix.org/COMPATIBILITY_README.html -- default to 2 on # fresh installs. compatibility_level = 2 # TLS parameters smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key smtpd_use_tls=yes smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache # See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for # information on enabling SSL in the smtp client. smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination myhostname = mail.debian.lan mydomain = debian.lan alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases #myorigin = /etc/mailname myorigin = $mydomain mydestination = $myhostname, $mydomain, localhost.$mydomain, localhost relayhost = mynetworks = 127.0.0.0/8, 192.168.1.0/24 mailbox_size_limit = 0 recipient_delimiter = + inet_interfaces = all #inet_protocols = all inet_protocols = ipv4 home_mailbox = Maildir/ # SMTP-Auth settings smtpd_sasl_type = dovecot smtpd_sasl_path = private/auth smtpd_sasl_auth_enable = yes smtpd_sasl_security_options = noanonymous smtpd_sasl_local_domain = $myhostname smtpd_recipient_restrictions = permit_mynetworks,permit_auth_destination,permit_sasl_authenticated,reject
Замените переменные myhostname, mydomain и mynetworks в соответствии с вашими настройками.
Вы можете запустить команду postconf -n, чтобы проверить возможные ошибки, как показано на скриншоте.
# postconf -n
10. После завершения настройки перезапустите демон Postfix, чтобы применить изменения и убедиться в том, что служба работает, проверив, что основная служба Postfix подключена к порту 25, с помощью команды netstat.
# systemctl restart postfix # systemctl status postfix # netstat -tlpn
Этап 4. Проверка почтового сервера Postfix на Debian
11. Чтобы проверить, может ли postfix обрабатывать почту, сначала установите пакет mailutils с помощью команды:
# apt-get install mailutils
12. Затем, используя утилиту командной строки mail, отправьте письмо в учетную запись root и проверьте, была ли почта успешно передана, с помощью приведенной ниже команды, которая проверяет очередь получения почты и выводит содержимое папки Maildir в домашней директории root.
# echo "mail body"| mail -s "test mail" root # mailq # mail # ls Maildir/ # ls Maildir/new/ # cat Maildir/new/[TAB] Test Postfix by Sending Mail Test Postfix by Sending Mail
13. Вы также можете проверить, каким образом почта была обработана службой postfix, проверив содержимое файла журнала почты с помощью команды:
# tailf /var/log/mail.log
Этап 5: Установка и настройка Dovecot IMAP в Debian
14. Dovecot IMAP - это агент доставки почты, который мы будем использовать для доставки сообщений электронной почты в почтовые ящики локального получателя. IMAP - это протокол, который работает на портах 143 и 993 (SSL) , и отвечает за чтение, удаление или перемещение писем для нескольких пользователей электронной почты.
Также протокол IMAP осуществляет синхронизацию, гарантирующую, что копия каждого сообщения хранится на сервере и позволяет пользователям создавать несколько каталогов на сервере и перемещать письма в эти каталоги для сортировки.
Вышеперечисленное не относится к протоколу POP3. Протокол POP3 не позволяет пользователям создавать несколько каталогов на сервере для сортировки почты. У вас есть только папка «Входящие» для управления почтой.
Установка основного сервера Dovecot и пакета Dovecot IMAP в Debian производится с помощью команды:
# apt install dovecot-core dovecot-imapd
15. После того, как Dovecot установлен в вашей системе, отредактируйте файлы dovecot. Сначала откройте файл /etc/dovecot/dovecot.conf, найдите и раскомментируйте следующую строку:
listen = *, ::
16. Затем откройте /etc/dovecot/conf.d/10-auth.conf для редактирования, найдите и измените строки, чтобы они выглядели, как показано ниже.
disable_plaintext_auth = no auth_mechanisms = plain login
17. Откройте файл /etc/dovecot/conf.d/10-mail.conf и добавьте приведенную ниже строку, чтобы использовать Maildir вместо формата Mbox для хранения электронных писем.
mail_location = maildir:~/Maildir
18. И последний файл для редактирования - /etc/dovecot/conf.d/10-master.conf. Здесь найдите блок Postfix smtp-auth и внесите следующие изменения:
# Postfix smtp-auth unix_listener /var/spool/postfix/private/auth { mode = 0666 user = postfix group = postfix }
19. После внесения всех вышеуказанных изменений перезапустите демон Dovecot, чтобы применить изменения, проверить его статус и убедиться, что Dovecot подключен к порту 143, с помощью команд:
# systemctl restart dovecot.service # systemctl status dovecot.service # netstat -tlpn
20. Проверьте, правильно ли работает почтовый сервер, для этого добавьте в систему новую учетную запись пользователя, подключитесь к SMTP-серверу с помощью команд telnet или netcat, и отправьте письмо новому пользователю, как показано ниже.
# adduser matie # nc localhost 25 # ehlo localhost mail from: root rcpt to: matie data subject: test Mail body . quit
21. Проверьте, пришло ли письмо в почтовый ящик нового пользователя:
# ls /home/test_mail/Maildir/new/
22. Кроме того, вы можете подключиться к почтовому ящику пользователя из командной строки по протоколу IMAP, как показано ниже. Новая почта должна быть в папке «Inbox» пользователя.
# nc localhost 143 x1 LOGIN matie user_password x2 LIST "" "*" x3 SELECT Inbox x4 LOGOUT
Этап 6. Установка и настройка Webmail в Debian.
23. Пользователи будут управлять своей электронной почтой с помощью клиента Rainwop Webmail. Перед установкой почтового агента Rainloop сначала установите HTTP-сервер Apache и модули PHP, необходимые Rainloop, с помощью следующей команды:
# apt install apache2 php7.0 libapache2-mod-php7.0 php7.0-curl php7.0-xml
24. После установки веб-сервера Apache перейдите в директорию /var /www /html /, удалите файл index.html и установите Rainloop Webmail.
# cd /var/www/html/ # rm index.html # curl -sL https://repository.rainloop.net/installer.php | php
25. После установки клиента Rainwoo Webmail перейдите на IP-адрес своего домена и войдите в веб-интерфейс администратора Rainloop с учетными данными по умолчанию:
http://192.168.0.102/?admin User: admin Password: 12345
26. Перейдите в меню «Domains», нажмите кнопку «Add Domain» и добавьте настройки доменного имени, как показано на следующем скриншоте.
27. После того, как вы добавили настройки своего домена, выйдите из интерфейса администратора Ranloop и введите свой IP-адрес в браузере, чтобы войти в систему из клиента электронной почты.
После успешного входа в электронную почту Rainloop вы должны увидеть отправленное ранее из командной строки сообщение в папке «Inbox».
http://192.168.0.102 User: matie@tecmint.com Pass: the matie password
27. При добавлении нового пользователя используется команда useradd с флагом -m, чтобы создать домашний каталог пользователя. Но сначала убедитесь, что вы настроили переменную пути Maildir для каждого пользователя с помощью приведенной ниже команды.
# echo 'export MAIL=$HOME/Maildir' >> /etc/profile # useradd -m user3 # passwd user3
28. Если вы хотите перенаправить все сообщения электронной почты, предназначенные root, на заданную локальную учетную запись электронной почты из системы, выполните приведенные ниже команды. Все письма, предназначенные для учетной записи root, будут перенаправлены вашему пользователю, как показано на рисунке ниже.
# echo "root: test_mail" >> /etc/aliases # newaliases
Это все! Вы успешно установили и настроили почтовый сервер в своей системе, чтобы локальные пользователи могли общаться по электронной почте. Однако такая конфигурация почты не защищена должным образом, и ее рекомендуется развертывать только для небольших сетей, находящихся под вашим полным контролем.
Другие статьи на нашем сайте об установке и настройке почтового сервера Postfix:
- Настройка почтового сервера Postfix
- Как с помощью шифрования сделать почтовый сервер более безопасным
- Приемы работы в Ubuntu. Глава 10: Сервер малого офиса / домашнего офиса
- Перевод почтового сервера с Kerio Mail на Linux
- Как в различных ситуациях конфигурировать почтовый сервер, использующий Postfix и Dovecot
- Защита Linux-сервера