Geliştirme sunucusunda Postfix, postanın sadece bir alana gönderilmesine izin ver


11

Geliştirme sunucumuzda postfix var ve diğer alanlara değil, yalnızca alan adımıza posta gönderebilmesini ve dışarıdaki kullanıcıların yanlışlıkla geliştirme sunucumuzdan posta almasını engellemesini istiyorum.

Dokümanları araştırdım, birkaç şey denedim ama yine de tüm alan adlarına gönderiyor ...

Yanıtlar:


7

transport (5) haritaları, e-postanın postfix ile nasıl yönlendirileceğini yeniden tanımlamak için kullanılır.

  • /Etc/postfix/main.cf dosyasına aşağıdaki satırı ekleyin:

    transport_maps = hash:/etc/postfix/transport
    
  • Bu içeriği kullanarak yeni / etc / postfix / transport dosyasını ekleyin:

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

Değiştir example.comsizin Mailserver hala postalar göndermesi gerektiğini etki alanı ile. Alt alan adlarıyla ilgilenmiyorsanız, ilk satırı kaldırın.

Postmap (1) ile düzenledikten sonra dosyayı karmayı unutmayın ve değişikliklerin etkili olabilmesi için postfix'i yeniden yükleyin:

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

7

Alıcıları standart smtpd_recipient_restrictions veya daha kesin olarak check_recipient_access ile kolayca kısıtlayabilirsiniz .

Aşağıdaki içeriğe sahip bir erişim (5) tablosu oluşturmanız yeterlidir/etc/postfix/access ( example.com , posta göndermesine izin vermek istediğiniz alan adıdır):

example.com    OK

Ayrıca yalnızca belirli adreslere de izin verebilirsiniz:

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

Postmap (1) ile düzenledikten sonra dosyayı karmayı unutmayın :

# postmap /etc/postfix/access

Şimdi main.cf dosyasına aşağıdaki alıcı kısıtlamalarını ekleyin:

smtpd_recipient_restrictions = 
    hash:/etc/postfix/access
    reject

ve Postfix'i yeniden yükleyin:

postfix reload

Bundan sonra, işe yarayıp yaramadığını test edin .


1
Bu, / usr / lib / sendmail komutu ile değil, SMTP üzerinden gönderilen postalar için çalışacaktır ve yerel işlemler her ikisini de yapabilir. 'Yetkili_submit_users' ayarının sendmail / postdrop ile yerel gönderimi engellemek için kullanılabileceği anlaşılıyor, o zaman smtpd kısıtlamaları yeterli olacaktır.
Jacek Konieczny

6

Birisi benim yaptığım gibi tökezlediğinde: cevap gerçekten header_checks ve bu şekilde çalışır:

  • Aşağıdaki satırı ekleyin /etc/postfix/main.cf:

    header_checks = regexp:/etc/postfix/header_checks
    
  • /etc/postfix/header_checksBu içeriği içeren yeni dosyayı ekleyin :

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

Değiştir allowed-domain.comsizin Mailserver hala postalar göndermesi gerektiğini etki alanı ile. redirect@example.comDiğer tüm e-postaların yönlendirileceği e-posta adresiyle değiştirin .

Birden fazla alana izin vermeniz gerekiyorsa, ilk satır aşağıdaki gibi görünmelidir:

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

Yeniden yönlendirmek yerine diğer tüm postaları kolayca bırakabilirsiniz. Yukarıdaki ikinci satırı aşağıdaki ile değiştirin:

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

Açıklama:

  • Postfix posta başlıklarını tek tek geçiyor.
  • Her başlık satırı header_checksdosyaya satır satır eşleştirilir .
  • İlk satırla eşleşiyorsa ( To:izin verilen alan adını içerir), bir sonraki başlık satırına atlar ve başlık kontrollerini tekrar üstten başlatır. Başka hiçbir satır eşleşmeyeceğinden, bu, postanın teslim edildiği anlamına gelir.
  • İkinci satırla eşleşiyorsa ( To:başka bir harici e-posta adresi içerir), postayı yeniden yönlendirir.

Bu sorunun bu cevabı ile çözülmüş olduğu anlaşılıyor, belki çözülmüş olarak işaretlenmelidir? (en azından benim için bir cazibe gibi çalıştı)
Sverre

Ne hakkında Cc:ve Bcc:?
Paul Tobias

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.