Postfix :: Mini How To
Contents
postfix
ftp://ftp.ntua.gr/pub/net/mail[..]postfix-2.8.0.tar.gz
http://mirrors.ntua.gr/postfix/INSTALL.html
Πηγαίος Κώδικας
Για να κάνουμε εγκατάσταση από τον πηγαίο κώδικα του postfix χρειάζεται να ακολουθήσουμε
τα παρακάτω βήματα :
# wget -c ftp://ftp.ntua.gr/pub/net/mail/postfix/official/postfix-2.8.0.tar.gz # tar zxvf postfix-2.8.0.tar.gz # cd postfix-2.8.0 # make
BerkeleyDB
Εάν για οποιοδήποτε λόγο ΔΕΝ προχωρήσει η παραπάνω διαδικασία τότε,
ελέγχουμε που "χτυπάει". Εάν είναι σε σχέση με το BerkeleyDB ενώ έχουμε
ήδη ολοκληρώσει την εγκατάστασή του τότε ξανατρέχουμε την διαδικασία της
μεταγλώτισσης σύμφωνα με την παρακάτω εντολή:
ln -s /usr/local/BerkeleyDB.4.6/include/db.h /usr/include/db.h make makefiles CCARGS="-DHAS_DB -I/usr/local/BerkeleyDB.4.6/include" AUXLIBS="-L/usr/local/BerkeleyDB.4.6/lib -ldb"
Όπου φυσικά ως /usr/local/BerkeleyDB.4.6 γράφουμε το path στο οποίο έχει γίνει η εγκατάσταση του BerkeleyDB.
User/Groups
Πριν προχωρήσουμε χρειάζεται να δημιουργήσουμε έναν (1) χρήστη και δύο (2) groups.
/etc/group postdrop:!:120: postfix:!:121: /etc/passwd postfix:!:121:121:Postfix User:/tmp/:/usr/sbin/nologin
Ο χρήστης postfix:postfix θα είναι ο owner του postfix & στο group postdrop
θα ανήκουν τα εκτελέσιμα που παραδίδουν emails μεταξύ των δαιμόνων που τρέχει
το πρόγραμμα postfix. Επίσης μπορούμε να επιλέξουμε και διαφορετικό χρήστη
(πχ. nobody:nogroup) για την τελική παράδοση των emails !
Καλό θα είναι φυσικά οι χρήστες που ασχολούνται με τα emails να ανήκουν και στο group: mail
Εγκατάσταση
Τώρα είμαστε έτοιμοι να προχωρήσουμε στην εγκατάστασή μας, απαντώντας μερικές εύκολες
ερωτήσεις. Μπορούμε να απαντήσουμε σε όλες με ένα απλό enter για να προχωρήσουμε με την
default εγκατάσταση του Postfix.
# make install
Κατά την εγκατάσταση του postfix το αποτέλεσμα είναι κάτι τέτοιο:
install_root: [/] tempdir: [/usr/local/src/postfix-2.8.0] config_directory: [/etc/postfix] command_directory: [/usr/sbin] daemon_directory: [/usr/libexec/postfix] data_directory: [/var/lib/postfix] html_directory: [no] mail_owner: [postfix] mailq_path: [/usr/bin/mailq] manpage_directory: [/usr/local/man] newaliases_path: [/usr/bin/newaliases] queue_directory: [/var/spool/postfix] readme_directory: [no] sendmail_path: [/usr/sbin/sendmail] setgid_group: [postdrop]
Αναβάθμιση
Εάν θέλουμε να αναβαθμίσουμε το postfix στην τελευταία σταθερή έκδοση, τότε ΔΕΝ χρειάζεται να κάνουμε όλα τα παραπάνω.
Αρκεί να πληκτρολογήσουμε κάτι τέτοιο:
make upgrade
Κι αυτό ήταν όλο!
Χρήση
Έλεγχος του configuration του postfix:
# postfix check
Εργαλείο διαχείρισης των ρυθμίσεων του Postfix
# postconf
Βασικές λειτουργίες:
# postfix start / stop / reload
Aliases
# vim /etc/aliases ebal: ebalaskas@ebalaskas.gr # newaliases
Configuration
/etc/postfix/main.cf
queue_directory = /var/spool/postfix command_directory = /usr/sbin daemon_directory = /usr/libexec/postfix data_directory = /var/lib/postfix mail_owner = postfix myhostname =$myhostname unknown_local_recipient_reject_code = 550 relay_domains = $mydestination alias_maps = hash:/etc/aliases 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/sbin/sendmail newaliases_path = /usr/bin/newaliases mailq_path = /usr/bin/mailq setgid_group = postdrop html_directory = no manpage_directory = /usr/local/man sample_directory = /etc/postfix readme_directory = no
NIS domain
Απλά βαρεθήκατε να βλέπεται το παρακάτω μήνυμα λάθους :
warning: dict_nis_init: NIS domain name not set - NIS lookups disabled
Τότε στην γραμμή :
#alias_maps = hash:/etc/aliases, nis:mail.aliases
Αφαιρέστε το σχόλιο, ώστε να δείχνει:
alias_maps = hash:/etc/aliases
New Aliases
Κοιτώντας τα logs βλέπω το εξής:
fatal: open database /etc/aliases.db: No such file or directory
Οπότε:
# postalias /etc/postfix/aliases
για να παραχθεί το aliases.db
Στην συνέχεια τροποποιούμε το αρχείο: /etc/postfix/main.cf
ώστε να έχει την εξής εγγραφή:
alias_maps = hash:/etc/postfix/aliases
Φυσικά δεν ξεχνάμε ότι μετά από κάθε αλλαγή του aliases:
newaliases -v
Postfix Init Script
Δεν χρειάζεται να γράψουμε εμείς ένα init script, αρκεί να δημιουργήσουμε ένα Link από το binary στον κατάλογο με τα init scripts μας:
# ln -s /usr/sbin/postfix /etc/init.d/postfix
Αλλά προσοχή, ΔΕΝ είναι redhat supported via chkconfig!
Mail Queue
Για να δούμε τι μηνύματα υπάρχουν στην ουρά του server μας:
# postqueue -p
Mail Flush
Εάν έχουν μαζευτεί mails στην ουρά μας, για να προσπαθήσουμε να τα ξαναστείλουμε:
# postqueue -f
Delete Queue Mail
Εάν έχουν μαζευτεί mails στην ουρά μας, για να καθαρίσουμε (διαγράψουμε) τα emails:
# postsuper -d ALL
Re-Queue Mails
Εάν θέλουμε να ξανα-στείλουμε όλα τα emails μας στην ουρά μας (αυτό φυσικά συνεπάγεται ότι έχουμε κάνει αλλαγές που επηρεάζουν το deliver),
τότε πληκτρολογούμε:
# postsuper -r ALL
Maildir
"/etc/aliases"
Evaggelos.Balaskas: ebal ebal: /emails/ebal/
Body – Header Checks
/etc/postfix/header_checks
Discard every mail with 13 < score < 100
# ebal, Wed Nov 16 12:19:00 EET 2011 /^X-Spam-Status.*score=(1[3-9]|[2-9][0-9]|100).*/ DISCARD