Установим LAMP, Если Вы испльзуете дистрибудив Debian LAMP пропускаем этот шаг.
sudo apt-get install apache2
sudo apt-get install libapache2-mod-php5 php5 php5-common php5-curl php5-gd php5-imagick php5-mcrypt php5-memcache php5-mysql php5-pspell php5-snmp php5-sqlite php5-xmlrpc php5-xsl php5-imap
Устанавливаем MySql сервер
sudo apt-get install mysql-server mysql-client
Проверяем два файла «hosts» и «hostname»
Открываем «hosts»
Открываем «hosts»
nano /etc/hosts
и приводим его к примерно следующему содержанию
127.0.0.1 localhost
your_inet_ip_addr mail.your_domain.com mail
открываем файл «hostname»
nano /etc/hostname
этот файл должен содержать отдну строку:
mail
Приступаем к установке postfix dovecot sasl
sudo apt-get install postfix postfix-mysql dovecot-common dovecot-imapd dovecot-pop3d openssl libsasl2 sasl2-bin libsasl2-modules
Установим postfixadmin
Скачиваем установочный deb пакет
Скачиваем установочный deb пакет
wget http://libnix.com/wp-content/uploads/2011/08/postfixadmin-2.3.2_all.deb
Для установки копируем команду
dpkg -i postfixadmin-2.3.2_all.deb
Если dpkg выдаст ошибку не пугаемся, просто набераем команду:
apt-get install -f
эта команда доустановит все зависимости необходимые данному пакету
во время утановки небходимо ввести пароль для postfixadmin для примера возьмём 123
во время утановки небходимо ввести пароль для postfixadmin для примера возьмём 123
К сожалению, есть вероятность, что установщик пакета не изменит параметров конфигурационного файла config.inc.php, этот файл находится по такому пути: /etc/postfixadmin/config.inc.php
открываем его и проверяем:
открываем его и проверяем:
nano /etc/postfixadmin/config.inc.php
находим такие строки:
$CONF['database_type'] = 'mysql';
$CONF['database_host'] = 'localhost';
$CONF['database_user'] = 'postfixadmin';
$CONF['database_password'] = '123';
$CONF['database_name'] = 'postfixadmin';
$CONF['database_prefix'] = '';
изменяем алгоритм шифрования:
$CONF['encrypt'] = 'md5';
Переходим к настройке postfixadmin через web интерфейс, набираем в браузере:
http://your_ip/postfixadmin/setup.php
Если предыдущие действия выполнены правильно, внизу страницы появится запрос на создание пароля установки.
После ввода пароля должна появится строка с хешем, если так, тогда копируем её и возвращаемся в файл config.inc.php находим там эту строку и вставляем хеш
После ввода пароля должна появится строка с хешем, если так, тогда копируем её и возвращаемся в файл config.inc.php находим там эту строку и вставляем хеш
$CONF['setup_password'] = ' ';
Создаём администратора для postfixadmin в первое поле вводим пароль установки, во второе вводим email администратора например admin@yourdomein.com в третье поле вводим пароль и в четвёртое подтверждение пароля.
Создаём конфигурационные файлы обращения к mysql:
nano /etc/postfix/virtual-alias-maps.cf
вставляем в него следующие строки
user = postfixadmin
password = 123
hosts = 127.0.0.1
dbname = postfixadmin
query = select `goto` from `alias` where `address` = '%s'
nano /etc/postfix/virtual-mailbox-domains.cf
user = postfixadmin
password = 123
hosts = 127.0.0.1
dbname = postfixadmin
query = select 1 from `domain` where `domain` = '%s'
nano /etc/postfix/virtual-mailbox-maps.cf
user = postfixadmin
password = 123
hosts = 127.0.0.1
dbname = postfixadmin
query = select 1 from `mailbox` where `username` = '%s'
Cоздаём пользователя и группу:
groupadd -g 5000 vmail
useradd -g vmail -u 5000 vmail -d /home/vmail -m
У Postfix-а из коробки есть отличный скрипт для управления конфигурацией.
Для ленивых:
создаём в любой дериктории скрипт командой:
Для ленивых:
создаём в любой дериктории скрипт командой:
nano conf_postfix.sh
записываем в него следующее
#!/bin/sh
postconf -e virtual_mailbox_domains=mysql:/etc/postfix/virtual-mailbox-domains.cf
postconf -e virtual_mailbox_maps=mysql:/etc/postfix/virtual-mailbox-maps.cf
postconf -e virtual_alias_maps=mysql:/etc/postfix/virtual-alias-maps.cf
postconf -e virtual_uid_maps=static:5000
postconf -e virtual_gid_maps=static:5000
postconf -e virtual_transport=dovecot
postconf -e dovecot_destination_recipient_limit=1
postconf -e smtpd_tls_cert_file=/etc/ssl/certs/postfix.pem
postconf -e smtpd_tls_key_file=/etc/ssl/private/postfix.pem
postconf -e smtpd_use_tls=yes
postconf -e smtpd_sasl_type=dovecot
postconf -e smtpd_sasl_path=private/auth
postconf -e smtpd_sasl_auth_enable=yes
postconf -e smtpd_recipient_restrictions=permit_sasl_authenticated,reject_unauth_destination
сохраняем и даём права на запуск:
chmod +x conf_postfix.sh
запускаем:
./conf_postfix.sh
Для тех, кто не ищет лёгких путей применяем по очереди данные настройки:
postconf -e virtual_mailbox_domains=mysql:/etc/postfix/virtual-mailbox-domains.cf
postconf -e virtual_mailbox_maps=mysql:/etc/postfix/virtual-mailbox-maps.cf
postconf -e virtual_alias_maps=mysql:/etc/postfix/virtual-alias-maps.cf
postconf -e virtual_uid_maps=static:5000
postconf -e virtual_gid_maps=static:5000
postconf -e virtual_transport=dovecot
postconf -e dovecot_destination_recipient_limit=1
postconf -e smtpd_tls_cert_file=/etc/ssl/certs/postfix.pem
postconf -e smtpd_tls_key_file=/etc/ssl/private/postfix.pem
postconf -e smtpd_use_tls=yes
postconf -e smtpd_sasl_type=dovecot
postconf -e smtpd_sasl_path=private/auth
postconf -e smtpd_sasl_auth_enable=yes
postconf -e smtpd_recipient_restrictions=permit_sasl_authenticated,reject_unauth_destination
Настройка postfix.
Конфиг postfix находится тут /etc/postfix/main.cf открываем его:
Конфиг postfix находится тут /etc/postfix/main.cf открываем его:
nano /etc/postfix/main.cf
Приводим его к такому виду.
# See /usr/share/postfix/main.cf.dist for a commented, more complete version
# Debian specific: Specifying a file name will cause the first
# line of that file to be used as the name. The Debian default
# is /etc/mailname.
#myorigin = /etc/mailname
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no
# appending .domain is the MUA's job.
append_dot_mydomain = no
# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h
readme_directory = no
# TLS parameters
smtpd_tls_cert_file = /etc/ssl/certs/postfix.pem
smtpd_tls_key_file = /etc/ssl/private/postfix.pem
smtpd_use_tls = yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.
myhostname = mail.you_domain.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = $myhostname
mydestination = $myhostname
relayhost =
mynetworks = 127.0.0.0/8 you.inet.ip.0/24
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
virtual_mailbox_domains = mysql:/etc/postfix/virtual-mailbox-domains.cf
virtual_mailbox_maps = mysql:/etc/postfix/virtual-mailbox-maps.cf
virtual_alias_maps = mysql:/etc/postfix/virtual-alias-maps.cf
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000
virtual_transport = dovecot
dovecot_destination_recipient_limit = 1
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions = permit_sasl_authenticated,reject_unauth_destination
Далее открываем файл /etc/postfix/master.cf
nano /etc/postfix/master.cf
и дописываем в конце этого файла следующие строки:
dovecot unix - n n - - pipe flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -d ${recipient}
Настраеваем безопастное соединение SSL/TLS
В консоле набираем:
В консоле набираем:
openssl req -new -x509 -days 3650 -nodes -out /etc/ssl/certs/dovecot.pem -keyout /etc/ssl/private/dovecot.pem
chmod o= /etc/ssl/private/dovecot.pem
openssl req -new -x509 -days 3650 -nodes -out /etc/ssl/certs/postfix.pem -keyout /etc/ssl/private/postfix.pem
chmod o= /etc/ssl/private/postfix.pem
Настраиваем dovecot
открываем главный конфигурационный файл командой
открываем главный конфигурационный файл командой
nano /etc/dovecot/dovecot.conf
Hаходим и исправляем приведённые ниже парпметры:
protocols = imap imaps pop3 pop3s
listen = *
disable_plaintext_auth = no
log_timestamp = "%Y-%m-%d %H:%M:%S "
login_greeting = Dovecot ready.
mail_location = maildir:/home/vmail/%d/%n
mail_privileged_group = vmail
maildir_copy_with_hardlinks = yes
protocol lda {
postmaster_address = postmaster@your_domain.com
hostname = mail.your_domain.com
mail_plugin_dir = /usr/lib/dovecot/modules/lda
auth_socket_path = /var/run/dovecot/auth-master
mail_plugins = sieve
log_path = /home/vmail/dovecot-deliver.log
global_script_path = /home/vmail/globalsieverc
}
auth_verbose = yes
auth_debug = yes
auth_debug_passwords = yes
auth default {
mechanisms = plain login cram-md5
passdb sql {
# Path for SQL configuration file
args = /etc/dovecot/dovecot-sql.conf
}
userdb static {
args = uid=5000 gid=5000 home=/home/vmail/%d/%n allow_all_users=yes
}
userdb sql {
# Path for SQL configuration file
args = /etc/dovecot/dovecot-sql.conf
}
user = vmail
socket listen {
master {
path = /var/run/dovecot/auth-master
mode = 0600
# Default user/group is the one who started dovecot-auth (root)
user = vmail
#group = vmail
}
client {
path = /var/spool/postfix/private/auth
mode = 0660
user = postfix
group = postfix
}
}
Теперь редактируем файл dovecot-sql.conf набираем команду:
nano /etc/dovecot/dovecot-sql.conf
Копируем и вставляем следующие строки
driver = mysql
connect = host=127.0.0.1 dbname=postfixadmin user=root password=123
default_pass_scheme = PLAIN-MD5
password_query = SELECT username as user, password FROM mailbox WHERE username = '%u'
Завершающим этапом будет перезагрузка почтовых сервисов
/etc/init.d/postfix restart && /etc/init.d/dovecot restart
Лог файлы находятся в «/var/log/»
/var/log/mail.err
/var/log/mail.log
/var/log/mail.info
Успехов
Hi,
ОтветитьУдалитьThank you for your page.
Recently I setup a homemade e-mail server and wrote a full detailed tutorial that you can find in
http://cosmolinux.no-ip.org/raconetlinux2/mail.html
using Debian Squeeze, Postfix, Dovecot, SASL, Spamassassin and Squirrel (and a Google account for SMTP relay).
I wish it is helpful to someone.