Narzędzia użytkownika

Narzędzia witryny


freebsd:ports:postfix

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 = </etc/ssl/postfix/file.crt                  !!! TUTAJ CERT  !!!
ssl_key = </etc/ssl/postfix/file.key                   !!! TUTAJ KLUCZ !!!
ssl_ca = </etc/ssl/postfix/file.pem                    !!! TUTAJ OPCJONALNIE CA !!!
  • 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ć:

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:

Jeśli wszystko poszło OK, otrzymamy wynik successful.

freebsd/ports/postfix.txt · ostatnio zmienione: 2014/07/30 18:25 przez mky