Использование виртуальных пользователей в Postfix+PostfixAdmin
1.mkdir /home/vmail
chmod 770 /home/vmail/
useradd -r -u 1000 -g 12 -d /home/vmail/ -c «Virtual mail» vmail
chown -R vmail:mail /home/vmail/
[root@guk5 ~]# cat /etc/passwd | grep «vmail\|mail»
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
vmail:x:1000:12:Virtual mail:/home/vmail/:/bin/bash
Настройка Postfix
В /etc/postfix/main.cf добавляем
local_recipient_maps = $virtual_mailbox_maps, $virtual_alias_maps
mail_spool_directory = /var/spool/mail
virtual_mailbox_base = /home/vmail
virtual_mailbox_domains = mysql:/etc/postfix/sql/vdomains.cf
virtual_mailbox_maps = mysql:/etc/postfix/sql/vmailbox.cf
virtual_alias_maps = mysql:/etc/postfix/sql/valias.cf
virtual_minimum_uid = 1000
virtual_uid_maps = static:1000
virtual_gid_maps = static:12
virtual_transport = dovecot
dovecot_destination_recipient_limit = 1
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
mkdir /etc/postfix/sql
mysql –u root –p
mysql> create database postfix;
mysql> CREATE USER ‘postfixuser’@’localhost’ IDENTIFIED BY ‘postfixpassword’;
mysql> GRANT ALL PRIVILEGES ON postfix.* TO ‘postfixuser’@localhost;
mysql> flush privileges;
nano /etc/postfix/sql/vdomains.cf
user = postfixuser
password = postfixpassword
hosts = localhost
dbname = postfix
table = domain
select_field = domain
where_field = domain
additional_conditions = and backupmx = ‘0’ and active = ‘1’
query = SELECT domain FROM domain WHERE domain=’%s’ AND backupmx=’0′ AND active=’1′
nano /etc/postfix/sql/vmailbox.cf
user = postfixuser
password = postfixpassword
hosts = localhost
dbname = postfix
table = mailbox
select_field = CONCAT(domain,’/’,maildir)
where_field = username
additional_conditions = and active = ‘1’
query = SELECT CONCAT(domain,’/’,maildir) FROM mailbox WHERE username=’%s’ AND active = ‘1’
nano /etc/postfix/sql/valias.cf
user = postfixuser
password = postfixpassword
hosts = localhost
dbname = postfix
table = alias
select_field = goto
where_field = address
additional_conditions = and active = ‘1’
query = SELECT goto FROM alias WHERE address=’%s’ AND active = ‘1’
Чтобы Dovecot служил локальным транспортом, допишем следующие строчки в /etc/postfix/master.cf
dovecot unix — n n — — pipe
flags=DRhu user=vmail:mail
argv=/usr/libexec/dovecot/deliver -d $(recipient)
Перед строками flags и argv обязательно 2 пробела поставить
Postfix check
Postfix reload
/etc/init.d/postfix restart
Жирным выделено то,на что обратить особое внимание
base_dir = /var/run/dovecot/
protocols = pop3 pop3s imap imaps
syslog_facility = mail
mail_location = maildir:/home/vmail/%d/%u
first_valid_uid = 1000
last_valid_uid = 1000
first_valid_gid = 12
last_valid_gid = 12
protocol imap {
login_executable = /usr/libexec/dovecot/imap-login
mail_executable = /usr/libexec/dovecot/imap
imap_max_line_length = 65536
}
protocol pop3 {
login_executable = /usr/libexec/dovecot/pop3-login
mail_executable = /usr/libexec/dovecot/pop3
pop3_uidl_format = %08Xu%08Xv
}
protocol lda {
postmaster_address = postmaster@guk5.kama.dnsalias.com
sendmail_path = /usr/lib/sendmail
auth_socket_path = /var/run/dovecot/auth-master
}
auth_verbose = no #Эти три опции полезно включать при отладке.
auth_debug = no
auth_debug_passwords = no
auth default {
mechanisms = plain
passdb sql {
args = /etc/dovecot-sql.conf
}
userdb static {
args = uid=1000 gid=12 home=/home/vmail/%d/%n allow_all_users=yes
}
user = nobody
socket listen {
master {
path = /var/run/dovecot/auth-master
mode = 0660
user = vmail
group = mail
}
client {
path = /var/spool/postfix/private/auth
mode = 0660
user = postfix
group = postdrop
}
}
}
dict {
}
plugin {
}
Создаем файл(строчки пронумеровал только для наглядности)
/etc/dovecot-sql.conf
1)driver = mysql
2)connect = host=localhost dbname=postfix user=postfixuser password=postfixpassword
3)default_pass_scheme = MD5
4)user_query = SELECT ‘/home/vmail/%d/%n’ as home, ‘maildir:/home/vmail/%d/%n’ as mail, 4)1000 AS uid, 12 AS gid, concat(‘dirsize:storage=’, quota) AS quota FROM mailbox WHERE 4)username = ‘%u’ AND active = ‘1’
5)password_query = SELECT username as user, password, ‘/home/vmail/%d/%n’ as 5)userdb_home, ‘maildir:/home/vmail/%d/%n’ as userdb_mail, 1000 as userdb_uid, 12 as 5)userdb_gid FROM mailbox WHERE username = ‘%u’ AND active = ‘1’
Важно,чтобы все,что с 4 было на одной строки,а также,все,что с 5 -на одной строке.
/etc/init.d/dovecot restart
PostfixAdmin
Cd /root
Отсюда http://sourceforge.net/projects/postfixadmin/files/ заружаем PostfixAdmin
tar xvfz postfixadmin-2.3.6.tar.gz
mv postfixadmin-2.3.6 postfixadmin
cp -pr postfixadmin /var/www/html/
nano /var/www/html/postfixadmin/config.inc.php
$CONF[‘configured’] = true;
$CONF[‘postfix_admin_url’] = »;
$CONF[‘default_language’] = ‘ru’;
$CONF[‘database_type’] = ‘mysql’;
$CONF[‘database_host’] = ‘localhost’;
$CONF[‘database_user’] = ‘postfixuser’;
$CONF[‘database_password’] = ‘postfixpassword’;
$CONF[‘database_name’] = ‘postfix’;
$CONF[‘encrypt’] = ‘md5’; # по умолчанию стоит $CONF[‘encrypt’] = ‘md5crypt’;
В броузере набираем http://<sitename>/postfixadmin/setup.php
Вводим пароль(например,123456)
Жмем кнопку Generate..
Получаем пароль hash-который подставляем в
nano /var/www/html/postfixadmin/config.inc.php
в параметр
$CONF[‘setup_password’] = »;
После чего заходим по
http://<sitename>/postfixadmin/login.php ввод им пароль,указанный ранее(123456) и создаем учетную запись администратора(вводим имяв формате логин@domain и устанавливаем пароль для него)
После чего заходит под вновь созданной учеткой и создаем вирт домены и почт ящики
Если пароль для админа установили при настройке по умолчанию
$CONF[‘encrypt’] = ‘md5crypt’;
А потом изменили на
$CONF[‘encrypt’] = ‘md5′; ,тогда необходимо изменить парольв базе для этой учетки,предварительно узнав его хеш
[root@guk5 ~]# dovecotpw -s PLAIN-MD5 -p 123
{PLAIN-MD5}202cb962ac59075b964b07152d234b70
mysql>update admin set password=’202cb962ac59075b964b07152d234b70′ where username=’admin@kama.dnsalias.com’;
mysql> flush privileges;
dovecotpw -s MD5-CRYPT -p password –для шифрованного MD5
т.е ,если используется $CONF[‘encrypt’] = ‘md5crypt’;
dovecotpw -s PLAIN-MD5 –p password — для обычного MD5
т.е ,если используется $CONF[‘encrypt’] = ‘md5’;
http://hightechsorcery.com/2011/03/resetting-postfixadmin-password/
http://sourceforge.net/p/postfixadmin/discussion/676076/thread/466490b1
Полезные ссылки:
- http://debian.asy.org.ua/5-postfix-postfixadmin-dovecot-ssl-roundcube.html
- http://rtfm.co.ua/freebsd-ustanovka-i-nastrojka-postfixadmin/
- http://rtfm.co.ua/freebsd-stroim-pochtovuyu-sistemu-postfix-dovecot-mysql-postfix-admin-chast-1-ustanovka-i-nastrojka-postfix-admin/
- http://bezha.od.ua/centos-postfix-postfixadmin/
- http://www.linux.profiua.com/ustanovka-postfix-admin-v-rhelcentos-5/
- http://linuxforum.ru/viewtopic.php?id=21932
- http://fan0o.wordpress.com/2012/10/24/mail-server-setup-centos/
- http://serion.co.nz/howto/howto-setup-mailserver-using-postfix-mysql-dovecot-postfixadmin-amavis-new
- http://stopxaker.ru/showthread.php?t=40
- http://revdisk.org/blog/?p=141
- http://flance.onego.ru/2011/08/04/304
- http://unixzen.ru/%D0%B1%D0%B0%D0%B7%D0%BE%D0%B2%D0%B0%D1%8F-%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0-%D0%BF%D0%BE%D1%87%D1%82%D0%BE%D0%B2%D0%BE%D0%B3%D0%BE-%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%B0-post/
- http://mysyura.in.ua/postfixclamavspamassassin/
- http://bozza.ru/art-169.html