Hits : 4535

Postfix :: Mini How To 


postfix


http://www.postfix.org/


fileftp://ftp.ntua.gr/pub/net/mail[..]postfix-2.8.0.tar.gz


http://mirrors.ntua.gr/postfix/INSTALL.html


top


Πηγαίος Κώδικας


Για να κάνουμε εγκατάσταση από τον πηγαίο κώδικα του 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


top


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.


berkeleydb


top


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


top


Εγκατάσταση


Τώρα είμαστε έτοιμοι να προχωρήσουμε στην εγκατάστασή μας, απαντώντας μερικές εύκολες
ερωτήσεις. Μπορούμε να απαντήσουμε σε όλες με ένα απλό 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]

top


Αναβάθμιση


Εάν θέλουμε να αναβαθμίσουμε το postfix στην τελευταία σταθερή έκδοση, τότε ΔΕΝ χρειάζεται να κάνουμε όλα τα παραπάνω.
Αρκεί να πληκτρολογήσουμε κάτι τέτοιο:


make upgrade


Κι αυτό ήταν όλο!


top


Χρήση


Έλεγχος του configuration του postfix:


# postfix check


Εργαλείο διαχείρισης των ρυθμίσεων του Postfix

# postconf


Βασικές λειτουργίες:


# postfix start / stop / reload


top


Aliases


# vim /etc/aliases

ebal: ebalaskas@ebalaskas.gr

# newaliases


top


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

top


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


top


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


top


Postfix Init Script


Δεν χρειάζεται να γράψουμε εμείς ένα init script, αρκεί να δημιουργήσουμε ένα Link από το binary στον κατάλογο με τα init scripts μας:


# ln -s /usr/sbin/postfix /etc/init.d/postfix


Αλλά προσοχή, ΔΕΝ είναι redhat supported via chkconfig!


top


Mail Queue


Για να δούμε τι μηνύματα υπάρχουν στην ουρά του server μας:


# postqueue -p


top


Mail Flush


Εάν έχουν μαζευτεί mails στην ουρά μας, για να προσπαθήσουμε να τα ξαναστείλουμε:


# postqueue -f


top


Delete Queue Mail


Εάν έχουν μαζευτεί mails στην ουρά μας, για να καθαρίσουμε (διαγράψουμε) τα emails:


# postsuper -d ALL


top


Re-Queue Mails


Εάν θέλουμε να ξανα-στείλουμε όλα τα emails μας στην ουρά μας (αυτό φυσικά συνεπάγεται ότι έχουμε κάνει αλλαγές που επηρεάζουν το deliver),
τότε πληκτρολογούμε:


# postsuper -r ALL


top


Maildir


"/etc/aliases"


Evaggelos.Balaskas:     ebal
ebal:   /emails/ebal/


top


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

top