====== Postfix - instalacja i konfiguracja ======
Poniższe HOWTO oparte jest na konfiguracji poprzez HOWTO dostępnym tutaj: http://bsdbox.co/2014/01/28/mail-server-postfix-dovecot-on-freebsd/ \\
a następnie modyfikowane pod własne potrzeby.
===== Wymagane pakiety dodatkowe =====
Werfyfikację certyfikatów SSL będziemy przeprowadzać poprzez zbiór CA Mozilli. Instalujemy:
pkg install -y ca_root_nss
===== Instalacja Postfix-a z portów =====
Wchodzimy do ''/usr/ports/mail/postfix'', wydajemy polecenie ''make configure'' i dostosowujemy opcje:
===> The following configuration options are available for postfix210-2.10.3,1:
BDB=off: Berkeley DB (uses WITH_BDB_VER)
CDB=off: CDB maps lookups
INST_BASE=off: Install into /usr and /etc/postfix
LDAP_SASL=off: OpenLDAP client-to-server SASL auth
MYSQL=off: MySQL maps (uses WITH_MYSQL_VER)
NIS=off: NIS maps lookups
OPENLDAP=off: OpenLDAP maps (uses WITH_OPENLDAP_VER)
PCRE=on: Perl Compatible Regular Expressions
PGSQL=off: PostgreSQL maps (uses DEFAULT_PGSQL_VER)
SASL2=off: Cyrus SASLv2 (Simple Auth. and Sec. Layer)
SPF=on: SPF support (via libspf2 1.2.x)
SQLITE=off: SQLite maps
TEST=off: SMTP/LMTP test server and generator
TLS=on: SSL and TLS support
VDA=off: VDA (Virtual Delivery Agent 32Bit)
====> Dovecot SASL authentication methods: you can only select none or one of them
DOVECOT=off: Dovecot 1.x SASL authentication method
DOVECOT2=on: Dovecot 2.x SASL authentication method
====> Kerberos network authentication protocol type: you can only select none or one of them
SASLKRB5=off: If your SASL req. Kerberos5, select this
SASLKMIT=off: If your SASL req. MIT Kerberos5, select this
Względem ustawień domyślnych, zmieniono opcje:
===> The following configuration options are available for postfix210-2.10.3,1:
SPF=on: SPF support (via libspf2 1.2.x)
TLS=on: SSL and TLS support
====> Dovecot SASL authentication methods: you can only select none or one of them
DOVECOT2=on: Dovecot 2.x SASL authentication method
Po zatwierdzeniu konfiguracji wydajemy polecenie ''make install clean''.\\
Po kompilacji, przy instalowaniu, otrzymamy pytanie:\\
\\
''Would you like to activate Postfix in /etc/mail/mailer.conf [n]? **y**''\\
\\
Pogrubioną czcionką zostały wyróżnione odpowiedzi jakich należy udzielić na pytania.\\
==== Konfiguracja po kompilacji =====
Na początku wyłączymy sendmail-a:
''/etc/rc.d/sendmail stop''
oraz wyedytujemy plik ''/etc/rc.conf'' tak by nie włączał się po restarcie systemu. W tym celu do pliku ''/etc/rc.conf'' dodajmy linie:
''sendmail_enable=”NONE”\\
sendmail_submit_enable=”NO”\\
sendmail_outbound_enable=”NO”\\
sendmail_msp_queue_enable=”NO”''\\
Oraz zabijmy sendmail-a:
''# **killall sendmail**''
Następnie trzeba będzie wyedytować konfigurację postfix-a. Plik konfiguracyjny znajduje się w katalogu ''/usr/local/etc/postfix/main.cf''. Ustawiamy następujące opcje:
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 = mail.domena.pl !!! ZMIEN TUTAJ !!!
mydomain = domena.pl !!! ZMIEN TUTAJ !!!
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, localhost
unknown_local_recipient_reject_code = 550
mynetworks_style = host
relay_domains = $mydestination
recipient_delimiter = +
home_mailbox = Maildir/
smtpd_banner = $myhostname ESMTP $mail_name
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, ipv6
smtp_address_preference = ipv6
Następnie do danego konfigu dorzucamy SASL-a:
# SASL
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
broken_sasl_auth_clients = yes
oraz TLS:
# TLS
smtpd_use_tls = yes
smtpd_tls_auth_only = yes
smtpd_tls_loglevel = 1
smtpd_tls_key_file = /etc/ssl/postfix/file.key !!! TUTAJ KLUCZ !!!
smtpd_tls_cert_file = /etc/ssl/postfix/file.crt !!! TUTAJ CERT !!!
smtpd_tls_CAfile = /etc/ssl/postfix/file.pem !!! TUTAJ OPCJONALNIE CA !!!
#smtpd_tls_CApath = /path/to/certs/
smtpd_tls_received_header = yes
tls_random_source = dev:/dev/urandom
smtpd_tls_security_level = may
#smtpd_tls_ciphers = high
#smtpd_tls_exclude_ciphers = aNULL, DES, 3DES, MD5, DES+MD5, RC4
#smtpd_tls_protocols = TLSv1, !SSLv2, !SSLv3
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtpd_tls_session_cache_timeout = 3600s
smtpd_relay_restrictions =
permit_mynetworks
permit_sasl_authenticated
reject_unauth_destination
smtpd_recipient_restrictions =
permit_mynetworks
permit_sasl_authenticated
reject_unauth_destination
smtp_use_tls = yes
smtp_tls_security_level = may
smtp_tls_note_starttls_offer = yes
smtp_tls_loglevel = 1
smtp_tls_CAfile = /usr/local/share/certs/ca-root-nss.crt
===== Instalacja Dovecot (obsługa POP3, IMAP oraz SMTP AUTH) =====
Instalujemy dovecot2 z domyślnymi opcjami:
===> The following configuration options are available for dovecot2-2.2.10:
DOCS=on: Build and/or install documentation
EXAMPLES=on: Build and/or install examples
GSSAPI=off: GSSAPI support
KQUEUE=on: kqueue(2) support
LDAP=off: LDAP support
LIBWRAP=off: TCP wrapper support
LUCENE=off: CLucene FTS support
MYSQL=off: MySQL database support
PGSQL=off: PostgreSQL database support
SOLR=off: Solr FTS support
SQLITE=off: SQLite database support
SSL=on: SSL protocol support
VPOPMAIL=off: vpopmail support
A więc wystarczy:
pkg install -y dovecot2
==== Konfiguracja Dovecot-a ====
Przykładowe pliki konfiguracyjne znajdują się w ''/usr/local/share/doc/dovecot/example-config/''. Kopiujemy z tamtąd do ''/usr/local/etc/dovecot/'':
dovecot.conf
conf.d/*
Następnie edytujemy opcje w plikach:
* dovecot.conf
protocols = imap pop3 lmtp
listen = *, ::
* conf.d/10-ssl.conf
ssl = yes
ssl_cert =
* conf.d/10-auth.conf
disable_plaintext_auth = yes
auth_mechanisms = plain login
* conf.d/10-mail.conf
mail_location = maildir:~/Maildir:LAYOUT=fs
maildir_copy_with_hardlinks = yes
* conf.d/10-master.conf
#unix_listener auth-userdb { !!! TUTAJ KOMENTUJEMY LINIE !!!
#mode = 0666
#user =
#group =
#} !!! TUTAJ KOMENTUJEMY LINIE !!!
# Postfix smtp-auth
unix_listener /var/spool/postfix/private/auth { !!! TUTAJ ZDEJMUJEMY KOMENTARZE !!!
mode = 0666
user = postfix
group = postfix
} !!! TUTAJ ZDEJMUJEMY KOMENTARZE !!!
===== Uruchamianie =====
Dodajemy do ''/etc/rc.conf'':
dovecot_enable="YES"
postfix_enable="YES"
A następnie uruchamiamy:
service dovecot start
service postfix start
===== Testowanie =====
Na początek prosty test za pomocą polecenia telnet: \\
\\
''
# **telnet localhost 25** \\
Trying ::1... \\
Connected to localhost. \\
Escape character is '^]'. \\
220 mky.name ESMTP Postfix \\
**EHLO test** \\
250-//host.domena.com.pl// \\
250-PIPELINING \\
250-SIZE 10240000 \\
250-VRFY \\
250-ETRN \\
250-STARTTLS \\
250-AUTH PLAIN LOGIN \\
250-AUTH=PLAIN LOGIN \\
250-ENHANCEDSTATUSCODES \\
250-8BITMIME \\
250 DSN \\
''
Istotne są wpisy ''250-STARTTLS'' oraz ''250-AUTH PLAIN LOGIN'' mówiące o sposobie autoryzacji.\\
\\
Dodatkowo można sprawdzić czy nasz host rzeczywiście nie jest //openrelay//. Otwieramy przeglądarkę www i otwieramy stronę: http://www.spamhelp.org/shopenrelay/
Na stronie głównej mamy formularz, w którym podajemy adres IP który chcemy przetestować:
{{:wiki:freebsd:postfix:spamhelp_open_relay_test.png|}}
Pole ''report open relays to DSBL (Distributed Sender Blackhole List)'' proponuję zostawić odznaczone. Nie zostaniemy dopisani do bazy spammerów, gdyby test wyszedł niekorzystanie. Po wcisnięciu przycisku ''Test'' otrzymamy wynik:
{{:wiki:freebsd:postfix:spamhelp_open_relay_result.png|}}
Jeśli wszystko poszło OK, otrzymamy wynik **''successful''**.