Поиск по сайту:

Установите полноценный почтовый сервер с Postfix и веб-почтой в Debian 9.


Из этого руководства вы узнаете, как установить и настроить полноценный почтовый сервер с Postfix в версии Debian 9. Также будет описано, как настроить почтовые ящики учетных записей с помощью Dovecot для получения и составления писем по протоколу IMAP. Пользователи будут использовать интерфейс Rainloop Webmail в качестве почтового пользовательского агента для обработки почты.

Требования

  1. Минимальная установка Debian 9
  2. Статический IP-адрес, настроенный для сетевого интерфейса.
  3. Локальное или общедоступное зарегистрированное доменное имя.

В этом руководстве мы будем использовать учетную запись частного домена для настройки почтового сервера, настроенную только через файл /etc/hosts, без участия какого-либо DNS-сервера в обработке разрешения DNS.

Шаг 1. Начальная настройка почтового сервера Postfix в Debian

1. На первом этапе войдите на свой компьютер с учетной записью с правами root или непосредственно с пользователем 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 сначала прочитайте файл хостов.

order hosts,bind
multi on

4. Затем настройте FQDN вашего компьютера и добавьте свое доменное имя и полное доменное имя вашей системы в файл /etc/hosts. Используйте IP-адрес вашей системы для разрешения имени домена и полного доменного имени, как показано на снимке экрана ниже.

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

hostnamectl set-hostname mail.linux-console.net
echo "192.168.0.102 linux-console.net mail.linux-console.net" >> /etc/hosts
init 6

5. После перезагрузки проверьте, правильно ли настроено имя хоста, выполнив следующую серию команд. Имя домена, полное доменное имя, имя хоста и IP-адрес системы должны быть возвращены командой hostname.

hostname
hostname -s
hostname -f
hostname -A
hostname -i
cat /etc/hostname 

6. Кроме того, проверьте, правильно ли домен отвечает на локальные запросы, выполнив приведенные ниже команды. Имейте в виду, что домен не будет воспроизводить удаленные запросы, исходящие от других систем в вашей сети, поскольку мы не используем DNS-сервер.

Однако домен должен отвечать из других систем, если вы вручную добавляете имя домена в каждый из их файлов /etc/hosts. Также имейте в виду, что разрешение DNS для домена, добавленного в файл /etc/hosts, не будет работать с помощью команд хоста, nslookup или dig.

getent ahosts mail.linux-console.net
ping linux-console.net
ping mail.linux-console.net

Шаг 2. Установите почтовый сервер Postfix в Debian

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

В этом руководстве мы будем использовать Postfix в качестве агента передачи почты. Чтобы установить постфикс в Debian из официальных репозиториев, выполните следующую команду.

apt-get install postfix

8. В процессе установки Postfix вам будет задан ряд вопросов. В первом запросе выберите параметр Интернет-сайт в качестве общего типа конфигурации 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, чтобы создать дамп основного файла конфигурации Postfix и проверить возможные ошибки, как показано на снимке экрана ниже.

postconf -n

10. После того, как все конфигурации заданы, перезапустите демон Postfix, чтобы применить изменения, и проверьте, работает ли служба, проверив, привязывается ли главная служба Postfix к порту 25, запустив netstat. команда.

systemctl restart postfix
systemctl status postfix
netstat -tlpn

Шаг 3. Тестирование почтового сервера Postfix на Debian

11. Чтобы проверить, может ли Postfix обрабатывать передачу почты, сначала установите пакет mailutils, выполнив следующую команду.

apt-get install mailutils

12. Затем, используя утилиту командной строки mail, отправьте письмо на учетную запись root и проверьте, была ли почта успешно передана, введя приведенную ниже команду, чтобы проверить очередь почты и просмотреть содержимое корневой учетной записи. домашний каталог Maildir.

echo "mail body"| mail -s "test mail" root
mailq
mail
ls Maildir/
ls Maildir/new/
cat Maildir/new/[TAB]

13. Вы также можете проверить, каким образом почта была обработана службой postfix, проверив содержимое файла журнала почты, выполнив следующую команду.

tailf /var/log/mail.log

Шаг 4. Установите и настройте 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. Проверьте правильность работы почтового сервера, добавив в систему новую учетную запись пользователя и используя команду telnet или netcat для подключения к SMTP-сервер и отправьте новое письмо новому добавленному пользователю, как показано в приведенных ниже выдержках.

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, как показано в приведенном ниже фрагменте. Новое письмо должно появиться в папке «Входящие» пользователя.

nc localhost 143
x1 LOGIN matie user_password
x2 LIST "" "*"
x3 SELECT Inbox
x4 LOGOUT

Шаг 5. Установите и настройте веб-почту в Debian

23. Пользователи будут управлять своей электронной почтой через клиент Rainloop Webmail. Перед установкой почтового пользовательского агента Rainloop сначала установите сервер Apache HTTP и следующие модули 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. После установки клиента Rainloop Webmail в системе перейдите по IP-адресу своего домена и войдите в веб-интерфейс администратора Rainloop, используя следующие учетные данные по умолчанию:

http://192.168.0.102/?admin
User: admin
Password: 12345

26. Перейдите в меню Домены, нажмите кнопку Добавить домен и добавьте настройки доменного имени, как показано на снимке экрана ниже.

27. После завершения добавления настроек домена выйдите из интерфейса администратора Ranloop и укажите в браузере свой IP-адрес, чтобы войти в клиент веб-почты с учетной записью электронной почты.

После успешного входа в веб-почту Rainloop вы должны увидеть электронное письмо, отправленное ранее из командной строки, в папку «Входящие».

http://192.168.0.102
User: [email 
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

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