налаштування поштового сервера в Linux

Зараз багато користувачів вважають за краще встановлювати собі на комп'ютер спеціалізований поштовий клієнт, щоб максимально швидко і просто управляти електронними листами. У більшості випадків відразу ж після інсталяції такої програми можна переходити до прямого взаємодії з нею, але це не відноситься до певного кола користувачів операційної системи Linux. Тут потрібно зробити додавання і настройку поштового сервера, який забезпечує прийом і передачу повідомлень. Це складне завдання, але вирішується завдяки докладним посібникам. Ми хочемо ознайомити вас з такими інструкціями, детально розписавши кожен необхідний для виконання крок.

Налаштування поштового сервера в Linux

На поточний момент часу у відкритому доступі знаходиться кілька настроюються поштових серверів, і кожен з них має свої особливості. Ми зосередимо свою увагу на найпопулярніших і затребуваних рішеннях, приділивши час і додатковим компонентам. За приклад буде взято дистрибутив Ubuntu, а для власників RedHat представлені окремі команди, якщо відмінності від зазначених будуть матися. Перед початком розбору кожного етапу пропонуємо ознайомитися з вступною і дуже важливою інформацією, яка дозволить розібратися в загальному принципі роботи розглянутої системи.

SMTP та компоненти поштової служби

Деяких користувачів цікавить питання передачі електронних листів по інтернету, пов'язаних з необхідністю використання різних складових, що відповідають за певні дії. Сортування і пересилання подібної інформації &8212; складний процес, здійснюваний спеціальними алгоритмами. Найважливішим компонентом цього ланцюга виступає SMTP (Simple Mail Transfer Protocol), який і є поштовим сервером. Він відповідає за дотримання встановлених правил пересилання, відповідно, виконуючи її. Без сервера інші Ланки ланцюга взагалі не зможуть працювати. Сервери обмінюються інформацією між собою, а значить, задіють для цього порт. Найчастіше їм виступає номер 25. Самі ж різновиди серверів бувають різними, а сьогодні за приклад ми візьмемо більш просунутий Postfix. Тепер розглянемо загальну структуру системи.

  • Поштовий клієнт . Це та програма, через яку Ви отримуєте і переглядаєте свої листи. Самий банальний приклад &8212; Microsoft Outlook . Реалізація графічного інтерфейсу дозволяє навіть самому починаючому користувачеві керувати своїм обліковим записом, навіть не замислюючись про те, що приховано за простими кнопками.
  • Поштовий сервер . Вище ми вже сказали, що цей компонент виконує опцію пересилання. Його можна назвати своєрідним листоношею в світі Інтернету.
  • Агент доставки електронної пошти . Остання ланка ланцюга, яке ще називається Mail Delivery Agent або скорочено MDA. Саме цей інструмент відповідає за те, щоб лист було доставлено конкретному адресанту, а не заблукало на просторах величезного сервера. У нашому випадку подібним помічником буде виступати Postfix-maildrop.

Після того, як ви дізналися всі необхідні відомості, можна переходити до безпосередньої інсталяції та налаштування сервера. Ми розбили цю процедуру на кроки, щоб навіть у початківців користувачів не виникло з цим ніяких проблем.

Крок 1: Інсталяція Postfix

Раніше ми вже уточнили, який інструмент взяли за приклад. Якщо вас цей вибір не влаштовує, інсталюйте будь-яку іншу утиліту і переходите до її конфігурації за вказаними в наступних кроках інструкціям, враховуючи нові особливості. Іноді в стандартній збірці дистрибутива сервер Postfix вже встановлений, що можна перевірити командою grep postfix , проте в більшості випадків його доводиться інсталювати самостійно, що ми і продемонструємо далі.

  1. Всі подальші дії будуть здійснюватися через стандартний &171;Термінал&187; шляхом введення туди команд, тому запустіть його зручним чином, наприклад, через меню додатків.
  2. Переход к терминалу для дальнейшей установки Postfix в Linux
  3. Введіть команду sudo apt-get -y install postfix , якщо ви володієте дистрибутивом Debian / Mint / Ubuntu. Для збірок, які засновані на RedHat, потрібно вказати dnf -y install postfix .
  4. Команда для запуска установки почтового сервера Postfix в Linux через терминал
  5. Дана дія буде проводитися від імені суперкористувача, отже, доведеться підтвердити права, вказавши пароль облікового запису. Врахуйте, що вводяться таким чином символи на екрані не відображаються.
  6. Подтверждение подлинности профиля для установки сервера Postfix в Linux
  7. Розпочнеться процес отримання та розпакування файлів. Не переривайте його і не виконуйте інших дій, щоб випадково не наштовхнутися на помилки.
  8. Ожидание скачивания компонентов Postfix в Linux перед установкой
  9. Відкриється окреме вікно налаштування пакета. Тут ознайомтеся з представленими даними, щоб далі вже знати, який саме параметр слід вибрати.
  10. Информация об основных настройках почтового сервера Postfix в Linux
  11. Ми пропонуємо використовувати загальний тип & 171; без Налаштування&187; , щоб в майбутньому самостійно задати кожен параметр.
  12. Выбор оптимальной конфигурации основных настроек почтового сервера Postfix в Linux
  13. Після операція інсталяції продовжиться, і ви будете повідомлені про його закінчення, коли з'явиться новий рядок введення.
  14. Ожидание завершения установки Postfix в Linux через терминал
  15. Після завершення процесу додайте нову Службу сервера до запуску, ввівши systemctl start postfix .
  16. Команда для добавления почтового сервера Postfix в Linux в автозагрузку
  17. Ця дія теж слід підтвердити введенням пароля від облікового запису суперкористувача.
  18. Ввод пароля для добавления почтового сервера Postfix в Linux для автозагрузки
  19. Тепер активуйте її через systemctl enable postfix , щоб приступити до Налаштування.
  20. Команда для активации работы сервера Postfix в Linux
  21. Цього разу доведеться ввести пароль відразу кілька разів, оскільки підтвердження справжності будуть запитувати різні компоненти одночасно.
  22. Пароль для подтверждения активации работы сервера Postfix в Linux

Під час цих дій не повинно виникнути жодних проблем, оскільки в них немає нічого складного або незвичайного. Однак якщо щось все-таки пішло не за планом, уважно вивчіть повідомлення, які вказуються в рядку консолі, оскільки найчастіше в них містяться відомості, що дозволяють виправити ситуацію.

Крок 2: Налаштування встановленого сервера

Конфігурація встановленого поштового сервера &8212; найважливіший етап, оскільки від цього буде залежати коректність його функціонування. Немає однозначної відповіді або вихідного коду, який би зробив все за Користувача, але можна дати загальні поради, щоб спростити операцію ручної настройки, що ми і покажемо далі.

  1. Як відомо, Конфігурація в Linux здійснюється шляхом зміни рядків у спеціальних файлах. Для цього використовується зручний текстовий редактор. Новачкам може бути складно освоїти vi, тому ми радимо встановити спочатку більш просте рішення. Для цього введіть в консолі команду sudo apt install nano і натисніть на Enter .
  2. Установка текстового редактора для конфигурации Postfix в Linux
  3. Підтвердьте повідомлення про необхідність завантаження архівів і чекайте кінця завантаження.
  4. Ожидание завершения установки текстового редактора для конфигурации Postfix в Linux
  5. Після використовуйте команду sudo nano /etc/postfix/main.cf , щоб запустити конфігураційний файл.
  6. Запуск конфигурационного файла для редактирования Postfix в Linux
  7. Тут звернемо увагу лише на головні параметри. myhostname & 8212; після знака = Вам слід вказати ім'я хосту поштової системи в Інтернеті, щоб сервер міг приймати та надсилати електронні листи.
  8. Настройка имени хоста в конфигурационном файле Postfix в Linux
  9. Рядок mydomain відповідає за обслуговування домену, на якому розташовується сервер.
  10. Настройка домена в конфигурационном файле Postfix в Linux
  11. У параметрі myorigin вказується використовуване доменне ім'я. Ми пропонуємо зберегти звичний для багатьох вид myorigin = $mydomain .
  12. Настройка параметра myorigin в конфигурационном файле Postfix в Linux
  13. Mydestination &8212; останній параметр, На який хочемо звернути увагу. Цей рядок визначає кінцеві доменні імена, куди будуть доставлятися листи. Вкажіть значення відповідно до ваших потреб.
  14. Настройка параметра mydestination в конфигурационном файле Postfix в Linux
  15. Після внесення всіх змін натисніть на Ctrl + O , щоб зберегти файл.
  16. Переход к сохранению конфигурационного файла Postfix в Linux после внесения изменений
  17. Не змінюйте його назву, а просто натисніть на Enter .
  18. Выбор названия для конфигурационного файла Postfix в Linux после изменений
  19. Завершіть роботу в текстовому редакторі через Ctrl + X .
  20. Выход из текстового редактора после внесения изменений в Postfix в Linux
  21. Тепер потрібно буде перезавантажити сервер, щоб усі зміни набули чинності. Зробіть це в &171;терміналі&187; , написавши команду systemctl reload postfix .
  22. Перезапуск Postfix в Linux после внесения изменений
  23. У вас не вийде відразу ж дізнатися, чи були допущені якісь помилки в конфігурації, тому для цього знадобиться запускати засіб перевірки через postfix check . У нових рядках відобразяться відомості про поточний стан сервера, і по ним можна визначити коректність роботи.
  24. Команда для проверки очереди сообщений Postfix в Linux

Якщо з якихось причин розглянутий тільки що файл не був створений, то при його відкритті ви отримаєте інформацію про те, що це новий об'єкт. Відповідно, він буде повністю порожнім і всі важливі рядки доведеться створити самому. Звичайно, необхідний код можна знайти в Інтернеті, але вам буде достатньо скопіювати і вставити наступну інформацію.

/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 в Linux

Якщо раптом виявиться, що черга переповнена і ніяким чином не просувається, цілком ймовірно, що стався певний збій, що заважає налагодити функціонування сервісу. Самий банальний варіант вирішення цієї ситуації &8212; очищення списку очікує повідомлень. Це відбувається через команду postfix flush . Якщо ж і це не допомогло, доведеться шукати причини, аналізуючи поточний стан сервера.

Як приклад відзначимо одну опцію, яка виглядає наступним чином:

$ echo "This is message body" | mailx -s "This is Subject" -r "likegeeks" -a /path/to/attachment [email protected]

Вона відповідає за надсилання повідомлення певному клієнту з метою перевірки. Всю інформацію, яка розміщена в цій команді, слід замінити на свою, щоб лист було доставлено адресанту. Більш детальні відомості щодо складання подібних скриптів ви знайдете в офіційній документації сервера.

Крок 4: Налаштування безпеки

З наведених вище посібників Ви вже знаєте, що Postfix та інші сервери взаємодіють із пристроями через мережу. Якщо з'єднання не буде захищено, цілком можлива ситуація здійснення атак з метою викрасти дані або порушити стабільність роботи ОС. Найпростіше організувати правила безпеки за допомогою системи OpenSSH, але для початку її потрібно встановити і виконати основну конфігурацію. Детальніше про це читайте в інших матеріалах на нашому сайті, скориставшись наведеними нижче посиланнями.

Детальніше:
встановлення SSH-сервера в Ubuntu
Налаштування SSH на CentOS 7
Налаштування SSH в Ubuntu

Величезною популярністю користується протокол 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, виконайте наступну інструкцію.

  1. У консолі введіть команду sudo apt-get -y install dovecot-imapd dovecot-pop3d і натисніть на Enter . Для власників RedHat команда виглядає трохи інакше: dnf -y install dovecot .
  2. Команда для установки вспомогательного компонента Dovecot в Linux
  3. Підтвердьте права суперкористувача, ввівши пароль у новому рядку.
  4. Подтверждение установки вспомогательного компонента Dovecot в Linux
  5. Очікуйте закінчення отримання та розпакування архівів. Під час цієї операції також будуть оновлені правила профілю OpenSSH.
  6. Ожидание установки вспомогательного компонента Dovecot в Linux
  7. Додайте відповідний інструмент до запуску через systemctl start dovecot .
  8. Добавление компонента Dovecot в Linux в автозагрузку
  9. Підтвердьте цю дію, написавши пароль у вікні, що з'явиться.
  10. Ввод пароля для добавления компонента Dovecot в Linux в автозагрузку
  11. Вставте команду systemctl enable dovecot , щоб запустити Dovecot.
  12. Команда для активации компонента Dovecot в Linux
  13. Тепер ви можете відкрити конфігураційний файл для налаштування через sudo nano /etc/dovecot/dovecot.conf .
  14. Запуск конфигурационного файла Dovecot в Linux для дальнейшей настройки
  15. Спочатку в цьому файлі не буде практично ніяких параметрів, тому їх знадобиться вставляти самостійно. Чи не станемо заглиблюватися в тонкощі настройки, а лише надамо самі базові і необхідні рядки, який ви можете скопіювати, вставити і зберегти файл.Настройка конфигурационного файла компонента Dovecot в Linux

    Protocols = imap pop3 lmtp
    listen = *, ::

    Userdb {
    driver = pam
    }

    Mail_location = mbox:~/mail:INBOX=/var/mail/%u

    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 ця структура виглядає дещо інакше:

    $ firewall-cmd --permanent --add-port=110/tcp --add-port=995
    $ firewall-cmd --permanent --add-port=143/tcp --add-port=993
    $ firewall-cmd --reload

Як бачите, процес конфігурації дійсно складний, однак при дотриманні інструкцій все пройде швидко і без будь-яких труднощів. На жаль, в рамках однієї статті просто неможливо вмістити всі моменти взаємодії з Postfix, тому радимо вивчити матеріали на офіційному сайті, якщо в цьому виникла необхідність.

Перейти на офіційний сайт поштового сервера Postfix

більше статей на цю тему: