Τετάρτη, Μαρτίου 28, 2007

Σπιτική συνταγή: IMAP server και Gmail

Ακολουθεί ένα μικρό tutorial για το πως να στήσετε έναν μικρό IMAP mail server στο σπίτι σας, ο οποίος θα τραβάει τα mail σας από το Gmail.

Για την σημερινή συνταγή θα χρειαστούμε ένα περισσευούμενο PC, με οθόνη, πληκτρολόγιο, κάρτα δικτύου, δίσκο τουλάχιστον 1 GB (για να έχουμε άπλα) και μνήμη... χμμμ... νομίζω από 64 ΜΒ και πάνω πρέπει είναι αρκετά. Σύνδεση στο internet έχουμε, έτσι; :)

Υποθέτουμε ότι έχουμε εγκαταστήσει ένα Debian-οειδές Linuxάκι - προτείνεται το net-installation cd του Debian. Δεν χρειαζόμαστε γραφικό περιβάλλον, αρκούν μερικά βασικά εργαλεία όπως sudo, ssh, fetchmail και ένας text editor της επιλογής μας (δηλαδή vi :)). Το βαφτίζουμε όπως γουστάρουμε (έστω postman) και του βάζουμε μια στατική IP για το τοπικό δίκτυο (έστω 192.168.1.100).

Βήμα 1 - Εγκατάσταση του dovecot

Θα χρησιμοποιήσουμε τον dovecot, ένα γρήγορο και εύκολο στην ρύθμιση mail server, ο οποίος υπόσχεται μικρές απαιτήσεις σε μνήμη και CPU - ότι πρέπει για τον Pentium I που ξεθάψαμε...

sudo apt-get install dovecot-imapd dovecot-pop3d

Το pop3d μάλλον δεν χρειάζεται αλλά άστο μωρέ να υπάρχει... ποτέ δεν ξέρεις...

Βήμα 2 - Ρύθμιση του dovecot

Θέλουμε το authentication να γίνεται με το password file του συστήματος (PAM authentication). Ανοίγουμε το /etc/pam.d/dovecot:
sudo vi /etc/pam.d/dovecot
και προσθέτουμε τις παρακάτω γραμμές:
auth required pam_unix.so
account required pam_unix.so

Σώζουμε και κλείνουμε το αρχείο.

Παρομοίως, ανοίγουμε το /etc/dovecot/dovecot.conf.

Βρίσκουμε το
#protocols =
και το αλλάζουμε σε
protocols = imap

Βρίσκουμε το
#disable_plaintext_auth
και το κάνουμε
disable_plaintext_auth = no

Εκκίνηση του server με
sudo dovecot

Δοκιμάστε τον server πρώτα σε τοπικό επίπεδο
echo "Yeeeeehaaaa" | mail -s "test ;)" username
όπου φυσικά username το ...username του χρήστη στο postman. Λογικά, ανοίγοντας το mutt θα πρέπει να δείτε το mail να σας κλείνει το μάτι :)

Αν όλα πήγαν κατ'ευχήν, μπορείτε να βλέπετε τα mail σας που βρίσκονται στον postman με οποιονδήποτε mail client (όπως ο Thunderbird) υποστηρίζει IMAP accounts. Προσοχή: port 143 και plain authentication (χωρίς TSL/SSL)!

Αποστολή email θα κάνετε παραδοσιακά από τον SMTP server που χρησιμοποιούσατε ήδη - ο SMTP του Gmail είναι μια πολύ καλή επιλογή και θα ταιριάζει με το επόμενο βήμα ;)

Βήμα 3 - λήψη email από Gmail

Προτιμούμε το Gmail γιατί 1) είναι Google, 2) έχει πολύ χώρο, 3) έχει GoogleTalk, 4) έχει δικό του SMTP server, αλλά κυρίως γιατί 5) έχει πολύ καλό spam filter.

Συνδεμένος ως απλός χρήστης στον postman:
touch ~/.fetchmailrc

Ανοίξτε το .fetchmailrc και γράψτε τα παρακάτω:
set postmaster "username"
poll pop.gmail.com with proto POP3 and options no dns
user 'username@gmail.com' is 'localuser' here options ssl
password kodikos

Προσοχή:
username = το username στο Gmail account σας
localuser = το username σας στον νεοσύστατο server σας (postman)
kodikos = το password σας στο Gmail account.

Από δω και πέρα, δίνοντας την εντολή
fetchmail -s --keep
το fetchmail θα κατεβάσει τα mail από το Gmail χρησιμοποιώντας τα στοιχεία του .fetchmailrc.

Για να γίνεται τακτικά αυτή η δουλειά (ας πούμε... χμμ... κάθε 20 λεπτά) αυτόματα, χρησιμοποιούμε το cron. Δημιουργήστε την λίστα με τις εργασίες που θέλετε να βάλετε στο cron:
touch mycronlist

Προσθέστε την συγκεκριμένη εργασία στο mycronlist:
echo "0,20,40 * * * * fetchmail -s --keep" >> mycronlist

Φορτώστε την λίστα στο cron:
crontab mycronlist

Αυτάααααα......... :)

Το παραπάνω setup δουλεύει σε δύο εγκαταστάσεις που έχω κάνει: μία στο mac mini μου και μία σε ένα virtual machine που τρέχει με VMware Player, υπό την φιλοξενία ενός pc με Ubuntu 6.10.

Σε καμία περίπτωση δεν πρόκειται για ολοκληρωμένη και ασφαλή λύση. Πρώτη βελτίωση που μπορεί (και πρέπει) να γίνει είναι η ενεργοποίηση του SSL authentication, ώστε να μην ταξιδεύουν χύμα τα passwords στο δίκτυο. Μετά, κάλλιστα μπορεί κάποιος να στήσει και έναν SMTP server, spam filters και antivirus. Περισσότερες οδηγίες και επίλυση προβλημάτων ---> dovecot documentation.

Με το setup αυτό, θα κατεβάζετε τα mail σας από το Gmail στον server σας (ο οποίος θα βρίσκεται στο σπίτι) και θα μπορούν να τον βλέπουν όλα σας τα μηχανήματα. Η μαγεία του IMAP είναι ότι τα mail μένουν στον server, δεν τα κατεβάζει ο χρήστης μόνο στο μηχάνημα που κάθεται την δεδομένη στιγμή. Εξαιρετικά βολικό γι'αυτούς που έχουν ένα desktop μηχάνημα, ένα laptop, ένα smartphone, ένα pda κι ότι άλλο τους φώτισε ο Θεός.

ΥΓ: Θεωρώ αυτονόητο ότι άπαξ και κάτσει όλο το installation σωστά, ξηλώνετε keyboard & monitor και κλείνετε το PC - θύμα σε κάποιο πατάρι/ντουλάπι/υπόγειο/σοφίτα/αποθήκη μόνο με ένα καλώδιο δικτύου και μια τροφοδοσία :)

2 σχόλια:

javapapo είπε...

να σου κάνω δώρο ενα .mac account να μην τρώς την ώρα σου με config file και ιστορίες...ε; ε; ε; ε;

dtsomp είπε...

Χα! Το'ξερα ότι με κάποιον τρόπο θα γλύτωνα τα $99 για το .mac :D :D