====== 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''**.