Postfix pada server pengembangan, memungkinkan surat untuk dikirim hanya ke satu domain


11

Kami memiliki postfix pada server pengembangan kami, dan saya ingin agar hanya dapat mengirim email ke domain kami, bukan ke domain lain, mencegah pengguna luar menerima surat secara tidak sengaja dari server pengembangan kami.

Saya mencari di seluruh dokumen, mencoba beberapa hal tetapi masih mengirim ke semua domain ...

Jawaban:


7

transport (5) peta digunakan untuk mendefinisikan kembali bagaimana email dialihkan oleh postfix.

  • Tambahkan baris berikut ke /etc/postfix/main.cf:

    transport_maps = hash:/etc/postfix/transport
    
  • Tambahkan file baru / etc / postfix / transport dengan konten ini:

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

Ganti example.comdengan domain yang harus dikirimi oleh server surat Anda. Jika Anda tidak peduli dengan sub-domain, maka hapus baris pertama.

Jangan lupa untuk meng-hash file setelah mengeditnya dengan postmap (1) dan memuat ulang postfix sehingga perubahan dapat berlaku:

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

7

Anda dapat dengan mudah membatasi penerima dengan standar smtpd_recipient_restrictions atau lebih tepatnya check_recipient_access .

Cukup buat tabel akses (5)/etc/postfix/access dengan konten berikut ( example.com menjadi domain yang Anda inginkan untuk mengirim email):

example.com    OK

Anda juga dapat mengizinkan hanya beberapa alamat tertentu:

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

Jangan lupa untuk hash file setelah mengeditnya dengan postmap (1) :

# postmap /etc/postfix/access

Sekarang masukkan batasan penerima berikut di main.cf Anda:

smtpd_recipient_restrictions = 
    hash:/etc/postfix/access
    reject

dan memuat ulang Postfix:

postfix reload

Setelah itu, ujilah jika berhasil .


1
Itu akan bekerja untuk surat yang dikirim melalui SMTP, bukan melalui / usr / lib / sendmail dan proses lokal dapat melakukan keduanya. Tampaknya pengaturan 'otor_submit_users' dapat digunakan untuk memblokir pengiriman lokal dengan sendmail / postdrop, maka pembatasan smtpd akan cukup.
Jacek Konieczny

6

Jadi jika seseorang menemukan ini seperti yang saya lakukan: jawabannya memang header_checks dan berfungsi seperti ini:

  • Tambahkan baris berikut ke /etc/postfix/main.cf:

    header_checks = regexp:/etc/postfix/header_checks
    
  • Tambahkan file baru /etc/postfix/header_checksdengan konten ini:

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

Ganti allowed-domain.comdengan domain yang harus dikirimi oleh server surat Anda. Ganti redirect@example.comdengan alamat email semua email lain harus diarahkan ke.

Jika Anda perlu mengizinkan beberapa domain, baris pertama akan terlihat seperti ini:

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

Alih-alih mengarahkan, Anda dapat dengan mudah mengirim semua email lain. Ganti baris kedua di atas dengan:

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

Penjelasan:

  • Postfix melewati header surat satu per satu.
  • Setiap baris tajuk akan dicocokkan dengan header_checksfile baris demi baris.
  • Jika cocok dengan baris pertama ( To:berisi domain yang diizinkan), itu akan melompat ke baris header berikutnya dan mulai memeriksa header lagi dari atas. Karena tidak ada saluran lain yang cocok, ini berarti surat dikirimkan.
  • Jika cocok dengan baris kedua ( To:berisi alamat email eksternal lain), itu mengarahkan ulang surat.

masalah ini tampaknya telah dipecahkan dengan jawaban ini, mungkin harus ditandai sebagai dipecahkan? (Setidaknya itu berfungsi seperti pesona bagi saya)
Sverre

bagaimana dengan Cc:dan Bcc:?
Paul Tobias

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.