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

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

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

yum remove exim sendmail

yum install postfix dovecot

yum install nano

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

groupadd vmail -g 2222

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

3. Преместваме конфигурационния файл на 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 и поставяме конфигурацията описана долу:

queue_directory = /var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
mail_owner = postfix
unknown_local_recipient_reject_code = 550
alias_maps = hash:/etc/postfix/aliases
alias_database = $alias_maps

inet_interfaces = all
inet_protocols = ipv4
mydestination = $myhostname, localhost.$mydomain, localhost

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
setgid_group = postdrop
html_directory = no
relay_domains = *

virtual_alias_maps=hash:/etc/postfix/vmail_aliases
virtual_mailbox_domains=hash:/etc/postfix/vmail_domains
virtual_mailbox_maps=hash:/etc/postfix/vmail_mailbox
virtual_mailbox_base = /var/vmail
virtual_minimum_uid = 2222
virtual_transport = dovecot
virtual_uid_maps = static:2222
virtual_gid_maps = static:2222

smtpd_sasl_auth_enable = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = /var/run/dovecot/auth-client
smtpd_sasl_security_options = noanonymous
smtpd_sasl_tls_security_options = $smtpd_sasl_security_options
smtpd_sasl_local_domain = $mydomain
broken_sasl_auth_clients = yes

smtpd_sender_restrictions =reject_non_fqdn_sender,reject_unknown_sender_domain

smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination

smtpd_relay_restrictions =
reject_invalid_hostname,
reject_non_fqdn_hostname,
reject_non_fqdn_recipient,
reject_unknown_recipient_domain,
reject_unauth_pipelining,
permit_mynetworks,
permit_sasl_authenticated,
reject_unauth_destination,
reject_rbl_client zen.spamhaus.org,
reject_rbl_client bl.spamcop.net,
reject_rbl_client 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/vmail_aliases и /etc/postfix/aliases  , ако няма да ползваме alias-и (препратки), а ако искате да конфигурирате такива, то те се описват във формата от втората графа само във файл /etc/postfix/vmail_aliases:

touch /etc/postfix/vmail_aliases
touch /etc/postfix/aliases
info@mydomain.com           othermailbox@mydomain.com

3.5. Обновяваме конфигурацията, направена до момента, изпълнявайки командите:

postmap /etc/postfix/vmail_domains
postmap /etc/postfix/vmail_mailbox
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 има интервал.

4. Преместваме файла, който е по подразбиране от 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
disable_plaintext_auth = no
auth_mechanisms = plain login
mail_access_groups = vmail
default_login_user = vmail
first_valid_uid = 2222
first_valid_gid = 2222
mail_location = 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 allow_all_users=yes
}
service auth {
    unix_listener auth-client {
        group = postfix
        mode = 0660
        user = postfix
    }
unix_listener auth-userdb {
group = vmail
mode = 0660
user = vmail
} user = root } service imap-login { process_min_avail = 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


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

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

postmap /etc/postfix/vmail_mailbox

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

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

postmap /etc/postfix/vmail_mailbox

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

postmap /etc/postfix/vmail_domains
postmap /etc/postfix/vmail_mailbox

 

Публикувано от на

В случай, че имате нужда от техническа помощ или по-детайлна информация свързана с темата от помощната статия, молим да изпратите запитване.

Пусни запитване

Нашият Friendly Geeks техничеки екип с радост ще Ви съдейства денонощно и на:

  • Национален телефон: 0700 300 70 (на цената на един градски разговор)
  • Тел.: +359 2 491 8877