PDA

Εμφάνιση Πλήρους Έκδοσης : mail server & ubuntu 8.04 LTS


The_Mentor
09-05-2008, 15:54
Πειραματιζόμαστε για να πειραματιστούμε βασικά και έψαξα να βρω πληροφορίες για να σετάρω mail server αλλά έχω καταμπερδευτεί.
Το πρόβλημα είναι πως κάναμε μια συνδρομή σε no-ip.com πήραμε το domain onoma.com και 3 ψευτοserver με την χρήση dynamic (www.onoma.com (http://www.onoma.com), ftp.onoma.com mail.onoma.com). Τους 2 πρώτους (www, ftp) δεν υπάρχει πρόβλημα κάτσανε smooth σε apache2 και vsftp. Ο mail server πως διάολο σετάρετε? Έχω διαβάσει σχετικά articles αλλά ποιο πολύ με μπέρδεψαν παρά έβγαλα άκρη.
Btw, ubuntu 8.04.

nske
09-05-2008, 16:37
Κατ' αρχήν, για να είσαι σωστός, θα πρέπει να φτιάξεις στον DNS server ένα MX records για το onoma.com με τιμή mail.onoma.com. Θα πρέπει να υπάρχει και ένα A record για το mail.onoma.com με τιμή την IP διεύθυνση στην οποία θα ακούει ο SMTP server (π.χ. postfix, exim, sendmail, ...).

Μετά μένει να set-αριστεί ο SMTP server, το οποίο δεν είναι δύσκολο απλα λίγο πιο obscure από ότι άλλοι servers (κυρίως γιατί υπάρχουν πολλές επιλογές για χειρισμό των μηνυμάτων και προαιρετικά για το authentication).

Στη συνέχεια θα σετ-άρεις και έναν POP3 ή IMAP server λογικά, για να παίρνεις τα email και, αν θέλεις, έλεγχο για SPAM και Ιούς, κάποιες πρόσθετες εφαρμογές.

Έχεις αποφασίσει ποιον SMTP και POP3/IMAP server θα χρησιμοποιήσεις και σε τι back-end θα αποθηκεύονται οι λογαριασμοί;

Αν χρησιμοποιήσεις postfix και dovecot μπορώ να βοηθήσω ακριβώς στο configuration.

ΥΣ. Σου στέλνω με PM ένα ebook για το configuration του postfix το οποίο με βοήθησε.

The_Mentor
09-05-2008, 20:05
respect... έλαβον το ebook και ευχαριστώ πολύ.

Κατ' αρχήν, για να είσαι σωστός, θα πρέπει να φτιάξεις στον DNS server ένα MX records για το onoma.com με τιμή mail.onoma.comπρέπει να σηκώσω και εγώ local DNS server? Αυτό δεν υποτίθεται πως το κάνει η no-ip.com?
Θα πρέπει να υπάρχει και ένα A record για το mail.onoma.com με τιμή την IP διεύθυνση στην οποία θα ακούει ο SMTP server (π.χ. postfix, exim, sendmail, ...)Αυτή είναι η εσωτερική του server που τρέχει το postfix ε?

Άρα χρειάζομαι:
(1) DNS Server (?)
(2) SMTP Server (=postfix)
(3) POP3/IMAP Server (=dovecot)

σωστός?

nske
10-05-2008, 01:54
πρέπει να σηκώσω και εγώ local DNS server? Αυτό δεν υποτίθεται πως το κάνει η no-ip.com?
Δε χρειάζεται να σηκώσεις DNS server αν δε θέλεις, υπάρχουν πάροχοι που δίνουν δωρεάν φιλοξενία στο δικό τους DNS server (με web administration interface για την διαχείριση των domains) -π.χ. zoneedit.com, freedns.afraid.org, νομίζω και το no-ip.com-.
Αυτή είναι η εσωτερική του server που τρέχει το postfix ε?
Αυτό που έχει σημασία είναι το onoma.com (η ζώνη) να περιέχει ένα MX record με τιμή ένα έγκυρο hostname, στη διεύθυνση που οδηγεί το οποίο θα ακούει ο Postfix. Η διεύθυνση αυτή δεν πρέπει να είναι εσωτερική αλλά εξωτερική (του Internet): όταν κάποιος θα σου στέλνει ένα μήνυμα, ο SMTP server του θα ψάξει και θα δει σε ποια διεύθυνση οδηγεί το δικό σου MX record για να συνδεθεί με τον SMTP server σου και να το παραδώσει. Πρόσεξε μόνο ότι τα MX records δεν παίρνουν για τιμή διεύθυνση IP αλλά hostname (το οποίο θα πρέπει να κάνει resolve στη διεύθυνση του SMTP server).

Άρα χρειάζομαι:
(1) DNS Server (?)
(2) SMTP Server (=postfix)
(3) POP3/IMAP Server (=dovecot)

σωστός?
Ναι, εφόσον το DNS είναι ρυθμισμένο κατάλληλα από τον αρμόδιο server, με Postfix και Dovecot καλύπτεσαι πλήρως για να στέλνεις και να λαμβάνεις email από οποιοδήποτε PC.

The_Mentor
11-05-2008, 20:28
Λοιπόν μόλις τελείωσα με DNS Server bind9 και έχω τις καταχωρήσεις μέσα.


onoma.com. IN SOA ns1.onoma.com. admin.onoma.com. (
2006081401
28800
3600
604800
38400
)

// ns1 = DNS Server name
// mta = mail server name
// onoma.com = domain name
onoma.com. IN NS ns1.onoma.com.
onoma.com. IN MX 10 mta.onoma.com.

www IN A 10.10.10.5
mta IN A 10.10.10.5
ns1 IN A 10.10.10.5
έχω σετάρει βεβαίως και resolv.conf με την κατάστασή μου

Test


#dig onoma.com

; <<>> DiG 9.4.2 <<>> onoma.com
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 58692
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;onoma.com. IN A

;; Query time: 0 msec
;; SERVER: 10.10.10.5#53(10.10.10.5)
;; WHEN: Sun May 11 20:02:49 2008
;; MSG SIZE rcvd: 30
δια εις ατόπου απαγωγής αμα κάνω dig blabla.com δεν μου γυρνάει τίποτε πίσω (uknown server κάτι τέτοιο τέλος πάντων...)

Άρα πάμε να κάτσουμε τον postfix...

Σκέφτομαι να ακολουθήσω αυτό (https://help.ubuntu.com/8.04/serverguide/C/postfix.html) αλλά δεν είμαι σίγουρος για το αν τα χρειάζομαι όλα αυτά...

Any idea?

nske
11-05-2008, 22:55
Πρώτα επιβεβαίωσε ότι ο DNS server εξυπηρετεί κανονικά το MX record του όνομα.com:

$ dig MX onoma.com

Θα πρέπει να επιστραφούν ANSWER, AUTHORITY και ADDITIONAL sections με τις αντίστοιχες πληροφορίες:


;; ANSWER SECTION:
onoma.com. 1800 IN MX 10 mta.onoma.com.

;; AUTHORITY SECTION:
onoma.com. 3001 IN NS ns1.onoma.com.

;; ADDITIONAL SECTION:
mta.onoma.com. 1800 IN A 10.10.10.5

Αν ναι, πάμε στον Postfix.

Θα χρειαστεί να αποφασίσεις πού θέλεις να αποθηκεύονται οι λογαριασμοί. Μπορούν να αποθηκεύονται σε μια MySQL βάση, σε ένα LDAP directory ή σε μια BDB βάση.
Η MySQL έχει νόημα αν θέλεις να διαχειρίζεσαι τους λογαριασμούς από ένα web administration interface, το LDAP έχει νόημα αν έχεις πάρα πολλούς λογαριασμούς, η BDB είναι πιο απλή στο configuration αλλά θα πρέπει για κάθε αλλαγή στους λογαριασμούς να πειράζεις ένα text file. Μέχρι να δούμε ότι παίζει τουλάχιστον, δίνω παράδειγμα με BDB για να γίνει πιο απλό. Για τον ίδιο λόγο αφήνω απ' έξω το encryption (SMTP-over-SSL/TLS) και το Authentication (SASL).

$ sudo apt-get install postfix
edit το /etc/postfix/main.cf ώστε να περιέχει:

# PATHS

queue_directory = /var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/lib/postfix
manpage_directory = /usr/share/man
sample_directory = /etc/postfix
mail_spool_directory = /var/spool/mail
sendmail_path = /usr/sbin/sendmail
newaliases_path = /usr/bin/newaliases
mailq_path = /usr/bin/mailq
virtual_mailbox_base = /var/spool/postfix/vmail

# CONF FILES
alias_database = hash:/etc/postfix/aliases
alias_maps = hash:/etc/postfix/aliases
transport_maps = hash:/etc/postfix/transport
virtual_alias_maps = hash:/etc/postfix/virtual_alias_maps
virtual_mailbox_maps = hash:/etc/postfix/virtual_mailbox_maps

# MISC
mail_owner = postfix
setgid_group = postdrop
mynetworks = 10.0.0.0/8, 127.0.0.0/8
myhostname = mta.onoma.com
mydomain = onoma.com
mydestination = $myhostname, localhost.$mydomain
myorigin = $mydomain
virtual_transport = virtual
virtual_minimum_uid = 207
virtual_mailbox_domains = onoma.com
virtual_uid_maps = static:207
virtual_gid_maps = static:207
message_size_limit = 102400000
virtual_mailbox_limit = 302400000

smtpd_helo_required = yes
strict_rfc821_envelopes = yes
disable_vrfy_command = no
allow_percent_hack = no
swap_bangpath = no


# restrictions

smtpd_recipient_restrictions =
permit_mynetworks
reject_unknown_sender_domain
reject_non_fqdn_sender
reject_non_fqdn_recipient
reject_invalid_hostname
reject_non_fqdn_hostname
reject_unauth_destination
reject_unlisted_recipient

# encryption

smtpd_use_tls = no
(αντικατάστησε τα BOLD με τα δικά σου settings
*virtual_gid_maps, virtual_uid_maps: δες τι UID έχει ο χρήστης postfix (/etc/passwd) και τι GID έχει το group postfix (/etc/group) και αντικατάστησε ανάλογα το 207 του παραδείγματος παραπάνω)
Φτιάξε τον κατάλογο που θα περιέχει τα emails:
$ sudo mkdir /var/spool/postfix/vmail
$ sudo chown postfix:postfix /var/spool/postfix/vmail
Επιβεβαίωσε ό,τι οι διαδρομές κάτω από το "# PATHS" υπάρχουν. Σε μένα είναι τα defaults (gentoo), πιθανότατα είναι τα ίδια και σε σένα.
Φτιάξε τα text αρχεία που αναφέρονται κάτω από το "# CONF FILES":
/etc/postfix/aliases:
admin: root
postmaster: root
/etc/postfix/transport:
onoma.com virtual:
$ sudo touch /etc/postfix/virtual_alias_maps
/etc/postfix/virtual_mailbox_maps:
test1@onoma.com test1/
(φτιάξαμε έναν λογαριασμό test1@onoma.com, τα μηνύματα με προορισμό τον οποίο θα γράφονται στο /var/spool/postfix/vmail/test1)
Φτιάξε μια BDB για το κάθε αρχείο με της πληροφορίες που όρισες, με την εντολή postmap.
$ sudo postmap /etc/postfix/aliases
$ sudo postmap /etc/postfix/transport
$ sudo postmap /etc/postfix/virtual_alias_maps
$ sudo postmap /etc/postfix/virtual_mailbox_maps
Ξεκίνα τον postfix, π.χ.
$ sudo /etc/init.d/postfix start
Με λίγη τύχη θα ξεκινήσει, διαφορετικά θα στείλει τι δεν του άρεσε στον Syslog (MAIL facility), ο οποίος λογικά είναι ρυθμισμένος να το γράψει σε κάποιο αρχείο στο /var/log (π.χ. mail.*)
Αν ξεκινήσει, δοκίμασέ τον ως εξής:
$ telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 mta.onoma.com ESMTP Postfix
HELO mta.onoma.com
250 mta.onoma.com
MAIL FROM:<test1@onoma.com>
250 2.1.0 Ok
RCPT TO:<test1@onoma.com>
250 2.1.5 Ok
data
354 End data with <CR><LF>.<CR><LF>
DOKIMH
.
250 2.0.0 Ok: queued as 89AD06A1E2
quit
(τα BOLD τα γράφεις εσύ και πατάς enter)
$ sudo ls /var/spool/postfix/vmail
(θα πρέπει να έχει δημιουργηθεί το /var/spool/postfix/vmail/test1/new/μπλαμπλα, το δοκιμαστικό μήνυμα μας).

2 παρατηρήσεις:
- το mta.onoma.com οδηγεί σε private address, αν θέλεις να σου στέλνουν mails από το internet θα πρέπει να οδηγεί σε public.
- για να λειτουργήσει ο DNS server σου στο internet, θα πρέπει να έχει οριστεί από τον registrar από τον οποίο έκανες register το onoma.com ως authorative (αλλιώς τα DNS ερωτήματα των internet-ικών hosts δε θα οδηγούνται στον δικό σου server για να απαντηθούν από αυτόν). Για να γίνει αυτό θα πρέπει να ακούει σε στατική public διεύθυνση. Αν δεν έχεις υπόψη τη λογική του DNS δες εδώ (http://www.insomnia.gr/forum/showthread.php?t=217464).

firewalker
11-05-2008, 23:21
Θα χρειαστεί και ένα antivirus... Για τους "καημένους" χρήστες των Windows.

Χαμός γίνεται...

nske
11-05-2008, 23:33
Και antispam, αλλά ένα-ένα με τη σειρά γιατί μέχρι να μάθει κάποιος τα βασικά του Postfix (και του SMTP και του DNS) είναι εύκολο να χάσει τον μπούσουλα :-)

firewalker
11-05-2008, 23:50
Για antispam είχες δώσει τα φώτα σου. Νομίζω εδώ ήταν σε κάποιο θέμα. Για στείλε και από εδώ ένα πμ, έτσι, για εγκυκλοπαιδικές γνώσεις.

The_Mentor
12-05-2008, 02:03
από την # dig MX onoma.com παίρνω το παρακάτω:

; <<>> DiG 9.4.2 <<>> MX onoma.com
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 61508
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;onoma.com. IN MX

;; Query time: 0 msec
;; SERVER: 10.10.10.5#53(10.10.10.5)
;; WHEN: Mon May 12 01:58:16 2008
;; MSG SIZE rcvd: 30
Τί μας λέει ο ποιητής;

ουσιαστικά αφού η no-ip.com μου κάνει associate την IP μου με το mail.onoma.com (όπως και με το www και ftp) τότε όλα τα ερωτήματα στο mail.onoma.com δεν θα γίνονται redirect στην δική μου IP και κατ' επέκταση στον DNS server μου όπου και θα ακολουθεί το resolution του ΜΤΑ;

Στέλνοντας ένα email στο mail-1@onoma.com αυτό οδηγείτε μέσω των DNS Servers στην NO-IP.com (αυτή έκανε το Registration του Domain) και απο εκεί γίνετε redirect στην δική μου IP και πέφτει στον ρουτερ μου. ΑΠο εκέι οδηγείτε στον server και ο δικός μου τοπικός DNS διαβάζει το header του μαιλ και μέσω ΜΤΑ (postfix) το στέλνει στο mailbox που ενδιαφέρει...

Λίγο απλοικό αλλά κατι τέτοιο δεν γίνετε?

nske
12-05-2008, 02:12
Τί μας λέει ο ποιητής;
Τίποτα, δεν εξυπηρετεί σωστά τη ζώνη του onoma.com.

Για κάνε attach και το /etc/bind/named.conf.

ουσιαστικά αφού η no-ip.com μου κάνει associate την IP μου με το mail.onoma.com (όπως και με το www και ftp) τότε όλα τα ερωτήματα στο mail.onoma.com δεν θα γίνονται redirect στην δική μου IP και κατ' επέκταση στον DNS server μου όπου και θα ακολουθεί το resolution του ΜΤΑ;
Όχι, για να οδηγηθεί ένα domain name σε δικό σου DNS server θα πρέπει να δηλώσεις στον registrar μέσω του οποίου το έκανες register (no-ip.com) ότι θέλεις να δώσει στην registry authorative nameserver για αυτό το domain τη διεύθυνση του δικού σου DNS server και όχι τη διεύθυνση του δικού του. Σε αυτήν την περίπτωση ο DNS server της no-ip (και όλες οι επιλογές για την κατασκευή records που προσφέρει) δεν έχει καμία σχέση με το domain σου, τα DNS queries για το onoma.com, από τον Top level Domain server του .COM θα προωθηθούν κατευθείαν στον DNS server σου. Για να έχεις mail δε χρειάζεται να το κάνεις αυτό (και άρα ούτε να στήσεις δικό σου DNS server), εφόσον ο registrar σου (no-ip.com) σου δίνει τη δυνατότητα να φτιάξεις A records και MX records στον δικό του DNS server. Έχει νόημα να στήσεις δικό σου DNS server μόνο αν θέλεις τον πρόσθετο έλεγχο (π.χ. να φτιάχνεις domains μεγαλύτερου επιπέδου ή να ορίζεις μικρό TTL ώστε οι αλλαγές να γίνονται apply πιο άμεσα).

Στέλνοντας ένα email στο mail-1@onoma.com αυτό οδηγείτε μέσω των DNS Servers στην NO-IP.com (αυτή έκανε το Registration του Domain) και απο εκεί γίνετε redirect στην δική μου IP και πέφτει στον ρουτερ μου. ΑΠο εκέι οδηγείτε στον server και ο δικός μου τοπικός DNS διαβάζει το header του μαιλ και μέσω ΜΤΑ (postfix) το στέλνει στο mailbox που ενδιαφέρει...
Στέλνοντας ένα email sto mail-1@onoma.com, ο SMTP server που θα το στείλει:
1) θα ελέγξει το MX record του onoma.com. Θα πάρει για αποτέλεσμα ό,τι έχεις δηλώσει στον υπεύθυνο DNS server του onoma.com (ο οποίος δεν είναι ο δικός σου τοπικός BIND αυτή τη στιγμή αλλά λογικά της no-ip.com), το οποίο είναι ένα hostname -π.χ. mail.onoma.com. Πολλοί SMTP servers αν δε βρουν MX records θα προσπαθήσουν να συνδεθούν στη διεύθυνση του A record του onoma.com (εφόσον υπάρχει), αλλά δεν είναι προβλεπόμενη συμπεριφορά.
2) Θα κάνει resolve αυτό το hostname στην IP address που του αντιστοιχίζεται με ένα A record. Σε αυτό το σημείο σταματάει ο ρόλος του DNS.
3) Ο απομακρυσμένος SMTP server θα συνδεθεί σε αυτή τη διεύθυνση μέσω TCP στην port 25, όπου θα πρέπει να ακούει ο mail server σου, και θα του παραδώσει το μήνυμα.
4) Από κει και πέρα είναι θέμα του configuration του mail server σου (postfix) τι θα το κάνει -π.χ. σε ποιον κατάλογο του filesystem θα το αποθηκεύσει και με τι μορφή-.

DIMITRISG
12-05-2008, 02:26
θα πρέπει να δηλώσεις τον MX server στην no-ip . Στο site εχει τα πεδία και μαλιστα το τονίζει οτι πρέπει να δηλώσεις MX server για τα mails γιατι διαφορετικά δεν θα γινουν redirect

Mail Exchangers
MX records makes it possible to accept email for your domain or host. Enter the hostname of your mail server. Choose a priority, the lower the number the higher the priority. Mail for your domain will be delivered to the lowered numbered priority first. If that server cannot be reached, it will then be delivered to the next priority server.

The_Mentor
12-05-2008, 11:23
Τότε η λογική του να σου δίνει το mail.onoma.com ποιά είναι;

@DIMITRIS>> τώρα είδα του Δημήτρη το ποστ, sorry...

άρα πρέπει να καταχωρήσω εκεί τον MX. Αυτοί δίνουν 5 πεδία.. πού πάει τι?


@nske>>

named.conf

// This is the primary configuration file for the BIND DNS server named.
//
// Please read /usr/share/doc/bind9/README.Debian.gz for information on the
// structure of BIND configuration files in Debian, *BEFORE* you customize
// this configuration file.
//
// If you are just adding zones, please do that in /etc/bind/named.conf.local

include "/etc/bind/named.conf.options";

// prime the server with knowledge of the root servers
zone "." {
type hint;
file "/etc/bind/db.root";
};

// be authoritative for the localhost forward and reverse zones, and for
// broadcast zones as per RFC 1912

zone "localhost" {
type master;
file "/etc/bind/db.local";
};

zone "127.in-addr.arpa" {
type master;
file "/etc/bind/db.127";
};

zone "0.in-addr.arpa" {
type master;
file "/etc/bind/db.0";
};

zone "255.in-addr.arpa" {
type master;
file "/etc/bind/db.255";
};

include "/etc/bind/named.conf.local";named.conf.local

//
// Do any local configuration here
//

// Consider adding the 1918 zones here, if they are not used in your
// organization
//include "/etc/bind/zones.rfc1918";
// This is the zone definition. replace example.com with your domain name
zone "onoma.com" {
type master;
file "/etc/bind/zones/onoma.com.db";
};

// This is the zone definition for reverse DNS. replace 0.168.192 with your network address in reverse notation - e.g my network address is 192.168.0
zone "10.10.10.in-addr.arpa" {
type master;
file "/etc/bind/zones/rev.10.10.10.in-addr.arpa";
};

The_Mentor
13-05-2008, 20:42
νεότερα απο το μέτωπο...

Postfix running και στέλνει κανονικά mail. Σε δοκιμές που έκανα βλέπω πως gmail λογαριασμός το παρέλαβε (αν και το μάρκαρε spam) :confused:.

Δοκίμασα να στείλω και μου το κάνει reject. Γιατί;


May 13 20:34:07 onoma postfix/smtpd[9923]: NOQUEUE: reject: RCPT from fk-out-0910.google.com[209.85.128.191]: 554 5.7.1 <test1@onoma.com>: Relay access denied; from=<onoma@gmail.com> to=<test1@onoma.com> proto=ESMTP helo=<fk-out-0910.google.com>
Στη no-ip.com δήλωσα MX Record το mail.onoma.com και έχει την υψηλότερη προτεραιότητα (5).

BTW Ο DNS Server παίζει στη χλίδα... σύμφωνα με nske!!!

nske
16-05-2008, 22:21
May 13 20:34:07 onoma postfix/smtpd[9923]: NOQUEUE: reject: RCPT from fk-out-0910.google.com[209.85.128.191]: 554 5.7.1 <test1@onoma.com>: Relay access denied; from=<onoma@gmail.com> to=<test1@onoma.com> proto=ESMTP helo=<fk-out-0910.google.com>

Ο postfix θεωρεί ότι δεν είναι υπεύθυνος για το onoma.com, ώστε να κάνει local delivery, και δεν είναι ρυθμισμένος για να κάνει relay προς άλλον server μηνύματα προερχόμενα από τη διεύθυνση του google, οπότε κάνει reject το μήνυμα που του έρχεται, σύμφωνα με τα ορισμένα restrictions.

Εμείς θέλουμε να θεωρεί ότι είναι υπεύθυνος για το onoma.com, όχι να προσπαθεί να το κάνει relay σα να ήταν μήνυμα προς ξένο domain.

Σίγουρα στο main.conf έχεις ορίσει:
mydomain = onoma.com
και στο transport_maps:
onoma.com virtual:
;