Зміст
Зараз багато користувачів вважають за краще встановлювати собі на комп'ютер спеціалізований поштовий клієнт, щоб максимально швидко і просто управляти електронними листами. У більшості випадків відразу ж після інсталяції такої програми можна переходити до прямого взаємодії з нею, але це не відноситься до певного кола користувачів операційної системи 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
, проте в більшості випадків його доводиться інсталювати самостійно, що ми і продемонструємо далі.
- Всі подальші дії будуть здійснюватися через стандартний &171;Термінал&187; шляхом введення туди команд, тому запустіть його зручним чином, наприклад, через меню додатків.
- Введіть команду
sudo apt-get -y install postfix
, якщо ви володієте дистрибутивом Debian / Mint / Ubuntu. Для збірок, які засновані на RedHat, потрібно вказатиdnf -y install postfix
. - Дана дія буде проводитися від імені суперкористувача, отже, доведеться підтвердити права, вказавши пароль облікового запису. Врахуйте, що вводяться таким чином символи на екрані не відображаються.
- Розпочнеться процес отримання та розпакування файлів. Не переривайте його і не виконуйте інших дій, щоб випадково не наштовхнутися на помилки.
- Відкриється окреме вікно налаштування пакета. Тут ознайомтеся з представленими даними, щоб далі вже знати, який саме параметр слід вибрати.
- Ми пропонуємо використовувати загальний тип & 171; без Налаштування&187; , щоб в майбутньому самостійно задати кожен параметр.
- Після операція інсталяції продовжиться, і ви будете повідомлені про його закінчення, коли з'явиться новий рядок введення.
- Після завершення процесу додайте нову Службу сервера до запуску, ввівши
systemctl start postfix
. - Ця дія теж слід підтвердити введенням пароля від облікового запису суперкористувача.
- Тепер активуйте її через
systemctl enable postfix
, щоб приступити до Налаштування. - Цього разу доведеться ввести пароль відразу кілька разів, оскільки підтвердження справжності будуть запитувати різні компоненти одночасно.
Під час цих дій не повинно виникнути жодних проблем, оскільки в них немає нічого складного або незвичайного. Однак якщо щось все-таки пішло не за планом, уважно вивчіть повідомлення, які вказуються в рядку консолі, оскільки найчастіше в них містяться відомості, що дозволяють виправити ситуацію.
Крок 2: Налаштування встановленого сервера
Конфігурація встановленого поштового сервера &8212; найважливіший етап, оскільки від цього буде залежати коректність його функціонування. Немає однозначної відповіді або вихідного коду, який би зробив все за Користувача, але можна дати загальні поради, щоб спростити операцію ручної настройки, що ми і покажемо далі.
- Як відомо, Конфігурація в Linux здійснюється шляхом зміни рядків у спеціальних файлах. Для цього використовується зручний текстовий редактор. Новачкам може бути складно освоїти vi, тому ми радимо встановити спочатку більш просте рішення. Для цього введіть в консолі команду
sudo apt install nano
і натисніть на Enter . - Підтвердьте повідомлення про необхідність завантаження архівів і чекайте кінця завантаження.
- Після використовуйте команду
sudo nano /etc/postfix/main.cf
, щоб запустити конфігураційний файл. - Тут звернемо увагу лише на головні параметри.
myhostname
& 8212; після знака = Вам слід вказати ім'я хосту поштової системи в Інтернеті, щоб сервер міг приймати та надсилати електронні листи. - Рядок
mydomain
відповідає за обслуговування домену, на якому розташовується сервер. - У параметрі
myorigin
вказується використовуване доменне ім'я. Ми пропонуємо зберегти звичний для багатьох видmyorigin = $mydomain
. Mydestination
&8212; останній параметр, На який хочемо звернути увагу. Цей рядок визначає кінцеві доменні імена, куди будуть доставлятися листи. Вкажіть значення відповідно до ваших потреб.- Після внесення всіх змін натисніть на Ctrl + O , щоб зберегти файл.
- Не змінюйте його назву, а просто натисніть на Enter .
- Завершіть роботу в текстовому редакторі через Ctrl + X .
- Тепер потрібно буде перезавантажити сервер, щоб усі зміни набули чинності. Зробіть це в &171;терміналі&187;
, написавши команду
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
. У нових рядках відобразяться абсолютно всі повідомлення, що знаходяться в очікуванні на даний момент.
Якщо раптом виявиться, що черга переповнена і ніяким чином не просувається, цілком ймовірно, що стався певний збій, що заважає налагодити функціонування сервісу. Самий банальний варіант вирішення цієї ситуації &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, виконайте наступну інструкцію.
- У консолі введіть команду
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
}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, тому радимо вивчити матеріали на офіційному сайті, якщо в цьому виникла необхідність.