Postfix на сервері розробки, дозволяє відправляти пошту лише одному домену


11

На нашому сервері розробки є постфікс, і я хотів би, щоб він міг надсилати пошту лише до нашого домену, а не до інших доменів, не дозволяючи стороннім користувачам випадково отримувати пошту з нашого сервера розробки.

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

Відповіді:


7

карти транспорту (5) використовуються для перегляду способу маршрутизації електронної пошти за допомогою Postfix.

  • Додайте наступний рядок до /etc/postfix/main.cf:

    transport_maps = hash:/etc/postfix/transport
    
  • Додайте новий файл / etc / postfix / транспорт із цим вмістом:

    .example.com   :
    example.com    :
    *              discard:
    

Замініть example.comдомен, на який поштовий сервер все ще повинен надсилати пошту. Якщо вас не хвилює субдомени, видаліть перший рядок.

Не забудьте розмістити файл після його редагування за допомогою поштової карти (1) та перезавантажити постфікс, щоб зміни набрали чинності:

# postmap /etc/postfix/transport && postfix reload

7

Ви можете легко обмежити одержувачів стандартними smtpd_recipient_restrictions або точніше check_recipient_access .

Просто створіть таблицю доступу (5)/etc/postfix/access із наступним вмістом ( example.com - домен, на який ви можете дозволити надсилати пошту):

example.com    OK

Ви також можете дозволити лише деякі конкретні адреси:

user1@example.com    OK
user2@example.com    OK

Не забудьте розмістити файл, відредагувавши його за допомогою поштової карти (1) :

# postmap /etc/postfix/access

Тепер поставте такі обмеження для одержувачів у своєму main.cf:

smtpd_recipient_restrictions = 
    hash:/etc/postfix/access
    reject

та перезавантажте Postfix:

postfix reload

Після цього перевірте, чи працює .


1
Це буде працювати для пошти, що надсилається через SMTP, а не через команду / usr / lib / sendmail, і локальні процеси можуть виконувати і те, і інше. Здається, що параметр "санкціоновані_суб'єкт_користувачі" може використовуватися для блокування локального подання sendmail / postdrop, тоді обмежень smtpd буде достатньо.
Jacek Konieczny

6

Тож якщо хтось натрапляє на це так, як я робив: відповідь справді заголовок_checks і він працює як такий:

  • Додайте наступний рядок до /etc/postfix/main.cf:

    header_checks = regexp:/etc/postfix/header_checks
    
  • Додайте новий файл /etc/postfix/header_checksіз цим вмістом:

    /^To:.*@allowed-domain.com/  DUNNO
    /^To:.*@/   REDIRECT redirect@example.com
    

Замініть allowed-domain.comдомен, на який поштовий сервер все ще повинен надсилати пошту. Замініть redirect@example.comелектронною адресою всі інші електронні листи, на які слід переадресувати.

Якщо вам потрібно дозволити кілька доменів, перший рядок повинен виглядати так:

/^To:.*@(allowed-domain.com|another-domain.com)/  DUNNO

Замість переадресації ви можете просто скинути всі інші листи. Замініть другий рядок вище на:

/^To:.*@/   DISCARD No outgoing mails allowed

Пояснення:

  • Postfix проходить через заголовки пошти по одному.
  • Кожен рядок заголовка порівнюється з header_checksфайлом по рядку.
  • Якщо він відповідає першому рядку ( To:містить дозволений домен), він переходить до наступного рядка заголовка і запускає заголовок знову перевіряється зверху. Оскільки жоден інший рядок не збігатиметься, це означає, що пошта буде доставлена.
  • Якщо він відповідає другому рядку ( To:містить ще одну зовнішню адресу електронної пошти), він перенаправляє пошту.

ця проблема, здається, була вирішена цією відповіддю, можливо, її слід позначити як вирішену? (це спрацювало як принадність для мене щонайменше)
Sverre

про що Cc:і Bcc:?
Пол Тобіас

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.