Конфигуриране на пощенски сървър с виртуални потребители

Помощен център

Конфигуриране на пощенски сървър с виртуални потребители

В тази статия е описано как може да инсталирате и настроите пощенски сървър, от който да изпращате и получавате писма, съхранявайки виртуалните потребители във файл и използвайки операционна система CentOS 6.X. Предимствата на виртуалните потребители във файл, вместо бази данни е, че не се използва допълнителна услуга (в случая MySQL) и не се генерират излишни заявки.

  1. Инсталираме необходимите системни пакети:

yum remove exim sendmail

yum install postfix dovecot

yum install nano

  1. Създаваме група и потребител за виртуалните мейлбоксове:

groupadd vmail -g 2222

useradd vmail -r -g 2222 -u 2222 -d /var/vmail -m -c "mail user"

  1. Преместваме конфигурационния файл на postfix в main.cf-backup:

mv /etc/postfix/main.cf /etc/postfix/main.cf-backup

3.1 Създаваме нов файл /etc/postfix/main.cf, в който поставяме следната конфигурация:

nano /etc/postfix/main.cf

С тази команда отваряме файла с редактора nano и поставяме конфигурацията описана долу:

queuedirectory = /var/spool/postfix commanddirectory = /usr/sbin daemondirectory = /usr/libexec/postfix datadirectory = /var/lib/postfix mailowner = postfix unknownlocalrecipientrejectcode = 550 aliasmaps = hash:/etc/postfix/aliases aliasdatabase = $aliasmaps

inetinterfaces = all inetprotocols = ipv4 mydestination = $myhostname, localhost.$mydomain, localhost

debugpeerlevel = 2 debuggercommand = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $daemondirectory/$processname $processid & sleep 5 setgidgroup = postdrop htmldirectory = no relay_domains = *

virtualaliasmaps=hash:/etc/postfix/vmailaliases virtualmailboxdomains=hash:/etc/postfix/vmaildomains virtualmailboxmaps=hash:/etc/postfix/vmailmailbox virtualmailboxbase = /var/vmail virtualminimumuid = 2222 virtualtransport = dovecot virtualuidmaps = static:2222 virtualgidmaps = static:2222

smtpdsaslauthenable = yes smtpdsasltype = dovecot smtpdsaslpath = /var/run/dovecot/auth-client smtpdsaslsecurityoptions = noanonymous smtpdsasltlssecurityoptions = $smtpdsaslsecurityoptions smtpdsasllocaldomain = $mydomain brokensaslauth_clients = yes

smtpdsenderrestrictions =rejectnonfqdnsender,rejectunknownsenderdomain

smtpdrecipientrestrictions = permitmynetworks, permitsaslauthenticated, rejectunauth_destination

smtpdrelayrestrictions = rejectinvalidhostname, rejectnonfqdnhostname, rejectnonfqdnrecipient, rejectunknownrecipientdomain, rejectunauthpipelining, permitmynetworks, permitsaslauthenticated, rejectunauthdestination, rejectrblclient zen.spamhaus.org, rejectrblclient bl.spamcop.net, rejectrblclient b.barracudacentral.org

3.2. Създаваме файл /etc/postfix/vmail_domains, в който описваме домейните по следния начин:

mydomain.com OK my-otherdomain.com OK

3.3. Създаваме файл /etc/postfix/vmail_mailbox за самите пощенски кутии в следния формат:

info@mydomain.com mydomain.com/info/ info@my-otherdomain.com my-otherdomain.com/info/

Физически, директориите за пощенските кутии се създават автоматично при изпращане на първото писмо в директория /var/vmail.

3.4. Създаваме празни файлове /etc/postfix/vmailaliases и /etc/postfix/aliases , ако няма да ползваме alias-и (препратки), а ако искате да конфигурирате такива, то те се описват във формата от втората графа само във файл /etc/postfix/vmailaliases:

touch /etc/postfix/vmail_aliases touch /etc/postfix/aliases info@mydomain.com othermailbox@mydomain.com 3.5. Обновяваме конфигурацията, направена до момента, изпълнявайки командите:

postmap /etc/postfix/vmaildomains postmap /etc/postfix/vmailmailbox postmap /etc/postfix/vmail_aliases 3.6. Проверяваме дали следните редове са налични и ако ги няма ги добавяме или откоментираме във файл /etc/postfix/master.cf:

dovecot unix - n n - - pipe flags=DRhu user=vmail:vmail argv=/usr/libexec/dovecot/deliver -f ${sender} -d ${recipient}

submission inet n - n - - smtpd

Моля обърнете внимание, че преди реда започващ с flags има интервал.

  1. Преместваме файла, който е по подразбиране от dovecot пакета в друг и поставяме в нов файл /etc/dovecot/dovecot.conf , конфигурацията от втория блок:

mv /etc/dovecot/dovecot.conf /etc/dovecot/dovecot.conf-backup nano /etc/dovecot/dovecot.conf

С тази команда отваряме файла с редактора nano и поставяме конфигурацията описана долу:

listen = * ssl = no protocols = imap lmtp disableplaintextauth = no authmechanisms = plain login mailaccessgroups = vmail defaultloginuser = vmail firstvaliduid = 2222 firstvalidgid = 2222 maillocation = maildir:/var/vmail/%d/%n

passdb { driver = passwd-file args = scheme=SHA1 /etc/dovecot/passwd } userdb { driver = static args = uid=2222 gid=2222 home=/var/vmail/%d/%n allowallusers=yes } service auth { unixlistener auth-client { group = postfix mode = 0660 user = postfix } unixlistener auth-userdb { group = vmail mode = 0660 user = vmail } user = root } service imap-login { processminavail = 1 user = vmail } 4.1. Създаваме файла, съхраняващ потребителите и паролите, след което генерираме хеширана парола:

touch /etc/dovecot/passwd doveadm pw -s sha1 | cut -d '}' -f2

тук въвеждате желаната от Вас парола и получавате хешираният вид.

4.2. Описваме потребителите и паролите в следния формат във файл /etc/dovecot/passwd:

info@mydomain.com:DOzcsKI8HY0bg8LAuz0DPKwS3WA= 4.3. Поправяме собствениците и правата на файловете:

chown root: /etc/dovecot/passwd chmod 600 /etc/dovecot/passwd 4.4. Задаваме необходимите права по файлове и директории:

chown -R vmail:vmail /var/vmail/

chown -R vmail:vmail /var/run/dovecot/

find /var/vmail/ -type f -exec chmod 0644 {} \;

find /var/vmail/ -type d -exec chmod 0755 {} \;

4.5. Рестартираме услугите за да влязат промените в сила:

chkconfig postfix on chkconfig dovecot on service postfix restart service dovecot restart 4.6. Коригираме собственика на автоматично създадения файл за база данни на dovecot, след като сте изпратили мейл и мейл сървъра е готов за използване:

chown vmail:vmail /var/run/dovecot/auth-userdb 4.7. Настройвате пощенската си кутия по някоя от процедурите описани на следния адрес, след което изпращате тестово съобщение до определена пощенска кутия:

http://my.icnhelpdesk.net/Knowledgebase/List/Index/1/poshh

  1. Премахване на пощенска кутия:

За да премахнете пощенска кутия, е нужно да изтриете реда, на който е описана тя във файл /etc/postfix/vmail_mailbox, след което да обновим конфигурацията на postfix с командата:

postmap /etc/postfix/vmail_mailbox 5.1. Добавяне на други пощенски кутии:

За да добавяте нови пощенски кутии към същия домейн, който сте използвали по-рано, е нужно да добавите новата пощенска кутия във файл /etc/postfix/vmail_mailbox по същия начин описан в стъпка 3.3 от процедурата, след което да обновите конфигурацията със следната команда:

postmap /etc/postfix/vmailmailbox Ако желаете да добавите нови пощенски кутии, но на друг домейн - различен от този, който сте добавили в началото е нужно първо да опишете новия домейн във файл /etc/postfix/vmaildomains по начина описан в стъпка 3.2, след това да опишете съответните пощенски кутии към новия домейн във файл /etc/postfix/vmail_mailbox и да обновите конфигурацията със следните две команди:

postmap /etc/postfix/vmaildomains postmap /etc/postfix/vmailmailbox