Postfix – Блог страуса https://ostrich.kyiv.ua Wed, 28 May 2025 19:26:49 +0000 uk hourly 1 https://wordpress.org/?v=6.8.3 https://ostrich.kyiv.ua/wp-content/uploads/2024/02/ostrich-150x150.png Postfix – Блог страуса https://ostrich.kyiv.ua 32 32 Налаштування PostfixAdmin для керування поштовими скриньками https://ostrich.kyiv.ua/uk/2025/05/19/%d0%bd%d0%b0%d0%bb%d0%b0%d1%88%d1%82%d1%83%d0%b2%d0%b0%d0%bd%d0%bd%d1%8f-postfixadmin-%d0%b4%d0%bb%d1%8f-%d0%ba%d0%b5%d1%80%d1%83%d0%b2%d0%b0%d0%bd%d0%bd%d1%8f-%d0%bf%d0%be%d1%88%d1%82%d0%be%d0%b2/ https://ostrich.kyiv.ua/uk/2025/05/19/%d0%bd%d0%b0%d0%bb%d0%b0%d1%88%d1%82%d1%83%d0%b2%d0%b0%d0%bd%d0%bd%d1%8f-postfixadmin-%d0%b4%d0%bb%d1%8f-%d0%ba%d0%b5%d1%80%d1%83%d0%b2%d0%b0%d0%bd%d0%bd%d1%8f-%d0%bf%d0%be%d1%88%d1%82%d0%be%d0%b2/#respond Mon, 19 May 2025 19:48:15 +0000 https://ostrich.kyiv.ua/?p=1177 Вступ

Оскільки на моїй Raspberry Pi вже встановлено та налаштовано Postfix + Dovecot через підключення до БД, то виникає потреба адмініструвати поштові скриньки. Для зручності адміністрування реалізовано через веб інтерфейс сервісом PostfixAdmin. Як цей сервіс встановити та налаштувати, я покроково опишу в цьому дописі.

Вимоги для PostfixAdmin

Для установки PostfixAdmin мені майже нічого не потрібно додатково встановлювати, адже багато сервісів були встановлені на попередньому етапі – при встановленні Postfix та Zabbix. Проте не буде зайвим перевірити вже існуючі пакети та залежності. Надалі в цій статті я буду вважати, що у вас вже встановлені та налаштовані всі залежності, а саме:

  • PHP – php php-mbstring php-intl php-imap php-curl php-mysql php-xml php-sqlite3
  • Apache – apache2
  • СУБД MariaDB – mariadb-client mariadb-server
  • Супутні пакети – unzip git composer

Перед початком як завжди треба оновити пакети:

sudo apt update && sudo apt upgrade

Після перевірки та встановлення необхідних залежностей переходимо до встановлення PostfixAdmin

Встановлення PostfixAdmin

Завантаження PostfixAdmin відбувається через гіт репозиторій.

cd /var/www/html
sudo git clone https://github.com/postfixadmin/postfixadmin.git
sudo chown -R www-data:www-data postfixadmin
cd postfixadmin

Щоб оптимізувати процес встановлення, можна запустити файл install.sh, який встановить composer, PHP бібліотеки та директорію templates_c. В майбутньому це позбавить від помилок.

chmod +x install.sh
./install.sh

Після установки можна переходити до бази даних.

Створення БД для PostfixAdmin

Для цього потрібно підключитися до вже існуючої або щойно створеної БД:

sudo mysql -u root -p<password>

Створення БД та користувача, та надання доступу для цього користувача для взаємодії з БД:

CREATE DATABASE postfixadmin CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'postfixuser'@'localhost' IDENTIFIED BY '<password>';
GRANT ALL PRIVILEGES ON postfixadmin.* TO 'postfixuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Після того, як БД та користувач визначені переходимо до налаштування конфігурації PostfixAdmin

Редагування конфігурації

Основні файли вже знаходяться в директорії за адресою: /var/www/html/postfixadmin. В цій директорії замість того, щоб редагувати основний файл config.inc.php треба створити файл config.local.php та прописати там основні параметри конфігурації. В майбутньому при оновленні цей файл конфігурації не буде замінений чи пошкоджений.

sudo nano config.local.php

В ньому змінюємо або додаємно наступні рядки:

$CONF['configured'] = true;
$CONF['default_language'] = 'en';
$CONF['database_type'] = 'mysqli';
$CONF['database_host'] = 'localhost';
$CONF['database_user'] = 'postfixudmin';
$CONF['database_password'] = 'твій_пароль';
$CONF['database_name'] = 'postfixadmin';
$CONF['encrypt'] = 'dovecot:SHA512-CRYPT';

Створення Apache-віртуального хоста

Оскільки Apache може мати багато віртуальних хостів, то треба створити ще один для PostfixAdmin.

sudo nano /etc/apache2/sites-available/postfixadmin.conf

З наступними параметрами:

<VirtualHost *:80>
    ServerAdmin admin@localhost
    DocumentRoot /var/www/html/postfixadmin/public
    ServerName postfixadmin.local

    <Directory /var/www/postfixadmin/public>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/postfixadmin_error.log
    CustomLog ${APACHE_LOG_DIR}/postfixadmin_access.log combined
</VirtualHost>

Але якщо ви хочете, щоб PostfixAdmin був доступним тільки з локальної мережі, замініть блок <Directory> із вказанням своєї підмережі на наступний:

<Directory /var/www/html/postfixadmin>
    Require ip 127.0.0.1
    Require ip 192.168.0.0/24
</Directory>

Для того, щоб зміни вступили в силу, необхідно активувати сайт:

sudo a2ensite postfixadmin.conf
sudo a2enmod rewrite
sudo systemctl reload apache2

Оскільки окрім сервера більше ніхто не знає про домен postfixadmin.local, щоб не прописувати на кожному хості цей домен окремо, я додав цей запис в налаштуваннях свого роутера UXG Lite: Settings -> Routing -> DNS -> Create Entry -> тип запису А. Такі налаштування застосовуються локально майже миттєво.

Після перезавантаження сервера апач, можна переходити до веб інтерфейсу за адресою: http://postfixadmin.local/setup.php

Конфігурація веб сервісу PostfixAdmin

Перше відвідування сторінки http://postfixadmin.local/setup.php запросить згенерувати хеш для щойно створеного паролю. Цей хеш необхідно вписати в файлі конфігурації config.inc.php

$CONF['setup_password'] = '$2y$10$.tW14352cmjVC3N07u9MQOphugNCl5tIOAdwhYLs21XT7/TwR7Lo.';

Здебільшого користувач може зіткнутися ще з помилками, які для подальшого конфігурування є фатальними. Тому, якщо при генеруванні хешу у вас помилки не виникло, то всі прапорці повинні бути зеленими:

Нажаль мене також спіткали помилки, які доволі жваво обговорюються в інтернеті, а саме:

  • Password Hashing – attempted to use configured encrypt backend (dovecot:SHA512-CRYPT) triggered an error: /usr/bin/doveadm pw failed, see error log for details
  • You will have problems logging into PostfixAdmin.
  • Check out our Dovecot documentation at https://github.com/postfixadmin/postfixadmin/blob/master/DOCUMENTS/DOVECOT.txt, specifically around ‘3. Permissions’.

Це означає, що PostfixAdmin не зміг виконати /usr/bin/doveadm pw, тобто не може генерувати паролі для Dovecot. Іншими словами – doveadm потребує доступ на dovecot.conf/сертифікати, яких немає у webserver-користувача www-data

Є багато методів вирішення проблеми із доступом, але я розгляну лише два з них:

Перший метод Небезпечний через долучення групи www-data до групи dovecot:

Необхідно створити новий конфігураційний файл для ключів SSL, скопіювати у цей файл тільки параметри ключів SSL, додати в кінець головного конфігураційного файлу dovecot посилання на допоміжний SSL файл, змінити права та власника для цього файлу та для застосування змін перезавантажити dovecot.

Цей метод мабуть один із найпростіших, проте небезпека полягає в тому, що припустимо якщо на сервері встановлено вордпрес та поштовий сервер, то зловмисник, який отримає несанкціонований доступ до користувача www-data зможе отримати доступ до всіх ресурсів які належать групі Dovecot, наприклад: сокетів, конфігів, кешів, логів з іменами користувачів. Я цей варіант випробував в учбових цілях, проте його не рекомендую, але поділюся налаштуваннями:

sudo nano /etc/dovecot/conf.d/ssl-keys.conf
# додати шлях до сертифікатів
ssl_cert = ...
ssl_key = ...

sudo nano /etc/dovecot/conf.d/10-ssl.conf
# видалити або закоментувати ці рядки
ssl_cert = ...
ssl_key = ...

sudo nano /etc/dovecot/dovecot.conf
# додати в кінці файлу посилання на новий файл
!include_try /etc/dovecot/conf.d/ssl-keys.conf

# змінити права та власника нового файлу додати www-data до групи dovecot 
sudo chown root:root /etc/dovecot/conf.d/ssl-keys.conf
sudo chmod 640 /etc/dovecot/conf.d/ssl-keys.conf
sudo usermod -aG dovecot www-data

# перезавантажити сервіси
sudo systemctl restart dovecot apache2

Другий метод налаштування доступу з пониженим ризиком:

Він передбачає ізоляцію між веб-сервером і поштовим сервером через надання дозволу користувачу www-data до сертифікатів, проте в мене такий метод не спрацював!

sudo setfacl -R -m u:www-data:rx /etc/letsencrypt/live/ /etc/letsencrypt/archive/
sudo setfacl -R -m u:www-data:rwx /var/run/dovecot/stats-reader /var/run/dovecot/stats-writer

Після внесення змін перезавантажити сторінку та знову ввести пароль суперадміністратора. Для мене рішення було дієвим, тому в мене помилки зникли.

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

  • Setup password – ввести поточний пароль
  • Admin – email для входу суперадміністратора
  • Password – складний пароль
  • Password (again) – повторити складний пароль

Після цього натиснути на кнопку Add Admin.

Про успішне створення буде свідчити рядок:

Super admins – The following ‘super-admin‘ accounts have already been added to the database.

Після того, як суперкористувач створений, можна логінитись і надалі продовжувати налаштування Для цього переходимо на сторінку логіна http://postfixadmin.local/login.php

Вводимо дані суперадміністратора, які були створені на попередньому етапі та продовжуємо налаштування.

Так виглядає дашборд

Додаємо домен

На дашборді клацаємо кнопку “Overview“, і відкривається вікно де треба створити домен. Натискаємо кнопку Add Domain

У вікні Add a new domain буде декілька полів які треба заповнити:

  • Domain – мій домен для пошти як на цьому сайті – ostrich.kyiv.ua
  • Description – звичайний опис, поле не обов’язкове, але я його заповнив – Ostrich mail domain
  • Forwards – це кількість переадресацій поштових скриньок, я ввів 15 думаю достатньо
  • Mailboxes – це кількість поштових скриньок загалом які може бути створено в цьому поштовому сервері, я ввів 15 думаю достатньо
  • Mail server is backup MX – галочки не повинно бути, бо це основний сервер а не другорядний
  • Active – галочка повинна бути, щоб домен був активним
  • Add default mail aliases – якщо галочка встановлена то буде створено 4 аліаси: abuse, hostmaster, postmaster, webmaster

Додаємо поштову скриньку

На дашборді клацаємо кнопку “Add Mailboxes“, і відкривається вікно “Create a new mailbox for your domain.” де треба заповнити форму для нового користувача.

  • Username – назва користувача (поштової скриньки) для домену ostrich.kyiv.ua
  • Password – складний пароль
  • Password (again) – повторити складний пароль
  • Name – повне ім’я користувача
  • Quota – для тестового користувача встановив квоту на 10 мегабайт, проте якщо поле порожнє, тоді квота не застосовується
  • Active – поставив галочку щоб активувати цей емейл
  • Send Welcome mail – поставив галочку, щоб при тестуванні поштового клієнта отримати вітальний лист від сервера
  • Other e-mail – поштова скринька для відновлення пароля

Після заповнення форми клацаємо Add Mailbox і пошта миттєво створюється

Зміна конфігурації Postfix та Dovecot

В мене раніше було створено три файли конфігурації, їх треба змінити, а саме замінити ім’я користувача, пароль та назву БД для підключення, SQL запит залишається без змін. В мене ці файли знаходяться за базовою адресою: /etc/postfix/

  • mysql-virtual-mailbox-domains.cf
user = postfixuser
password = <password>
hosts = 127.0.0.1m
dbname = postfixadmin
query = SELECT domain FROM domain WHERE domain='%s' AND active = 1
  • mysql-virtual-mailbox-maps.cf
user = postfixuser
password = <password>
hosts = 127.0.0.1
dbname = postfixadmin
query = SELECT maildir FROM mailbox WHERE username='%s' AND active = 1
  • mysql-virtual-alias-maps.cf
user = postfixuser
password = <password>
hosts = 127.0.0.1
dbname = postfixadmin
query = SELECT goto FROM alias WHERE address='%s' AND active = 1

Конфігурація підключення до БД також повинна бути прописана в файлі dovecot-sql.conf.ext

driver = mysql
connect = host=127.0.0.1 dbname=postfixadmin user=postfixuser password=<password>
default_pass_scheme = SHA512-CRYPT
password_query = SELECT username as user, password FROM mailbox WHERE username = '%u' AND active = 1

Більше ніякий змін в конфігурацію не повинно бути внесено, тому можна перезавантажувати сервіси і перевіряти роботу пошти

sudo systemctl restart postfix
sudo systemctl restart dovecot

Перевірка пошти

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

Висновки

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

]]>
https://ostrich.kyiv.ua/uk/2025/05/19/%d0%bd%d0%b0%d0%bb%d0%b0%d1%88%d1%82%d1%83%d0%b2%d0%b0%d0%bd%d0%bd%d1%8f-postfixadmin-%d0%b4%d0%bb%d1%8f-%d0%ba%d0%b5%d1%80%d1%83%d0%b2%d0%b0%d0%bd%d0%bd%d1%8f-%d0%bf%d0%be%d1%88%d1%82%d0%be%d0%b2/feed/ 0
Моніторинг Postfix активності в Zabbix https://ostrich.kyiv.ua/uk/2025/03/30/%d0%bc%d0%be%d0%bd%d1%96%d1%82%d0%be%d1%80%d0%b8%d0%bd%d0%b3-postfix-%d0%b0%d0%ba%d1%82%d0%b8%d0%b2%d0%bd%d0%be%d1%81%d1%82%d1%96-%d0%b2-zabbix/ https://ostrich.kyiv.ua/uk/2025/03/30/%d0%bc%d0%be%d0%bd%d1%96%d1%82%d0%be%d1%80%d0%b8%d0%bd%d0%b3-postfix-%d0%b0%d0%ba%d1%82%d0%b8%d0%b2%d0%bd%d0%be%d1%81%d1%82%d1%96-%d0%b2-zabbix/#respond Sun, 30 Mar 2025 18:05:06 +0000 https://ostrich.kyiv.ua/?p=800 Вступ

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

Monitoring Postfix activity by Zabbix
Monitoring Postfix activity by Zabbix

Визначення типу відстеження

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

Статистика черги листів

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

Моніторинг кількості процесів

при коректній роботі в режимі простою сервера зазвичай запущено 5 процесів:

  • master – головний процес Postfix (управляє всіма іншими процесами).
  • qmgr – керує поштовою чергою, відповідає за доставку листів.
  • tlsmgr – керує TLS-сесіями для шифрування (якщо використовується).
  • pickup – обробляє нові повідомлення, що надходять до черги.
  • showq – показує стан поштової черги.

Під час аутентифікації, відправки або надсилання пошти кількість процесів збільшується до 9 або 10. Таким чином, якщо відбувається аутентифікація, навіть хибна, то це фіксується, і адміністратор може прийняти рішення щодо подальших дій щодо усунення атаки на сервер.ses to 9 or 10.

Підключення Postfix до Zabbix

Оскільки на сервері вже встановлено Zabbix Agent, то налаштування будуть простими, через файл конфігурації. Для цього необхідно в файлі конфігурації Zabbix Agent прописати параметри користувача для наших метрик.

Відкрити файл конфігурації, який зазвичай знаходиться за наступним шляхом:

sudo nano /etc/zabbix/zabbix_agentd.conf

Додати наступні рядки в кінець файлу:

# Settings for Postfix:
UserParameter=postfix.queue_size,postqueue -p | tail -n 1 | awk '{print ($5+0)}'
UserParameter=postfix.active_processes,ps aux | grep "[p]ostfix" | wc -l

Перезавантажити zabbix-agent:

sudo systemctl restart zabbix-agent

Створення Items у Zabbix

В меню Data Collection, вибрати підменю Hosts і в списку хостів клацнути на Items, а вже у вікні списку Items натиснути на кнопку Create item.

Для відстеження активних процесів Postfix (postfix.active_processes)

На вкладці Items:

  • Name: Postfix Active Processes
  • Type: Zabbix Agent
  • Key: postfix.active_processes
  • Type of Information: Numeric (unsigned)
  • Host interface: 127.0.0.1:10050
  • Update interval: 1m
  • Description: Postfix Active Processes
  • Enabled: checkbox

На вкладці Tags:

  • Name: Mail
  • Value: Postfix

Для перевірки коректності роботи айтемса необхідно протестувати його роботу та отримати бажане значення. Для цього натиснути кнопку TEST та GET VALUE як зображено на скріншоті

Так само створюємо другий айтемс для відстеження черги листів (postfix.queue_size), різниця буде виключно в ключі Key: postfix.queue_size, так само необхідно протестувати створений айтемс і отримати очікуваний результат – 0.

Перевірка збору даних

Через 1 хвилину Postfix починає збирати дані. Для того, щоб переглянути їх, необхідно перейти в меню Monitoring та вибрати Latest data. В фільтрі name вписати Postfix Active Processes. На сторінці Latest data буде колонка Last check, в ній повинно бути очікуване значення, в моєму випадку 5.

Створення графіку на робочому столі

Щоб графік відображався на дашборді, необхідно клацнути на кнопку ADD, автоматично відкриється вікно створення нового віджету, де необхідно заповнити наступні поля такими значеннями:

  • Type: Graph
  • Name: Mail
  • Refresh interval: Default 1m
  • Data set: select the host and items

Інші характеристики вкладки Data set, такі як колір, прозорість налаштовуються на ваш розсуд.

Визначення атаки на сервер та її усунення

Я регулярно стежу за активністю поштового сервера, і на дашборді, на графіку побачив доволі високу активність. Збільшивши діапазон дати до 2-х днів, я визначив дату та час початку такої атаки:

Подивившись логи Postfix за два останні дні, я визначив, що зловмисник брутфорсом підбирає логін для аутентифікації на моєму поштовому сервері, звісно це завершується із невдачею, проте на це витрачаються ресурси сервера:

sudo tail -f /var/log/mail.log
Mar 30 13:31:51 mail postfix/smtpd[1230298]: connect from unknown[196.251.92.50]
Mar 30 13:31:55 mail postfix/smtpd[1230298]: warning: unknown[196.251.92.50]: SASL LOGIN authentication failed: (reason unavailable), sasl_username=admin2
Mar 30 13:31:55 mail postfix/smtpd[1230298]: disconnect from unknown[196.251.92.50] ehlo=1 auth=0/1 quit=1 commands=2/3

Mar 30 13:35:13 mail postfix/smtpd[1230766]: connect from unknown[196.251.92.50]
Mar 30 13:35:17 mail postfix/smtpd[1230766]: warning: unknown[196.251.92.50]: SASL LOGIN authentication failed: (reason unavailable), sasl_username=back-up
Mar 30 13:35:17 mail postfix/smtpd[1230766]: disconnect from unknown[196.251.92.50] ehlo=1 auth=0/1 rset=1 quit=1 commands=3/4 

Для усунення цього інциденту я в налаштуваннях файерволу роутера заблокував вказану адресу і застосував правило. Після цього активність сервера повернулася в нормальний режим:

Висновки

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

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

]]>
https://ostrich.kyiv.ua/uk/2025/03/30/%d0%bc%d0%be%d0%bd%d1%96%d1%82%d0%be%d1%80%d0%b8%d0%bd%d0%b3-postfix-%d0%b0%d0%ba%d1%82%d0%b8%d0%b2%d0%bd%d0%be%d1%81%d1%82%d1%96-%d0%b2-zabbix/feed/ 0
Налаштування переадресації пошти в Postfix https://ostrich.kyiv.ua/uk/2025/03/26/%d0%bd%d0%b0%d0%bb%d0%b0%d1%88%d1%82%d1%83%d0%b2%d0%b0%d0%bd%d0%bd%d1%8f-%d0%bf%d0%b5%d1%80%d0%b5%d0%b0%d0%b4%d1%80%d0%b5%d1%81%d0%b0%d1%86%d1%96%d1%97-%d0%bf%d0%be%d1%88%d1%82%d0%b8-%d0%b2-postfix/ https://ostrich.kyiv.ua/uk/2025/03/26/%d0%bd%d0%b0%d0%bb%d0%b0%d1%88%d1%82%d1%83%d0%b2%d0%b0%d0%bd%d0%bd%d1%8f-%d0%bf%d0%b5%d1%80%d0%b5%d0%b0%d0%b4%d1%80%d0%b5%d1%81%d0%b0%d1%86%d1%96%d1%97-%d0%bf%d0%be%d1%88%d1%82%d0%b8-%d0%b2-postfix/#respond Wed, 26 Mar 2025 09:38:58 +0000 https://ostrich.kyiv.ua/?p=785 Вступ

Postfix — популярний агент передачі пошти (MTA), який дозволяє налаштовувати переадресацію пошти через різні механізми. Цей посібник охоплює налаштування переадресації на рівні користувача.

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

home_mailbox = Maildir/

Оскільки користувачі створюються як локальні системні акаунти, для переадресації потрібно використовувати файл ~/.forward для кожного конкретного користувача.

Для налаштувань потрібно виконати три простих крок

  • Створення файлу для переадресації
  • Ідентифікація пересланих листів
  • Перевірка переадресації

Створення файлу для переадресації

Для створення файлу переадресації скористайтеся терміналом з правами суперкористувача. В цьому прикладі я використаю акаунт “ostrich”.

sudo nano /home/ostrich/.forward

Додайте лише адресу, на яку буде пересилатися пошта:

[email protected]

З таким налаштуванням переслана пошта не зберігатиметься на сервері. Щоб зберігати переслану пошту на сервері, потрібно додати ім’я користувача перед слешем, після чого переслана пошта залишатиметься на сервері.

\ostrich, [email protected]

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

chmod 600 /home/ostrich/.forward
chown ostrich:ostrich /home/ostrich/.forward

Ідентифікація пересланого листа

У Postfix можна додавати ідентифікатор або підпис до пересланих листів. Я зроблю це за допомогою header_checks. Цей метод дозволяє змінювати заголовки повідомлення перед пересиланням.

У конфігураційному файлі main.cf необхідно додати наступний рядок:

header_checks = regexp:/etc/postfix/header_checks

Оскільки цей файл ще не створений, необхідно створити його і додати рядок обробки заголовку:

sudo nano /etc/postfix/header_checks

Додайте наступний рядок:

/^Received:/ PREPEND X-Forwarded-By: Ostrich Mail

Цей рядок додає новий заголовок X-Forwarded-By: Ostrich Mail до кожного листа, який проходить через Postfix і містить заголовок Received.

Після цього перезавантажте службу Postfix:

systemctl restart postfix

Тепер можна перейти до перевірки.

Перевірка переадресації

Я надіслав лист з акаунта Gmail на свою пошту Ostrich, яка була переадресована на сервер Hotmail.

Залогінівшись на Hotmail, я відкрив лист і переглянув заголовки.

X-Forwarded-By: Ostrich Mail

Запис X-Forwarded-By був присутній, що підтверджує правильність налаштувань і роботу сервісу в цілому.

Висновки

Процес налаштування переадресації пошти в Postfix можна ефективно налаштувати, створивши файл ~/.forward та використовуючи header_checks для додавання ідентифікаторів, таких як X-Forwarded-By. Це забезпечує як правильну переадресацію повідомлень, так і чітку ідентифікацію пересланих листів.

]]>
https://ostrich.kyiv.ua/uk/2025/03/26/%d0%bd%d0%b0%d0%bb%d0%b0%d1%88%d1%82%d1%83%d0%b2%d0%b0%d0%bd%d0%bd%d1%8f-%d0%bf%d0%b5%d1%80%d0%b5%d0%b0%d0%b4%d1%80%d0%b5%d1%81%d0%b0%d1%86%d1%96%d1%97-%d0%bf%d0%be%d1%88%d1%82%d0%b8-%d0%b2-postfix/feed/ 0