Postfix: настройка, установка. Поштовий сервер Postfix

Anonim

Postfix - це безкоштовне програмне забезпечення поштового сервера, розроблене для використання в операційних системах сімейства Unix. Він належить до класу агентів пересилання повідомлень (message transport agent, MTA), які здійснюють передачу електронних листів між поштовими клієнтами користувачів. Для організації серверів подібної пошти вкрай популярна зв'язка Ubuntu Linux + Postfix. Налаштування їх буде розглянута в наведеній нижче статті.

Підготовка до інсталяції Postfix

Перед початком установки Postfix потрібно виконати кілька процедур по правильного налаштування ресурсу. Передбачається, що на сервері вже встановлена ​​і готова до роботи операційна система Ubuntu Linux.

Встановлюємо коректне ім'я хоста

За замовчуванням, Postfix використовує ім'я хоста поштового сервера для того, щоб ідентифікувати себе при комунікації з іншими агентами пересилання повідомлень. Ім'я хоста може бути двох видів: просте слово або повністю певне ім'я домену (Fully Qualified Domain Name, FQDN). Коли що застосовується?

Ім'я хоста у вигляді простого слова зазвичай використовується для персональних комп'ютерів. Якщо ви використовуєте Linux на домашньому ПК, то ви можете назвати його, наприклад, linux, debian, ubuntu. FQDN складається з двох частин: ім'я вузла та ім'я домену. Наприклад, mail.yourdomain.co.

Тут mail - ім'я вузла, yourdomain.com - доменне ім'я. FQDN, як правило, використовується для інтернет-серверів, і саме його слід використовувати при налаштуванні Postfix для відправки пошти. Наведена вище форма FQDN є стандартною для email-серверів.

Для того щоб дізнатися FQDN вашого сервера, введіть в терміналі Ubuntu наступну команду: hostname -f.

Якщо у сервера ще немає FQDN, його можна задати за допомогою утиліти hostnamectl. sudo hostnamectl set - hostname your - fqdn.

Після цього вийдіть з облікового запису в системі і увійдіть назад. Ви зможете побачити зміни за допомогою команди hostname -f.

Перевіряємо системний час

Проходячи через Postfix, пошта отримує позначку про час пересилки. Для цього сервер перевіряє своє системне час. Ця позначка також записується в його лог Postfix (/ var / log / mail.log). Тому перед тим як встановлювати Postfix, настройку системного часу необхідно провести коректно.

Використовуйте команду date, щоб дізнатися тимчасову зону і поточний системний час на сервері Ubuntu:: ~ $ date. Sun Dec 31 6:37:19 BST 2017.

Задаємо записи DNS для поштового сервера

  • Запис MX. MX-запис (від англійського "mail exchanger") повідомляє іншим агентам пересилання повідомлень, що ваш сервер mail.yourdomain.com відповідає за відправку пошти у вашому домені. Запис MX @ mail.yourdomain.com.
  • Запис A. А-запис встановлює зв'язок між FQDN і IP-адресою: mail.yourdomain.com.
  • Запис PTR. PTR-запис (від англійського "pointer record") встановлює зворотний зв'язок між IP-адресою і FQDN. Вона є протилежністю записи A і використовується для зворотних запитів DNS. mail.yourdomain.com

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

Зворотній зв'язок між записом A і записом PTR використовується при блокуванні спаму. Багато агентів передачі повідомлень приймають пошту, тільки якщо сервер дійсно пов'язаний з певним доменом. Задати запис PTR необхідно, щоб листи з вашого сервера не потрапляли у відправників в папку зі спамом.

Для того щоб дізнатися запис PTR для певного IP-адреси, виконайте в консолі наступну команду: dig - x <IP> + short або host <IP>.

Після того як підготовка завершена, почнемо інсталяцію Postfix.

Установка Postfix і настройка

Щоб завантажити Postfix, виконайте наступні дві команди в терміналі на вашому сервері Ubuntu:

  • sudo apt-get update;
  • sudo apt-get install postfix -y.

Для знову встановленого Postfix настройка починається з вибору типу поштової конфігурації:

  • No configuration - в процесі встановлення не будуть налаштовуватися будь-які параметри.
  • Internet Site - Postfix буде налаштований для відправки електронної пошти іншим поштових серверів і прийому повідомлень від них.
  • Internet with smarthost - сервер Postfix буде використовуватися для отримання електронних повідомлень від інших поштових серверів, але відправка листів буде здійснюватися через сервер-ретранслятор.
  • Satellite system - ретранслятор буде використовуватися і для отримання, і для відсилання пошти.
  • Local only - електронна пошта буде пересилатися тільки всередині локального облікового запису.

Далі введіть ваше доменне ім'я в якості імені поштової системи, тобто того, що йде в поштовій адресі після символу @. Наприклад, якщо ваша адреса електронної пошти - , То в якості імені поштової системи слід ввести yourdomain.com.

Налаштування Postfix в Ubuntu завершена.

Після установки сервер Postfix буде автоматично запущено, і в каталозі / etc буде згенеровано конфігураційний файл /etc/postfix/main.cf. Тепер ми можемо перевірити версію Postfix наступною командою:

: ~ $ Sudo postconf mail_version

mail_version = 2.11.0

Ми також можемо з'ясувати за допомогою утиліти netstat, що основний процес Postfix «слухає» TCP-порт 25: sudo netstat -lnpt.

Перед тим як відправляти перший тестовий лист, не зайвим буде перевірити, чи блокується порт 25 мережевим екраном. Для сканування відкритих портів можна використовувати утиліту nmap. Виконайте наступну команду в терміналі на якомусь іншому комп'ютері під Linux (наприклад, на вашому ПК), підставивши в неї реальний IP вашого поштового сервера: sudo nmap.

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

Відправка тестового листа

Власне кажучи, тепер ми можемо відправляти і отримувати листи в консолі Ubuntu. Якщо ваш аккаунт на сервері називається user, вашим поштовою адресою буде . Як тест ви можете надіслати листа адміністратору ресурсу (користувач root) або на будь-яку поштову адресу Gmail, "Яндекс" і так далі.

При установці Postfix в каталог / usr / sbin / sendmail записується бінарний файл агента пересилання повідомлень sendmail. Ми можемо використовувати його для того, щоб відправити пробне лист на поштову адресу Gmail, наприклад: echo «тест» | sendmail youraccount @ gmail. com

Ця нескладна команда повідомляє sendmail, що потрібно вважати повідомлення зі стандартного вводу і створити тіло електронного листа з текстом «тест», а потім відправити його на вказану поштову адресу Gmail. Лист з даним текстом має прийти на вашу поштову скриньку Google. Зверніть увагу, що адреса відправника вказувати не потрібно: його автоматично вставить в метадані листи Postfix, при налаштуванні якого ми задали ім'я поштової системи.

Тепер спробуємо відповісти на це повідомлення, щоб перевірити, як Postfix приймає повідомлення. Вхідні листи, що приходять на ваш поштовий сервер, зберігаються в каталозі / var / spool / mail / і / var / mail /. Також розташування вхідних листів можна дізнатися командою: postconf ail_spool_directory.

Журнал повідомлень Postfix знаходиться в файлі /var/log/mail.log.

Установка і настройка спам-фільтра

У Postfix для настройки спам-фільтра виконайте установку spamassassin і spamc: apt-get install spamassassin spamc

SpamAssassin - це спам-фільтр, який буде відсівати небажану пошту на вашому сервері відповідно до заданих настройками. Розглянемо їх.

Основним конфігураційним файлом спам-фільтра є /etc/mail/spamassassin/local.cf, який можна відкрити за допомогою будь-якого зручного вам текстового редактора. Зокрема, значущими для фільтрації вважаються наступні настройки, які потрібно при необхідності додати або розкоментувати:

report_safe 0

required_score 8.0

rewrite_header Subject [SPAM]

  1. Параметр report_safe рекомендується встановити рівним 0. У цьому випадку вхідний спам буде отримувати в заголовку позначку, задану параметром rewrite_header. Якщо задати значення параметра рівним 1, то повідомлення будуть видалятися.
  2. Параметр required_score відповідає за чутливість спам-фільтра. Чим менше його значення, тим суворіше фільтрується пошта. Для великих поштових серверів, які обслуговують більше сотні акаунтів, значення required_score рекомендується встановлювати в проміжку між 8.0 і 10.0.

Збережіть конфігураційний файл, а потім увімкніть та запустіть спам-фільтр і відновите його конфігурацію:

# Systemctl enable spamassassin

# Systemctl start spamassassin

# Sa-update

Інтеграція Postfix і SpamAssassin

Для того щоб ефективно інтегрувати Postfix зі спам-фільтром, необхідно створити окремого користувача і групу для процесу спам-фільтра:

# Useradd spamd -s / bin / false -d / var / log / spamassassin

Далі додамо наступний рядок в кінець конфігураційного файлу /etc/postfix/master.cf:

spamassassin unix - nn - - pipe flags = R user = spamd argv = / usr / bin / spamc -e / usr / sbin / sendmail -oi -f $ {sender} $ {recipient}

Після цього на початку файлу вкажемо, що spamassassin буде працювати в якості фільтра контенту (параметр content_filter):

-o content_filter = spamassassin

Нарешті, перезапустіть Postfix, щоб застосувати зміни:

# Systemctl restart postfix

Налаштування спам-фільтра завершена.

Для того щоб перевірити працездатність SpamAssassin, можна виконати наступний тест. Надішліть листа електронною поштою з іншого поштового сервера (наприклад, Gmail або Яндекс) на адресу електронної пошти на вашому сервері. Задайте йому будь-який заголовок, а в тілі повідомлення, введіть:

XJS * C4JDBQADN1.NSBN3 * 2IDNEN * GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL * C.34X

При відправці вищенаведеного тексту на ваш сервер, наприклад, з аккаунта Gmail, буде отримано таку відповідь:

Verify SpamAssassin Detecting Spam Mails

Ще одне повідомлення буде записано в лог, який можна переглянути за допомогою наступної команди:

# Journalctl | grep spam

Повідомлення балки містить текст: Monitor SpamAssassin Mail Logs

Додатково, ви можете перевірити spamassassin прямо з консолі: # spamassassin - D </ usr / share / doc / spamassassin -3.4.0 / sample - spam. txt

Вищенаведена команда видає досить докладний результат, який повинен включати в себе нижченаведену рядок: Test SpamAssassin Spam from Commandline.

висновок

Налаштувавши свій власний приватний сервер електронної пошти, ви зможете власноруч забезпечувати приватність своєї електронної переписки, бо тільки ви - адміністратор сервера - будете мати доступ до зберігаються на сервері листів. З іншого боку, створення особистого поштового сервера вимагає досить багато зусиль.

Виконавши наведені в статті рекомендації, ви зможете встановити і коректно налаштувати поштовий сервер на базі Ubuntu Linux і Postfix для прийому і передачі повідомлень, а також для фільтрації спаму. Інструкції дійсні для версій Ubuntu, починаючи з 12.04.