Denne posten beskriver 6 enkle steg for å sette opp Postfix til å videresende mail via tredjeparts mailserver med autentisering via SASL. Jeg kjører Postfix på FreeBSD, så filstier vil variere noe mellom de forskjellige *nix-variantene. Linux har heller ikke ports, så der får man enten bruke det distromaintainer mener man bør ha, eller kompilere sin egen fra kildekode.
+---------------------------- postfix-3.3.0_1,1 -------------------------------+ | +--------------------------------------------------------------------------+ | | | [ ] BDB Berkeley DB support | | | | [ ] BLACKLISTD Enable blacklistd support (FreeBSD 11.0 and later only) | | | | [ ] CDB CDB maps lookups | | | | [x] DOCS Build and/or install documentation | | | | [x] EAI Email Address Internationalization (SMTPUTF8) support | | | | [ ] INST_BASE Install into /usr and /etc/postfix | | | | [ ] LDAP LDAP maps (uses WITH_OPENLDAP_VER) | | | | [ ] LDAP_SASL LDAP client-to-server SASL auth | | | | [ ] LMDB LMDB maps | | | | [ ] MYSQL MySQL database support | | | | [ ] NIS Network Information Services/YP support | | | | [x] PCRE Use Perl Compatible Regular Expressions | | | | [ ] PGSQL PostgreSQL database support | | | | [x] SASL Cyrus SASL support (Dovecot SASL is always built in) | | | | [ ] SQLITE SQLite database support | | | | [ ] TEST SMTP/LMTP test server and generator | | | | [x] TLS Secure network connection support via TLS | | | |-------------- Kerberos network authentication protocol type -------------| | | | ( ) SASLKRB5 If your SASL req. Kerberos5, select this | | | | ( ) SASLKMIT If your SASL req. MIT Kerberos5, select this | | | +--------------------------------------------------------------------------+ | +------------------------------------------------------------------------------+ | < OK > <Cancel> | +------------------------------------------------------------------------------+
Dette er alt som trengs for formålet. Pass på å få med SASL-støtte, ellers vil ikke autentisering mot relayhost fungere. Den innebygde Dovecot SASL-støtten ser ikke ut til å fungere helt som den skal; jeg har hvertfall ikke fått AUTH mot relayhost til å fungere uten Cyrus SASL.
Andre ting å passe på angående Postfix:
Hvis innstillingene over ikke fungerer, må du sjekke at Postfix har blitt kompilert med SASL-støtte. Hvis installasjonen din av Postfix ikke har dette, må du muligens oppgradere til siste versjon av Postfix. Pass på å velge SASL via Cyrus-SASL. Hvis systemet ditt ikke har blitt oppdatert på en stund må muligens Perl, libicu og en rekke andre ports for å få alt på stell.
freebsd-update og portmaster/portupgrade kan være hensiktsmessig å kjøre først.
Fungerende config:
Endre myhostname = SERVER.NAME.CHANGE.ME og relayhost = [MAIL.SERVER.COM]:587:
/usr/local/etc/postfix/main.cf:
queue_directory = /var/spool/postfix command_directory = /usr/local/sbin daemon_directory = /usr/local/libexec/postfix data_directory = /var/db/postfix mail_owner = postfix myhostname = SERVER.NAME.CHANGE.ME inet_interfaces = all unknown_local_recipient_reject_code = 550 mynetworks_style = subnet relayhost = [MAIL.SERVER.COM]:587 smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/usr/local/etc/postfix/relay_passwd smtp_sasl_security_options = debug_peer_level = 2 debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $daemon_directory/$process_name $process_id & sleep 5 sendmail_path = /usr/local/sbin/sendmail newaliases_path = /usr/local/bin/newaliases mailq_path = /usr/local/bin/mailq setgid_group = maildrop html_directory = /usr/local/share/doc/postfix manpage_directory = /usr/local/man sample_directory = /usr/local/etc/postfix readme_directory = /usr/local/share/doc/postfix inet_protocols = ipv4 smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination compatibility_level = 2 append_dot_mydomain = yes relay_domains = $mydestination smtputf8_enable = no
Merk at denne configen kun gjør at serveren kan sende mail UT - Postfix tar ikke imot mail fra utsiden, den vet ingenting om eventuelle lokale brukere. Alt den gjør er å ta imot mail fra systemet og sende det til serveren angitt i relayhost. Configen mangler direktiver for oppsett av SSL/TLS for SMARTTLS og kryptert kommunikasjon/handshake med mottagende server. Dette kommer etterhvert og vil da bli lagt inn.