Wysyłka pośrednia maili z użyciem Postfix

Czasem część oprogramowania które instalujemy na naszym serwerze, podczas wysyłki emaili nie współpracuje z najnowszymi standardami szyfrowania TLS. W poniższym przypadku opiszę rozwiązanie problemu, z jakim natknąłem się podczas wdrażania Wazuh-a który nie ma natywnie tego wsparcia.

Poniższy przykład możemy również wykorzystać podczas wysyłki maili z poziomu php.


Konfiguracja

Na początku należy zainstalować wymagane pakiety:

apt-get update 
apt-get install postfix mailutils libsasl2-2 ca-certificates libsasl2-modules

Następnie należy skonfigurować usługę Postfix poprzez podmianę pliku konfiguracyjnego na:

/etc/postfix/main.cf

relayhost = [smtp.kamdev.pl]:465

smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous

smtp_tls_wrappermode = yes
smtp_tls_security_level = encrypt

myhostname = kamdev.pl
myorigin = kamdev.pl

sender_canonical_classes = envelope_sender, header_sender
sender_canonical_maps = hash:/etc/postfix/sender_canonical

Gdybyśmy teraz spróbowali wysłać maila przez ssh z konta root, pojawił by się problem. Z jakiego użytkownika byśmy go wysłali? Z root-a, a przecież tego nie chcemy.

Aby uniknąć tego problemu z mapowaniami użytkowników, dodajemy plik:

/etc/postfix/sender_canonical

root@kamdev.pl    kontakt@kamdev.pl
root kontakt@kamdev.pl
@kamdev.pl kontakt@kamdev.pl
@localdomain kontakt@kamdev.pl

Teraz musimy podać nasze hasło do naszego konta pocztowego

/etc/postfix/sasl_passwd

[smtp.kamdev.pl]:465 kontakt@kamdev.pl:<hasło_do_poczty>

Następnie musimy nadać odpowiednie uprawnienia i wygenerować mapy:

chmod 600 /etc/postfix/sasl_passwd
postmap /etc/postfix/sasl_passwd
postmap /etc/postfix/sender_canonical
systemctl restart postfix

Test

Po wszystkim. pozostaje nam tylko przetestowanie naszej konfiguracji:

echo "Test mail from postfix" | mail -s "Test Postfix" -r "kontakt@kamdev.pl" testowy-mail@kamdev.pl

Powinniśmy otrzymać maila na skrzynkę  testowy-mail@kamdev.pl.


W razie problemów możemy wykonać komendę:

mailq

aby sprawdzić czy mail nie utknął w kolejce.

W ostateczności, gdy kolejka będzie pusta należy sprawdzić logi wykonując:

tail -f /var/log/mail.log

Kamil Mirończuk

I kiedy czegoś gorąco pragniesz, to cały wszechświat sprzyja potajemnie twojemu pragnieniu
~Paulo Coelho

Komentarze

Zostaw komentarz

Twój adres mailowy NIE zostanie opublikowany. W razie otrzymania zapytania, otrzymasz na niego odpowiedź.
Wymagane pola są oznaczone jako *