Postfix

Το Postfix είναι ο προεπιλεγμένος Mail Transfer Agent (MTA) του Ubuntu. Φιλοδοξεί να είναι γρήγορος, ευδιαχείριστος και ασφαλής. Είναι συμβατός με τον MTA sendmail. Σε αυτή την ενότητα περιγράφεται η εγκατάσταση και ρύθμιση του postfix. Επίσης, περιγράφεται η χρήση του ως εξυπηρετητή SMTP με χρήση ασφαλούς σύνδεσης (για την ασφαλή αποστολή email).

[Σημείωση]

Αυτός ο οδηγός δεν καλύπτει την εγκατάσταση Εικονικών τομέων (Virtual Domains) για το Postfix. Για πληροφορίες σχετικά με τους εικονικούς τομείς και άλλες προχωρημένες δυνατότητες, δείτε το “Αναφορές”.

Εγκατάσταση

Για να εγκαταστήσετε το postfix εκτελέστε την ακόλουθη εντολή:

sudo apt-get install postfix

Απλά πατήστε enter όποτε εμφανίζονται ερωτήσεις. Στο επόμενο στάδιο θα κάνετε λεπτομερέστερες ρυθμίσεις

Βασικές ρυθμίσεις

Για να ρυθμίσετε το postfix εκτελέστε την ακόλουθη εντολή:

sudo dpkg-reconfigure postfix

Θα εμφανιστεί η διεπαφή χρήστη. Σε κάθε οθόνη επιλέξτε τις ακόλουθες τιμές:

  • Internet Site

  • mail.example.com

  • steve

  • mail.example.com, localhost.localdomain, localhost

  • No

  • 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 192.168.0.0/24

  • 0

  • +

  • all

[Σημείωση]

Αντικαταστήστε το mail.example.com με τον τομέα για το οποίο θα αποδέχεστε email. Επίσης, το 192.168.0.0/24 με το δίκτυο και το εύρος (class range) του δικού σας εξυπηρετητή email, και το steve με το κατάλληλο όνομα χρήστη.

Τώρα είναι η κατάλληλη στιγμή να αποφασίσετε τη μορφή της ταχυδρομικής θυρίδας (mailbox) που θα χρησιμοποιήσετε. Η προεπιλογή του Postfix είναι το mbox. Αντί να τροποποιήσετε απευθείας το αρχείο ρυθμίσεων, μπορείτε να χρησιμοποιήσετε την εντολή postconf για να ρυθμίσετε όλες τις παραμέτρους του postfix. Οι παράμετροι βρίσκονται αποθηκευμένες στο αρχείο /etc/postfix/main.cf. Αργότερα, αν επιθυμείτε να τροποποιήσετε μια συγκεκριμένη παράμετρο, μπορείτε είτε να τρέξετε την εντολή, είτε να κάνετε την αλλαγή απευθείας στο αρχείο.

Για να ρυθμίσετε τη μορφή της ταχυδρομικής θυρίδας ως Maildir εκτελέστε:

sudo postconf -e 'home_mailbox = Maildir/'
[Σημείωση]

Έτσι, τα νέα μηνύματα θα τοποθετούνται στο /home/όνομαχρήστη/Maildir. Θα πρέπει να ρυθμίσετε το Mail Delivery Agent (MDA) ώστε να χρησιμοποιεί την ίδια διαδρομή.

Πιστοποίηση SMTP

Το SMTP-AUTH επιτρέπει σε πελάτες να ταυτοποιούνται μέσω ενός μηχανισμού πιστοποίησης (SASL). Θα πρέπει να χρησιμοποιείται Transport Layer Security (TLS) για την κρυπτογράφηση της διαδικασίας πιστοποίησης. Μετά την πιστοποίηση, ο εξυπηρετητής SMTP θα επιτρέπει στον πελάτη να διαβιβάζει email.

  1. Ρυθμίστε το Postfix ώστε να χρησιμοποιεί SMTP-AUTH μέσω SASL (Dovecot SASL):

    sudo postconf -e 'smtpd_sasl_type = dovecot'
    sudo postconf -e 'smtpd_sasl_path = private/auth-client'
    sudo postconf -e 'smtpd_sasl_local_domain ='
    sudo postconf -e 'smtpd_sasl_security_options = noanonymous'
    sudo postconf -e 'broken_sasl_auth_clients = yes'
    sudo postconf -e 'smtpd_sasl_auth_enable = yes'
    sudo postconf -e 'smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination'
    sudo postconf -e 'inet_interfaces = all'
    
    [Σημείωση]

    To smtpd_sasl_path είναι μια σχετική διαδρομή που καθορίζεται σε σχέση με τον κατάλογο ουράς του Postfix.

  2. Στη συνέχεια, αποκτήστε ένα ψηφιακό πιστοποιητικό για το TLS. Δείτε το “Πιστοποιητικά” για λεπτομέρειες. Στο παράδειγμα χρησιμοποιείται και μια Αρχή Πιστοποιητικών (Certificate Authority - CA). Για πληροφορίες σχετικά με την απόκτηση πιστοποιητικού CA δείτε το “Αρχή Πιστοποίησης”.

    [Σημείωση]

    Μπορείτε να αποκτήσετε το ψηφιακό πιστοποιητικό από αρχή πιστοποιητικών. Ωστόσο, σε αντίθεση με τους πελάτες ιστού, οι πελάτες SMTP σπάνια παραπονιούνται για τα πιστοποιητικά που φέρουν τη δική σας υπογραφή (self-signed certificates). Άρα, εναλλακτικά, μπορείτε να δημιουργήσετε μόνοι σας το πιστοποιητικό. Ανατρέξτε στο “Δημιουργία ενός Πιστοποιητικού Υπογεγραμμένου από εσάς” για περισσότερες λεπτομέρειες.

  3. Αφού αποκτήσετε πιστοποιητικό, ρυθμίστε το Postfix έτσι ώστε να παρέχει κρυπτογράφηση TLS τόσο για τα εισερχόμενα όσο και για τα εξερχόμενα μηνύματα:

    sudo postconf -e 'smtpd_tls_auth_only = no'
    sudo postconf -e 'smtp_use_tls = yes'
    sudo postconf -e 'smtpd_use_tls = yes'
    sudo postconf -e 'smtp_tls_note_starttls_offer = yes'
    sudo postconf -e 'smtpd_tls_key_file = /etc/ssl/private/server.key'
    sudo postconf -e 'smtpd_tls_cert_file = /etc/ssl/certs/server.crt'
    sudo postconf -e 'smtpd_tls_loglevel = 1'
    sudo postconf -e 'smtpd_tls_received_header = yes'
    sudo postconf -e 'smtpd_tls_session_cache_timeout = 3600s'
    sudo postconf -e 'tls_random_source = dev:/dev/urandom'
    sudo postconf -e 'myhostname = mail.example.com'
    
  4. If you are using your own Certificate Authority to sign the certificate enter:

    sudo postconf -e 'smtpd_tls_CAfile = /etc/ssl/certs/cacert.pem'
    

    Again, for more details about certificates see “Πιστοποιητικά”.

[Σημείωση]

Μετά την εκτέλεση όλων αυτών των εντολών, το Postfix θα έχει ρυθμιστεί για χρήση του SMTP-AUTH και θα έχει δημιουργηθεί και ένα πιστοποιητικό με τη δική σας υπογραφή για την κρυπτογράφηση TLS.

Τώρα, το αρχείο /etc/postfix/main.cf θα πρέπει να μοιάζει κάπως έτσι.

Η αρχική ρύθμιση του postfix έχει ολοκληρωθεί. Εκτελέστε την ακόλουθη εντολή για να επανεκκινήσετε την υπηρεσία postfix:

sudo /etc/init.d/postfix restart

Το Postfix υποστηρίζει το SMTP-AUTH όπως αυτό ορίζεται από το RFC2554. Βασίζεται στο SASL. Ωστόσο, εξακολουθεί να απαιτείται πιστοποίηση SASL πριν μπορέσετε να χρησιμοποιήσετε το SMTP-AUTH.

Ρύθμιση του SASL

Το Postfix υποστηρίζει δύο υλοποιήσεις του SASL, τις Cyrus SASL και Dovecot SASL. Για να ενεργοποιήσετε το Dovecot SASL, θα πρέπει να εγκαταστήσετε το πακέτο dovecot-common. Από το τερματικό, δίνετε:

sudo apt-get install dovecot-common

Στη συνέχεια θα πρέπει να τροποποιήσετε το /etc/dovecot/dovecot.conf. Στην ενότητα auth default επανενεργοποιήστε τη σχολιασμένη επιλογή socket listen και αλλάξτε τα εξής:

  socket listen {
    #master {
      # Η κύρια υποδοχή παρέχει πρόσβαση στις πληροφορίες του userdb. Συνήθως,
      # χρησιμοποιείται για να επιτρέπει την πρόσβαση του τοπικού delivery agent του Dovecot στο userdb,
      # έτσι ώστε να μπορεί να εντοπίζει τις τοποθεσίες των ταχυδρομικών θυρίδων.
      #path = /var/run/dovecot/auth-master
      #mode = 0600
      # Προεπιλεγμένος χρήστης/ομάδα θεωρείται αυτός που εκκινεί το dovecot-auth (root)
      #user = 
      #group = 
    #}
    client {
      # Συνήθως, είναι ασφαλής η εξαγωγή της υποδοχής πελάτη προς οποιονδήποτε προορισμό.
      #  Η τυπική χρήση περιλαμβάνει εξαγωγή στον εξυπηρετητή SMTP, για να τη χρησιμοποιήσει
      # για αναζητήσεις SMTP AUTH.
      path = /var/spool/postfix/private/auth-client
      mode = 0660
      user = postfix
      group = postfix
    }
  }

Για να επιτρέψετε σε πελάτες Outlook να χρησιμοποιούν SMTPAUTH, στην ενότητα auth default του /etc/dovecot/dovecot.conf προσθέστε "login":

  mechanisms = plain login

Αφού ολοκληρώσετε τη ρύθμιση του Dovecot, επανεκκινήστε το δίνοντας:

sudo /etc/init.d/dovecot restart

Postfix-Dovecot

Άλλη μια επιλογή για τη χρήση του Postfix με το SMTP-AUTH είναι να εγκαταστήσετε το πακέτο dovecot-postfix. Το πακέτο αυτό εγκαθιστά το Dovecot και ρυθμίζει το Postfix έτσι ώστε να το χρησιμοποιεί τόσο για πιστοποίηση SASL όσο και ως Mail Delivery Agent (MDA). Επίσης, το πακέτο αυτό ρυθμίζει το Dovecot για χρήση IMAP, IMAPS, POP3 και POP3S.

[Σημείωση]

Δεν είναι βέβαιο ότι θα επιθυμείτε να χρησιμοποιείτε τα IMAP, IMAPS, POP3 ή POP3S στον εξυπηρετητή email σας. Π.χ., σε περίπτωση που ρυθμίζετε τον εξυπηρετητή ως θύρα email, φίλτρο spam/ιών, κτλ. Σε αυτές τις περιπτώσεις ίσως είναι προτιμότερο να χρησιμοποιήσετε τις παραπάνω εντολές για να ρυθμίσετε το Postfix για χρήση με το SMTPAUTH.

Για να εγκαταστήσετε το πακέτο από το τερματικό, εισάγετε:

sudo apt-get install dovecot-postfix

Θα πρέπει πλέον να διαθέτετε ένα λειτουργικό εξυπηρετητή email, αλλά υπάρχουν και κάποιες ακόμη επιλογές που ίσως σας ενδιαφέρουν. Π.χ., το πακέτο χρησιμοποιεί το πιστοποιητικό και το κλειδί του πακέτου ssl-cert, και σε ένα περιβάλλον παραγωγής θα έπρεπε να χρησιμοποιείτε πιστοποιητικό και κλειδί που έχουν δημιουργηθεί για το συγκεκριμένο σύστημα. Δείτε το “Πιστοποιητικά” για περισσότερες λεπτομέρειες.

Αφού αποκτήσετε ένα προσωποποιημένο πιστοποιητικό και κλειδί για το σύστημα, τροποποιήστε τις ακόλουθες επιλογές στο /etc/postfix/main.cf:

smtpd_tls_cert_file = /etc/ssl/certs/ssl-mail.pem
smtpd_tls_key_file = /etc/ssl/private/ssl-mail.key

Τώρα, επανεκκινήστε το Postfix:

sudo /etc/init.d/postfix restart

Δοκιμή

Η ρύθμιση του SMTP-AUTH έχει ολοκληρωθεί. Τώρα μπορείτε να τη δοκιμάσετε.

Για να ελέγξετε αν λειτουργούν σωστά τα SMTP-AUTH και TLS, εκτελέστε την ακόλουθη εντολή:

telnet mail.example.com 25

Αφού συνδεθείτε στον εξυπηρετητή postfix, πληκτρολογήστε:

ehlo mail.example.com

Αν εμφανιστούν, μεταξύ άλλων, οι ακόλουθες γραμμές, τότε όλα λειτουργούν απρόσκοπτα. Πληκτρολογήστε quit για έξοδο.

250-STARTTLS
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN PLAIN
250 8BITMIME

Επίλυση Προβλημάτων

Σε αυτή την ενότητα περιγράφονται ορισμένοι κοινοί τρόποι εντοπισμού της αιτίας σε περίπτωση που προκύψουν προβλήματα.

Παράκαμψη του chroot

Το πακέτο postfix του Ubuntu εγκαθίσταται από προεπιλογή σε περιβάλλον chroot για λόγους ασφαλείας. Αυτό μπορεί να περιπλέξει τη διαδικασία εντοπισμού προβλημάτων.

Για να απενεργοποιήσετε το chroot, βρείτε την ακόλουθη γραμμή στο αρχείο ρυθμίσεων /etc/postfix/master.cf:

smtp      inet  n       -       -       -       -       smtpd

και τροποποιήστε την ως εξής:

smtp      inet  n       -       n       -       -       smtpd

Θα πρέπει να επανεκκινήσετε το Postfix για να χρησιμοποιήσετε τις ρυθμίσεις. Από το τερματικό, δίνετε:

sudo /etc/init.d/postfix restart

Αρχεία καταγραφών (Log)

Το Postfix αποστέλλει όλα τα μηνύματα καταγραφών στο /var/log/mail.log. Ωστόσο, επειδή τα μηνύματα σφαλμάτων και προειδοποιήσεων είναι εύκολο να χαθούν ανάμεσα στα κανονικά μηνύματα, καταγράφονται και στα αρχεία /var/log/mail.err και /var/log/mail.warn, αντιστοίχως.

Για να παρακολουθείτε σε πραγματικό χρόνο τα μηνύματα των καταγραφών, μπορείτε να χρησιμοποιήσετε την εντολή tail -f:

tail -f /var/log/mail.err

Το επίπεδο λεπτομέρειας των καταγραφών μπορεί να αυξηθεί. Παρακάτω αναφέρονται ορισμένες ρυθμίσεις που επιτρέπουν την αύξηση της λεπτομέρειας των καταγραφών σε ορισμένους από τους τομείς που καλύφθηκαν παραπάνω.

  • Για να αυξήσετε το επίπεδο καταγραφής της δραστηριότητας TLS, χρησιμοποιήστε τιμές από 1 έως 4 για την επιλογή smtpd_tls_loglevel.

    sudo postconf -e 'smtpd_tls_loglevel = 4'
    
  • Αν αντιμετωπίζετε προβλήματα στην αποστολή ή λήψη ηλ. ταχυδρομείου από συγκεκριμένο τομέα, μπορείτε να προσθέσετε τον τομέα στην παράμετρο debug_peer_list.

    sudo postconf -e 'debug_peer_list = problem.domain'
    
  • Μπορείτε να αυξήσετε τη λεπτομέρεια ενημέρωσης (verbosity) οποιασδήποτε υπηρεσίας Postfix τροποποιώντας το αρχείο /etc/postfix/master.cf και προσθέτοντας ένα -v στο τέλος της αντίστοιχης εγγραφής. Π.χ., για την εγγραφή smtp:

    smtp      unix  -       -       -       -       -       smtp -v
    
[Σημείωση]

Είναι σημαντικό να θυμάστε ότι μετά από κάποια αλλαγή στις καταγραφές, η διεργασία του Postfix θα πρέπει να επανεκκινηθεί, ώστε να ενεργοποιηθούν οι νέες ρυθμίσεις: sudo /etc/init.d/postfix reload

  • Για να αυξήσετε τις λεπτομέρειες που καταγράφονται κατά τον εντοπισμό προβλημάτων του SASL μπορείτε να ορίσετε τις ακόλουθες επιλογές στο /etc/dovecot/dovecot.conf

    auth_debug=yes
    auth_debug_passwords=yes
    
[Σημείωση]

Όπως και με το Postfix, αν αλλάξετε κάποιες ρυθμίσεις του Dovecot θα πρέπει να επανεκκινήσετε τη διεργασία: sudo /etc/init.d/dovecot reload.

[Σημείωση]

Ορισμένες από τις παραπάνω αλλαγές μπορεί να οδηγήσουν σε δραματική αύξηση των πληροφοριών που θα αποθηκεύονται στα αρχεία καταγραφών. Θυμηθείτε να επιστρέψετε στα προηγούμενα επίπεδα καταγραφών αφού επιλύσετε το πρόβλημα. Και φυσικά, επανεκκινήστε την κατάλληλη υπηρεσία για να εφαρμοστούν οι αλλαγές στις ρυθμίσεις.

Αναφορές

Η διαχείριση ενός εξυπηρετητή Postfix μπορεί να αποδειχθεί ιδιαίτερα πολύπλοκη διαδικασία. Ίσως χρειαστεί να απευθυνθείτε στην κοινότητα του Ubuntu για πιο εξειδικευμένη βοήθεια.

Ένα καλό μέρος για να ζητήσετε βοήθεια για το Postfix και να ενταχθείτε στην κοινότητα του Ubuntu Server είναι το κανάλι IRC #ubuntu-server στο freenode. Επίσης, μπορείτε να δημοσιεύσετε μήνυμα σε ένα από τα διαδικτυακά φόρουμ.

Για εις βάθος εξερεύνηση του Postfix οι ειδικοί του Ubuntu συνιστούν το: Βιβλίο του Postfix.

Τέλος, ο ιστότοπος του Postfix περιέχει επίσης καλή τεκμηρίωση όλων των διαθέσιμων ρυθμίσεων.

Also, the Ubuntu Wiki Postifx page has more information.