How to Install and Set Up Ubuntu Mail Server on Version 18.04 LTS
Having your own email server is a great idea for any medium-sized company. With this, all the traffic is controlled and we can define the rules ourselves. This way we can manage the service clearly and cleanly.
In this tutorial, we will show you how to install and set up an Ubuntu mail server on a VPS server running Ubuntu 18.04. There are numerous alternatives and ways to create an email server in Linux; however, we will focus on Postfix!
Configuring the DNS Server for An Ubuntu Mail Server:
Just follow this step by step guide, and you shouldn’t have any problems setting up the configuration!
1. Log In and Update Your Server
Log into your server using SSH. If you’re having trouble, check out our PuTTY tutorial! After logging in, you should update your machine using the following command:
2. Install Bind
To configure a DNS server that will use Postfix we’ll need an additional tool – Bind. Let’s install it first:
3. Configure /var/cache/db.test
At this point, we must take into account that the IP address of our Ubuntu 18.04 machine is 192.168.250.7, it is necessary to replace it with the IP address where we will perform the installation. For this example we’ll use mail.test.com as a FQDNS.
So, now it is necessary to create a new zone for our example. To do this, create a new file with the zone information.
Then, add the following:
Remember, we must replace the IP address with that of your server, and change the domain to the one you wish to use. Press CTRL+O to save the changes and CTRL+X to close the nano editor.
4. Add New Zone to Bind Configuration
Before enabling the newly created zone it is necessary to check the configuration of the file.
Now we can add our new zone to the Bind zone configuration file. To do this, run the following command:
And add the new zone:
Again, CTRL+O to save the changes and CTRL+X to close it.
5. Configure /etc/bind/named.conf.options
Now, in the file /etc/bind/named.conf.options it is necessary to uncomment the forwarders line and include the Google DNS – 8.8.8.8. For that simply remove the // symbols as shown in the screenshot below.
6. Restart Bind
Now, we have to restart the bind9 service. You can do it with one of two commands:
How to Install and Setup Mail Server on Ubuntu 18.04
We’re almost there, your Ubuntu email server is ready to come online. Here’s what you should do:
1. Install Postfix Email Server
Now it is time to install Postfix. Postfix is an email server written in C. Its main feature is the speed of execution and open source nature. Install it with the following command:
During installation, we will be asked to configure the package. On the first screen, choose the option Internet Site.
Then, we have to enter the name of the server. In this case test.com.
Postfix is very flexible and allows extensive configuration, but for this tutorial we’ll fix with the default configuration.
2. Add User
Then, we have to add our user to the group mail:
This must be done because in Ubuntu 18.04 only users who are in the mail group can make use of this utility.
After that, we have to create the users and add them to the mail group so they can send and receive mail. I’ll add Gabriel:
Then, we need to set a password to the newly created user:
Test the Ubuntu Mail Server
Now to prove what we just did. We will send and receive an email from the terminal. To do this, we will install the mailutils package:
Next, we send an email to the other email account user named gabriel. Type in the subject and the message. After that, press CTRL+D to finish. To start writing an email enter the following command:
Now we can log into another user and check the mail utility.
There, after running the mail command, we will see the email we just sent to the other test user. To access the email just write the number of the mail, in this case, 1.
To test outbound emails from this user, just try another email address:
That’s it! You’re sending emails from your very own email server on Ubuntu 18.04! Congratulations.
Conclusion
An email server is easy to set up but might be a bit complex to manage. In Linux, it is recommended to do it for its security and resource management.
On the other hand, in a bigger company, it can be very useful to have a fully configured and functional email server out of the box, like the one offered by Hostinger.
There are many ways to improve and maintain an email server. It is a process that takes time and is constantly evolving. So we recommend that you keep going deeper into the subject! Good luck and happy mailing!
Learn What Else Your Ubuntu Can Do
Edward is a content editor with years of experience in IT writing, marketing, and Linux system administration. His goal is to encourage readers to establish an impactful online presence. He also really loves dogs, guitars, and everything related to space.
Setup a Email server — Linux
Simple Mail Transfer Protocol (SMTP) is an Internet standard for electronic mail (email) transmission. SMTP by default uses TCP port 25. The protocol for mail submission is the same, but uses port 587. Sendmail was one of the first mail transfer agents to implement SMTP.
Over time, as BSD Unix became the most popular operating system on the Internet, sendmail became the most common MTA (mail transfer agent). In 1999 Postfix (released in December 1998) starts to take a lot of adoption because its performance, easy configuration and most important the security that was one thing that sendmail struggle in some versions. Some other popular SMTP server programs include qmail, Exim, etc.
Postfix
Lets get started by installing postfix on a machine:
$ sudo apt-get update
$ sudo apt-get install postfix -y
On installation process choose “Internet Site” and them type a mail name of your choice.
Now you just need to change somethings on postfix configuration file, follow the next steps:
$ cd /etc/postfix
$ sudo nano main.cf
Go to the end of file and make the necessary changes to look like the next code:
Just save the file ( CTRL+X , Y , Return ) and restart postfix with this command: $ sudo service postfix restart .
Dovecot
At this point you have postfix configured and running. Now lets add IMAP and POP3 protocols to our mail server. Dovecot is an open-source IMAP and POP3 server for Linux/UNIX-like systems released in July 2002.
Dovecot developers primarily aim to produce a lightweight, fast and easy-to-set-up open-source mail server. According to Openemailsurvey Dovecot has an installed base of over 2.9 million email servers all over the world and a global market share of 57% of all IMAP servers. Next steps are install dovecot-imap, dovecot-pop3 and configure them.
$ sudo apt-get install dovecot-imapd dovecot-pop3d -y
When it prompts to if you want to create a self-signed SSL certificate, choose yes and on next screen type the mail name that you choose a few steps before.
$ cd /etc/dovecot
$ sudo nano dovecot.conf
Make this changes:
$ cd conf.d
$ sudo nano 10-auth.conf
$ sudo nano 10-mail.conf
$ sudo nano 10-master.conf
With all this changes saved, you just need to restart dovecot with this command: $ sudo service dovecot restart . By executing the command $ netstat -tnl you can see all machine ports that are listening:
Now lets test this mail server with a email client. There are a lot of programs available on the internet but the most popular for linux are Thunderbird, Evolution, Geary and Sylpheed.
I choose Thunderbird because when you’re dealing with hundreds or thousands of emails every day, speed is a primary concern and this email client delivers. So open Thunderbird and configure your email account:
Note that server hostname is relative to the machine that is running the mail server. So if you are setting up Thunderbird on the mail server machine, you can use 127.0.0.1. If not you need to input the IP of the mail server machine.
SquirrelMail
SquirrelMail is a standards-based webmail package written in PHP. It includes built-in pure PHP support for the IMAP and SMTP protocols, and all pages render in pure HTML 4.0 (with no JavaScript required) for maximum compatibility across browsers.
It has very few requirements and is very easy to configure and install. Next step is to take our mail server to “next level” installing SquirrelMail test on browser:
$ sudo apt-get install squirrelmail
$ sudo cp /etc/squirrelmail/apache.conf /etc/apache2/sites-available/squirrelmail.conf
$ sudo nano /etc/apache2/sites-available/squirrelmail.conf
$ sudo a2ensite squirrelmail
$ sudo service apache2 restart
As we don’t have a DNS server on the system yet, just add the following line to your hosts file:
Почтовый сервер на Linux
Как наладить работу почтового сервера, умеющего принимать и отправлять электронную корреспонденцию, бороться со спамом, взаимодействовать с клиентами? На самом деле, всё довольно просто.
Сегодня поговорим о почтовых серверах на Linux. Мы расскажем о том, как настроить сервер, о широко распространённом в интернете протоколе SMTP, а также о других протоколах, таких, как POP и IMAP. В итоге вы окажетесь обладателем полноценной системы для работы с электронной почтой.
Начнём с SMTP-сервера на Linux
SMTP-сервер
Протокол SMTP (Simple Mail Transfer Protocol) определяет правила пересылки почты между компьютерами, при этом, он не регламентирует правила хранения или визуализации сообщений. Это системно-независимый протокол, то есть, отправитель и получатель почты могут иметь различные ОС.
SMTP требует лишь чтобы сервер был способен отправлять обычный ASCII-текст другому серверу, используя порт 25, который является стандартным портом SMTP.
Сегодня в большинство дистрибутивов Linux встроены две наиболее распространённых реализации SMTP: sendmail и postfix.
Sendmail — это популярный почтовый сервер с открытым кодом, используемый во многих дистрибутивах Linux. К его минусам можно отнести несколько усложнённую архитектуру и недостаточно высокий уровень защиты.
Postfix — система немного более продвинутая, при разработке этого почтового сервера особое внимание было уделено вопросам безопасности.
Компоненты почтовой службы
Типичная почтовая служба состоит из трёх основных компонентов:
Почтовый клиент, который ещё называют почтовым агентом (Mail User Agent, MUA). Именно с ним взаимодействует пользователь, например — это почтовые клиенты Thunderbird или Microsoft Outlook. Они позволяют пользователю читать почту и писать электронные письма.
Почтовый сервер, или агент пересылки сообщений (Mail Transport Agent, MTA). Этот компонент ответственен за перемещение электронной почты между системами, этим занимаются, например, Sendmail и Postfix.
Агент доставки электронной почты (Mail Delivery Agent, MDA). Этот компонент ответственен за распределение полученных сообщений по почтовым ящикам пользователей. Например, это Postfix-maildrop и Procmail.
Установка почтового сервера
Для настройки нашего сервера был выбран пакет Postfix. Это — популярный среди системных администраторов выбор, стандартный почтовый сервер в большинстве современных дистрибутивов Linux.
Начнём, проверив, установлен ли Postfix в системе:
Если обнаружить Postfix не удалось, установить его, например, в дистрибутивах, основанных на Red Hat, можно с помощью такой команды:
Затем запустим службу postfix и организуем её автозапуск при загрузке системы:
В дистрибутивах, основанных на Debian, вроде Ubuntu, установить Postfix можно так:
В ходе установки будет предложено выбрать конфигурацию сервера. Среди доступных четырёх вариантов (No configuration, Internet site, Internet with smarthost, Satellite system and Local only), мы выберем No configuration, что приведёт к созданию необходимых Postfix учётных записей пользователя и группы.
Настройка сервера
После установки почтового сервера Postfix, его нужно настроить. Большинство конфигурационных файлов находятся в директории /etc/postfix/.
Главный конфигурационный файл Postfix можно найти по адресу /etc/postfix/main.cf. Здесь имеется множество параметров, рассмотрим самые важные.
Этот параметр используется для указания имени хоста почтовой системы. Это — имя хоста в интернете, для которого Postfix будет получать почту.
Типичные примеры имён хостов почтовых серверов — mail.example.com и smtp.example.com.
Настраивают этот параметр так:
Эта настройка позволяет указать почтовый домен, обслуживанием которого занимается сервер, например — example.com:
Этот параметр позволяет указать доменное имя, используемое в почте, отправленной с сервера. Присвоим ему значение $mydomain:
В настройках можно ссылаться на параметры, добавляя знак $ перед именем переменной.
mydestination
Этот параметр содержит список доменов, которые сервер Postfix будет считать конечными пунктами назначения для входящей почты.
В нашем случае здесь будут имя хоста сервера и доменное имя, но данный параметр может содержать и другие имена:
mail_spool_directory
Почтовый сервер Postfix может использовать два режима доставки почты:
- Непосредственно в почтовый ящик пользователя.
- В центральную директорию очередей, при этом почта попадает в папку /var/spool/mail, где имеется файл для каждого пользователя.
Эта переменная — важный параметр настройки. Она позволяет указывать то, какие сервера могут пересылать почту через сервер Postfix.
Обычно разрешают передачу почты только от локальных клиентских компьютеров. В противном случае вашим сервером могут заинтересоваться спамеры.
Если неправильно настроить параметр mynetworks, спамеры вполне смогут воспользоваться сервером как ретранслятором почты. Это очень быстро приведёт к тому, что какая-нибудь система борьбы со спамом поместит его в один из чёрных списков, вроде DNS Blacklist (DNSBL), или Realtime Blackhole List (RBL). Как только сервер попадёт в подобный список, очень немногие смогут получить письма, отправленные с его помощью.
Вот как может выглядеть настройка этого параметра:
smtpd_banner
Эта переменная позволяет задать ответ, который возвращает сервер при подключении клиентов.
Лучше всего поменять это значение так, чтобы оно не указывало на то, какой именно используется почтовый сервер.
inet_protocols
Эта переменная позволяет задавать версию IP, которую будет использовать Postfix при установлении соединений.
Для того, чтобы изменения, внесённые в конфигурационные файлы, вступили в силу, службу Postfix надо перезагрузить:
На самом деле, в конфигурационном файле Postfix можно ещё много чего настроить. Например — управлять уровнями безопасности, задавать опции отладки и другие параметры.
Возможно, настраивая сервер, вводя значения параметров, вы допустите ошибку. Проверить правильность настроек можно с помощью такой команды:
С помощью этого средства можно найти строку, в которой допущена ошибка, и исправить её.
Проверка очереди сообщений
Иногда очередь почтовых сообщений переполняется. Это может быть вызвано множеством факторов, вроде сетевой ошибки, или по любой причине, способной задержать отправку почты.
Для того чтобы проверить очередь сообщений, воспользуйтесь такой командой:
Она выведет сообщения, находящиеся в очереди. Если очередь переполнена и на отправку сообщения уходит по несколько часов, можно инициировать процесс отправки сообщений такой командой:
Если теперь проверить очередь, она должна оказаться пустой.
Тестирование почтового сервера
После настройки сервера на Postfix, его надо протестировать. Первый шаг в тестировании — использование локального почтового клиента, вроде mailx или mail (это — символьная ссылка на mailx).
Попробуйте отправить письмо кому-нибудь, чей адрес обслуживается на том же сервере, а если это сработает — отправьте письмо на адрес, который находится где-нибудь ещё.
Затем попробуйте принять письмо, отправленное с другого сервера.
Если вы столкнётесь с проблемами — проверьте логи. В дистрибутивах, основанных на Red Hat, то, что вам надо, можно найти по адресу /var/log/maillog. В Debian-дистрибутивах нужный файл можно найти здесь: /var/log/mail.log, или же по пути, заданному в настройках rsyslogd. Вот, если нужно, материал о логировании в Linux, и о том, как настраивать rsyslogd.
Если проблемы всё ещё не решены, попытайтесь проверить настройки DNS, взгляните на MX-записи, используя сетевые команды Linux.
Борьба со спамом
Существует немало решений для выявления среди почтовых сообщений нежелательных писем — спама. Одно из лучших — проект с открытым исходным кодом SpamAssassin.
Установить его можно так:
Затем надо запустить соответствующую службу и добавить её в автозагрузку:
После установки SpamAssassin, взгляните на его настройки в файле /etc/mail/spamassassin/local.cf.
SpamAssassin умеет отличать обычные письма от спама, основываясь на результатах исследования корреспонденции с помощью различных скриптов. Результаты проверок оцениваются в баллах.
Чем выше итоговая оценка письма — тем выше и вероятность того, что оно является спамом.
В конфигурационном файле параметр required_hits 5 указывает на то, что SpamAssassin пометит сообщение как спам, если его рейтинг составляет 5 или выше.
Параметр report_safe принимает значения 0, 1, или 2. Установка его в 0 означает, что письма, помеченные как спам, пересылаются в исходном виде, но их заголовок модифицируется с указанием на то, что они являются спамом.
Если этот параметр установлен в значение 1 или 2, SpamAssassin сгенерирует отчёт и отправит его получателю.
Разница между значениями 1 и 2 заключается в том, что в первом случае спам-сообщение будет закодировано в формате message/rfc822, а во втором — в формате text/plain.
Кодирование text/plain безопаснее, так как некоторые почтовые клиенты исполняют сообщения формата message/rfc822, что при определённых условиях может привести к заражению клиентского компьютера вирусом.
После установки и настройки SpamAssassin, нужно интегрировать его с Postfix. Пожалуй, легче всего это сделать с помощью использования procmail.
Создадим файл /etc/procmailrc и добавим в него следующее:
Затем отредактируем файл настроек Postfix — /etc/postfix/main.cf, задав параметр mailbox_command следующим образом:
И, наконец, перезапустим службы Postfix и SpamAssassin:
Надо сказать, что SpamAssassin не всегда распознаёт спам, что ведёт к наполнению почтовых ящиков ненужными письмами.
К счастью, сообщения, прежде чем они достигнут почтового сервера на Postfix, можно фильтровать, используя Realtime Blackhole Lists (RBLs). Это снизит нагрузку на почтовый сервер и поможет сохранить его в чистоте.
Откройте конфигурационный файл Postfix /etc/postfix/main.cf, измените параметр smtpd_recipient_restrictions и настройте другие параметры следующим образом:
Затем перезагрузите сервер Postfix:
Вышеприведённые чёрные списки используются чаще всего, но вы можете найти и другие подобные сервера.
Защита SMTP-соединения
Лучше всего передавать SMTP-трафик по TLS для защиты его от атаки через посредника.
Для начала нужно сгенерировать сертификат и ключ с использованием команды openssl:
Затем надо добавить в файл настроек Postfix /etc/postfix/main.cf следующее:
И, наконец, нужно перезагрузить службу Postfix:
Теперь, при подключении клиента к серверу, нужно выбрать TLS. Тут вы, при первой отправке почты после изменении настроек, увидите предупреждение, так как сертификат не подписан.
Основы протоколов POP3 и IMAP
Итак, мы наладили процесс отправки и получения электронных писем по SMTP, но на этом организация полноценной почтовой службы не заканчивается. Рассмотрим следующие ситуации:
-
Пользователям нужны локальные копии электронных писем для их просмотра без подключения к интернету.
Сильнее всего распространены два популярных протокола доступа к почте — POP (Post Office Protocol), и IMAP (Internet Message Access Protocol).
В основе POP лежит очень простая идея. Центральный почтовый сервер на Linux всё время подключён к интернету, он получает и сохраняет письма для всех пользователей. Все полученные письма остаются в очереди на сервере до тех пор, пока пользователь не подключится к нему по протоколу POP и не загрузит письма.
Когда пользователь хочет отправить письмо, почтовый клиент обычно передаёт его через центральный сервер по SMTP.
Обратите внимание на то, что SMTP-сервер и POP-сервер могут без проблем работать на одной и той же машине. В наши дни это — обычная практика.
Возможности, вроде хранения исходных экземпляров писем пользователей на сервере с хранением на клиенте лишь кэшированных копий, в POP отсутствуют. Это привело к разработке протокола IMAP.
Используя IMAP, сервер будет поддерживать три режима доступа к почте:
- Онлайн-режим похож на прямой доступ к файловой системе на почтовом сервере.
- Оффлайн-режим похож на то, как работает POP, когда клиент отключается от сети после получения своих писем. В этом режиме сервер обычно не хранит копии писем.
- Автономный режим позволяет пользователям хранить кэшированные копии своих писем, а сервер так же хранит копии этих писем.
Сервера POP3, POP3S, IMAP, и IMAPS слушают, соответственно, порты 110, 995, 143, и 993.
Установка Dovecot
Большинство дистрибутивов Linux содержат предустановленный Dovecot, однако, его можно установить и самостоятельно. В системах, основанных на Red Hat, это делается так:
В системах, основанных на Debian, функционал IMAP и POP3 предоставляются в двух разных пакетах:
Тут вам предложат создать самозаверенный сертификат для работы с IMAP и POP3 по SSL/TLS. Ответьте на вопрос yes и, при появлении соответствующего запроса, введите имя хоста вашей системы.
Затем можно запустить соответствующую службу и добавить её в автозагрузку:
Настройка Dovecot
Главный файл настроек Dovecot расположен по адресу /etc/dovecot/dovecot.conf. В некоторых дистрибутивах Linux этот файл размещается в папке /etc/dovecot/conf.d/ и, для подключения файлов настроек, используется директива include.
Вот некоторые из параметров, используемых для настройки Dovecot.
protocols: протоколы, которые надо поддерживать.
Здесь lmtp означает Local Mail Transfer Protocol. listen: IP-адрес, который будет слушать сервер.
Здесь звёздочка означает все интерфейсы IPv4, двойное двоеточие означает все интерфейсы IPv6.
userdb: база данных пользователей для аутентификации.
mail_location: это запись в файле /etc/dovecot/conf.d/10-mail.conf. Выглядит она так:
Dovecot поставляется со стандартными SSL-сертификатами и файлами ключей, которые используются в файле /etc/dovecot/conf.d/10-ssl.conf.
Когда пользователь пытается подключиться к Dovecot, сервер покажет предупреждение, так как сертификаты не подписаны. Если нужно, подписанные сертификаты можно приобрести в подходящем центре сертификации.
Не забудьте открыть порты сервера Dovecot на файрволе.
И про SMTP-порт не забудьте.
Затем сохраните правила. Если хотите освежить в памяти особенности работы с iptables в Linux, взгляните на этот материал.
Или, если вы используете firewalld, можете поступить так:
А, если что-то пошло не так, посмотрите лог-файлы /var/log/messages, /var/log/maillog, и /var/log/mail.log.
Итоги
Теперь вы можете настроить почтовую службу на своём Linux-сервере. Как видите, много времени это не займёт. Конечно, у рассмотренных здесь пакетов, вроде Postfix, уйма настроек, но если вы освоили описанную здесь последовательность действий и разобрались с основами, то всё, что вам понадобится, несложно будет выяснить из документации.
Настройка почтового сервера в Linux
Сейчас многие пользователи предпочитают устанавливать себе на компьютер специализированный почтовый клиент, чтобы максимально быстро и просто управлять электронными письмами. В большинстве случаев сразу же после инсталляции такой программы можно переходить к прямому взаимодействию с ней, но это не относится к определенному кругу юзеров операционной системы Linux. Здесь потребуется произвести добавление и настройку почтового сервера, который обеспечивает прием и передачу сообщений. Это сложная задача, но решаемая благодаря подробным руководствам. Мы хотим ознакомить вас с такими инструкциями, детально расписав каждый необходимый для выполнения шаг.
Настраиваем почтовый сервер в Linux
На текущий момент времени в открытом доступе находится несколько настраиваемых почтовых серверов, и каждый из них обладает своими особенностями. Мы сосредоточим свое внимание на самых популярных и востребованных решениях, уделив время и дополнительным компонентам. За пример будет взят дистрибутив Ubuntu, а для обладателей RedHat представлены отдельные команды, если отличия от указанных будут иметься. Перед началом разбора каждого этапа предлагаем ознакомиться с вводной и очень важной информацией, которая позволит разобраться в общем принципе работы рассматриваемой системы.
SMTP и компоненты почтовой службы
Некоторых пользователей интересует вопрос передачи электронных писем по интернету, связанных с необходимостью использования разных составляющих, отвечающих за определенные действия. Сортировка и пересылка подобной информации — сложный процесс, осуществляемый специальными алгоритмами. Самым важным компонентом этой цепи выступает SMTP (Simple Mail Transfer Protocol), который и является почтовым сервером. Он отвечает за соблюдение установленных правил пересылки, соответственно, выполняя ее. Без сервера остальные звенья цепи вообще не смогут работать. Серверы обмениваются информацией между собой, а значит, задействуют для этого порт. Чаще всего им выступает номер 25. Сами же разновидности серверов бывают разными, а сегодня за пример мы возьмем более продвинутый Postfix. Теперь рассмотрим общую структуру системы.
- Почтовый клиент. Это та программа, через которую вы получаете и просматриваете свои письма. Самый банальный пример — Microsoft Outlook. Реализация графического интерфейса позволяет даже самому начинающему пользователю управлять своей учетной записью, даже не задумываясь о том, что скрыто за простыми кнопками.
- Почтовый сервер. Выше мы уже сказали, что этот компонент выполняет опцию пересылки. Его можно назвать своеобразным почтальоном в мире интернета.
- Агент доставки электронной почты. Последнее звено цепи, которое еще называется Mail Delivery Agent или сокращенно MDA. Именно этот инструмент отвечает за то, чтобы письмо было доставлено конкретному адресанту, а не заблудилось на просторах огромного сервера. В нашем случае подобным помощником будет выступать Postfix-maildrop.
После того, как вы узнали все необходимые сведения, можно переходить к непосредственной инсталляции и настройке сервера. Мы разбили эту процедуру на шаги, чтобы даже у начинающих пользователей не возникло с этим никаких проблем.
Шаг 1: Инсталляция Postfix
Ранее мы уже уточнили, какой инструмент взяли за пример. Если вас этот выбор не устраивает, инсталлируйте любую другую утилиту и переходите к ее конфигурации по указанным в следующих шагах инструкциям, учитывая новые особенности. Иногда в стандартной сборке дистрибутива сервер Postfix уже установлен, что можно проверить командой grep postfix , однако в большинстве случаев его приходится инсталлировать самостоятельно, что мы и продемонстрируем далее.
-
Все дальнейшие действия будут осуществляться через стандартный «Терминал» путем ввода туда команд, поэтому запустите его удобным образом, например, через меню приложений.
Во время этих действий не должно возникнуть никаких проблем, поскольку в них нет ничего сложного или необычного. Однако если что-то все-таки пошло не по плану, внимательно изучите сообщения, которые указываются в строке консоли, поскольку чаще всего в них содержатся сведения, позволяющие исправить ситуацию.
Шаг 2: Настройка установленного сервера
Конфигурация установленного почтового сервера — самый важный этап, поскольку от этого будет зависеть корректность его функционирования. Нет однозначного ответа или исходного кода, который бы сделал все за пользователя, но можно дать общие советы, чтобы упростить операцию ручной настройки, что мы и покажем далее.
- Как известно, конфигурация в Linux осуществляется путем изменения строк в специальных файлах. Для этого используется удобный текстовый редактор. Новичкам может быть сложно освоить vi, поэтому мы советуем установить сначала более простое решение. Для этого введите в консоли команду sudo apt install nano и нажмите на Enter.
- Подтвердите уведомление о необходимости скачивания архивов и ожидайте конца загрузки.
- После используйте команду sudo nano /etc/postfix/main.cf , чтобы запустить конфигурационный файл.
- Здесь обратим внимание лишь на главные параметры. myhostname — после знака = вам следует указать имя хоста почтовой системы в интернете, чтобы сервер мог принимать и отправлять письма.
- Строка mydomain отвечает за обслуживание домена, на котором располагается сервер.
- В параметре myorigin указывается используемое доменное имя. Мы предлагаем сохранить привычный для многих вид myorigin = $mydomain .
- mydestination — последний параметр, на который хотим обратить внимание. Эта строка определяет конечные доменные имена, куда будут доставляться письма. Указывайте значения в соответствии со своими потребностями.
- После внесения всех изменений нажмите на Ctrl + O, чтобы сохранить файл.
- Не меняйте его название, а просто нажмите на Enter.
- Завершите работу в текстовом редакторе через Ctrl + X.
- Теперь потребуется перезагрузить сервер, чтобы все изменения вступили в силу. Сделайте это в «Терминале», написав команду systemctl reload postfix .
- У вас не получится сразу же узнать, были ли допущены какие-то ошибки в конфигурации, поэтому для этого понадобится запускать средство проверки через postfix check . В новых строках отобразятся сведения о текущем состоянии сервера, и по ним можно определить корректность работы.
Если по каким-то причинам рассмотренный только что файл не был создан, то при его открытии вы получите информацию о том, что это новый объект. Соответственно, он будет полностью пустым и все важные строки придется создать самому. Конечно, необходимый код можно найти в интернете, но вам будет достаточно скопировать и вставить следующую информацию.
# /usr/local/etc/postfix/main.cf
# Config file for postfix mail system.
#
queue_directory = /var/spool/postfix
command_directory = /usr/local/sbin
daemon_directory = /usr/local/libexec/postfix
mail_owner = postfix
default_privs = nobody
myhostname = yourhost.yourdomain.com
mydomain = yourdomain.com
mynetworks = 192.168.1.0/24, 127.0.0.0/8
myorigin = $mydomain
inet_interfaces = $myhostname, localhost
mydestination = $myhostname, localhost.$mydomain, $mydomain
default_transport = smtp
alias_database = hash:/etc/aliases
mailbox_command = /usr/local/bin/procmail
smtpd_banner = $myhostname ESMTP READY
smtpd_client_restrictions = permit_mynetworks, reject_unknown_client
smtpd_sender_restrictions = permit_mynetworks, reject_unknown_address, reject_non_fqdn_sender, reject_invalid_hostname
smtpd_recipient_restrictions = permit_mynetworks, permit_mx_backup, reject_non_fqdn_sender, reject_non_fqdn_recipient, reject_unknown_sender_domain, check_relay_domains, reject_unknown_client, reject
local_destination_concurrency_limit = 2
default_destination_concurrency_limit = 10
debug_peer_level = 2
debugger_command =
PATH=/usr/bin:/usr/X11R6/bin
xxgdb $daemon_directory/$process_name $process_id & sleep 5
После останется просто сохранить все эти изменения и внести правки, соответствующие вашим требованиям.
Шаг 3: Проверка очереди сообщений
Давайте вкратце остановимся на проверке очереди сообщений почтового сервера. Иногда количество писем на отправке становится огромным из-за различных сбоев, связанных с невозможностью их разослать. В таких случаях требуется производить очистку, чтобы наладить ситуацию. Для проверки текущей очереди используйте команду mailq . В новых строках отобразятся абсолютно все сообщения, находящиеся в ожидании на данный момент.
Если вдруг окажется, что очередь переполнена и никаким образом не продвигается, вполне вероятно, что произошел определенный сбой, мешающий наладить функционирование сервиса. Самый банальный вариант решения этой ситуации — очистка списка ожидающий сообщений. Это происходит через команду postfix flush . Если же и это не помогло, придется искать причины, анализируя текущее состояние сервера.
В качестве примера отметим одну опцию, которая выглядит следующим образом:
$ echo «This is message body» | mailx -s «This is Subject» -r «likegeeks» -a /path/to/attachment someone@example.com
Она отвечает за отправку сообщения определенному клиенту в целях проверки. Всю информацию, которая размещена в этой команде, следует заменить на свою, чтобы письмо было доставлено адресанту. Более детальные сведения по составлению подобных скриптов вы найдете в официальной документации сервера.
Шаг 4: Настройка безопасности
Из представленных выше руководств вы уже знаете, что Postfix и другие серверы взаимодействуют с устройствами через сеть. Если соединение не будет защищено, вполне возможна ситуация совершения атак с целью похитить данные или нарушить стабильность работы ОС. Проще всего организовать правила безопасности с помощью системы OpenSSH, но для начала ее требуется установить и выполнить основную конфигурацию. Детальнее об этом читайте в других материалах на нашем сайте, воспользовавшись приведенными ниже ссылками.
Огромной популярностью пользуется протокол OpenSSL, поэтому во многих документациях показаны варианты настройки почтового сервера именно с помощью этого инструмента. Примеры команд выглядят так:
openssl genrsa -des3 -out mail.key
openssl req -new -key mail.key -out mail.csr
cp mail.key mail.key.original
openssl rsa -in mail.key.original -out mail_secure.key
openssl x509 -req -days 365 -in mail.csr -signkey mail_secure.key -out mail_secure.crt
cp mail_secure.crt /etc/postfix/
cp mail_secure.key /etc/postfix/
Они отвечают за генерацию и получения ключа безопасности. Дополнительно потребуется внести изменения в файл /etc/postfix/main.cf , добавив такие строки:
smtpd_use_tls = yes
smtpd_tls_cert_file = /etc/postfix/mail_secure.crt
smtpd_tls_key_file = /etc/postfix/mail_secure.key
smtp_tls_security_level = may
После выполнения подобной процедуры не забудьте перезагрузить и проверить сервер, чтобы убедиться в корректности его функционирования.
Шаг 5: Установка и конфигурация Dovecot
Последний этап сегодняшней статьи будет посвящен инсталляции и настройке Dovecot. Это свободный протокол, который используется клиентами для получения доступа к электронной почте. Он же позволяет выставить параметры доступа каждой учетной записи, обеспечит сортировку данных и быструю аутентификацию. Если в вашем дистрибутиве еще не установлен Dovecot, выполните следующую инструкцию.
- В консоли введите команду sudo apt-get -y install dovecot-imapd dovecot-pop3d и нажмите на Enter. Для обладателей RedHat команда выглядит немного иначе: dnf -y install dovecot .
- Подтвердите права суперпользователя, введя пароль в новой строке.
- Ожидайте окончания получения и распаковки архивов. Во время этой операции также будут обновлены правила профиля OpenSSH.
- Добавьте рассматриваемый инструмент в автозагрузку через systemctl start dovecot .
- Подтвердите это действие, написав пароль в появившемся окне.
- Вставьте команду systemctl enable dovecot , чтобы запустить Dovecot.
- Теперь вы можете открыть конфигурационный файл для настройки через sudo nano /etc/dovecot/dovecot.conf .
- Изначально в этом файле не будет практически никаких параметров, поэтому их понадобится вставлять самостоятельно. Не станем углубляться в тонкости настройки, а лишь предоставим самые базовые и необходимые строки, который вы можете скопировать, вставить и сохранить файл.
protocols = imap pop3 lmtp
listen = *, ::
userdb <
driver = pam
>
ssl_cert = </etc/pki/dovecot/certs/dovecot.pem
ssl_key = </etc/pki/dovecot/private/dovecot.pem
Для межсетевого экрана потребуется отдельно ввести следующее:
$ iptables -A INPUT -p tcp —dport 110 -j ACCEPT
$ iptables -A INPUT -p tcp —dport 995 -j ACCEPT
$ iptables -A INPUT -p tcp —dport 143 -j ACCEPT
$ iptables -A INPUT -p tcp —dport 993 -j ACCEPT
$ iptables -A INPUT -p tcp —dport 25 -j ACCEPT
Для FirewallD эта структура выглядит немного иначе:
Как видите, процесс конфигурации действительно сложный, однако при соблюдении инструкций все пройдет быстро и без каких-либо трудностей. К сожалению, в рамках одной статьи просто невозможно уместить все моменты взаимодействия с Postfix, поэтому советуем изучить материалы на официальном сайте, если в этом возникла необходимость.