установка и запуск Openchange
Для начала настроим postfix и dovecot
Для корректной работы необходимо отключить iptables и selinux
Настроим сетевое подключение и пропишем днс серверы.
Установим mysql
yum install mysql mysql-server mysql-devel -y
Добавим его в автозагрузку
chkconfig mysqld on
Запустим его
service mysqld start
Настроим сервер на запрос пароля при подключение
mysqlsecureinstallation ## Тут задается пароль пользователю root сервера mysql(не системному)
Заходим в консоль mysql и создаем базу и пользователя для работы с почтой
mysql -u root -p (после вводим пароль root на mysql)
create database mail;
grant all privileges on mail.* to 'postfix'@'localhost' identified by '123qaz';
exit
Непосредственно установка и настройка postfix
yum install postfix pam mod_ssl openssl crypto-utils mc system-config-firewall-tui setuptool wget -y
сделаем копию всей парки etc в домашний каталог root
tar czvf /root/etc1.tar.gz /etc
Заменим содержимое /etc/postfix/main.cf следующим
softbounce = no
queuedirectory = /var/spool/postfix
daemondirectory = /usr/libexec/postfix
mailowner = postfix
defaultprivs = nobody
inetinterfaces = all
myhostname = mx.nadejnei.net
mydomain = nadejnei.net
myorigin = $mydomain
mydestination = $myhostname,localhost.$myhostname,localhost
localrecipientmaps = proxy:unix:passwd.byname $aliasmaps
unknownlocalrecipientrejectcode = 550
mynetworks = 127.0.0.0/8
relaydomains =
aliasmaps = hash:/etc/aliases
aliasdatabase = hash:/etc/aliases
mailspooldirectory = /var/mail
smtpdbanner = $myhostname ESMTP
debugpeerlevel = 2
debugpeerlist = 127.0.0.1
debuggercommand =
PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
xxgdb $daemondirectory/$processname $processid & sleep 5
sendmailpath = /usr/sbin/sendmail
mailqpath = /usr/bin/mailq
setgidgroup = postdrop
htmldirectory = no
manpagedirectory = /usr/local/man
config_directory = /etc/postfix
######################################
virtualmailboxdomains = mysql:$configdirectory/sql/vdomains.cf
virtualmailboxbase = /var/vmail
virtualmailboxmaps = mysql:$configdirectory/sql/vmailbox.cf
virtualaliasmaps = mysql:$configdirectory/sql/valias.cf
virtualminimumuid = 1150
virtualuidmaps = static:1150
virtualgidmaps = static:12
virtualtransport = dovecot
dovecotdestinationrecipientlimit = 1
smtpdsaslauthenable = yes
smtpdsaslexceptionsnetworks = $mynetworks
smtpdsaslsecurityoptions = noanonymous
brokensaslauthclients = yes
smtpdsasltype = dovecot
smtpdsasl_path = /var/spool/postfix/private/dovecot-auth
#################################################
smtpdrecipientrestrictions = permitmynetworks,
permitsaslauthenticated,
rejectunauthdestination,
rejectnonfqdnrecipient,
rejectinvalidhostname,
rejectunknownrecipientdomain,
rejectunknownclient,
rejectunlistedrecipient,
rejectunverifiedrecipient,
rejectunauthpipelining,
rejectrblclient cbl.abuseat.org,
rejectrblclient dialups.mail-abuse.org,
rejectrblclient bl.spamcop.net,
rejectrblclient zen.spamhaus.org,
rejectrbl_client sbl-xbl.spamhaus.org,
permit
создадим пользователя
useradd -r -u 1150 -g mail -d /var/vmail -s /sbin/nologin -c Virtual vmail
Здесь правило rejectunauthdestination - должно запрещать открытый релей через ваш сервер.
Создадим дополнительные конфигурационные файлы, которые указаны в /etc/postfix/main.cf, эти файлы отвечают за
обращение к базе данных MySQL
mkdir /etc/postfix/sql
touch /etc/postfix/sql/vdomains.cf
добавим в него
user = postfix
password = password
hosts = localhost
dbname = mail
table = domain
selectfield = domain
wherefield = domain
additional_conditions = and backupmx = '0' and active = '1'
touch /etc/postfix/sql/vmailbox.cf
запишем в него
password = password
hosts = localhost
dbname = mail
table = mailbox
selectfield = CONCAT(domain,'/',maildir)
wherefield = username
additional_conditions = and active = '1'
touch /etc/postfix/sql/valias.cf
запишем в него
user = postfix
'
password = password
hosts = localhost
dbname = mail
table = alias
selectfield = goto
wherefield = address
additional_conditions = and active = '1
Установим Dovecot
yum install dovecot dovecot-mysql -y
Чтобы Dovecot служил локальным транспортом, допишем следующие строчки в /etc/postfix/master.cf
dovecot unix - n n - - pipe
flags=DRhu user=vmail:mail argv=/usr/libexec/dovecot/deliver -d $(recipient) \\
В конец main.cf добавим
Чтобы лучше отбивался спам, добавим также следующие ограничения:
smtpdclientrestrictions =
rejectunauthpipelining,
permitsaslauthenticated,
permitmynetworks,
rejectunknownclienthostname,
permit
smtpdhelorestrictions =
permitmynetworks,
permitsaslauthenticated,
rejectinvalidhostname,
rejectinvalidhelohostname,
rejectunknownhostname,
rejectnonfqdnhelohostname,
rejectunknownhelohostname,
permit
smtpdsenderrestrictions =
permitsaslauthenticated,
permitmynetworks,
rejectnonfqdnsender,
rejectauthenticatedsenderloginmismatch,
rejectunauthenticatedsenderloginmismatch,
rejectunknownsenderdomain,
permitsaslauthenticated,
rejectsenderlogin_mismatch
permit
Скопируем etc еще раз уже под номером 2 см выше.
Настроим dovecot
Заменим содержимое /etc/dovecot/dovecot.conf следующим
# 2.0.9: /etc/dovecot/dovecot.conf
# OS: Linux 2.6.32-220.7.1.el6.i686 i686 CentOS release 6.6 (Final) ext4
authdebug = yes
authdebugpasswords = yes
authmechanisms = plain login cram-md5
authverbose = yes
basedir = /var/run/dovecot/
disableplaintextauth = no
ssl = no
firstvaliduid = 1150
lastvaliduid = 1150
logtimestamp = %Y-%m-%d %H:%M:%S
maildebug = yes
mail_location = maildir:/var/vmail/%d/%u
passdb {
args = /etc/dovecot/dovecot-sql.conf
driver = sql
}
protocols = imap pop3
service auth {
unixlistener /var/spool/postfix/private/dovecot-auth {
user = postfix
group = postfix
mode = 0660
}
unixlistener auth-master {
user = vmail
group = mail
mode = 0660
}
unixlistener auth-userdb {
user = vmail
group = mail
mode = 0660
}
#user=root
}
service imap-login {
executable = /usr/libexec/dovecot/imap-login
inetlistener imap {
address = *
port = 143
}
}
service imap {
executable = /usr/libexec/dovecot/imap
}
service pop3-login {
executable = /usr/libexec/dovecot/pop3-login
inetlistener pop3 {
address = *
port = 110
}
}
service pop3 {
executable = /usr/libexec/dovecot/pop3
}
userdb {
args = /etc/dovecot/dovecot-sql.conf
driver = sql
}
protocol lda {
authsocketpath = /var/run/dovecot/auth-master
postmasteraddress = admin@point.local
}
создаем /etc/dovecot/dovecot-sql.conf и записываем в него:
driver = mysql
connect = host=localhost dbname=mail user=postfix password=password
defaultpassscheme = CRAM-MD5
userquery = SELECT '/var/vmail/%d/%n' as home, 'maildir:/var/vmail/%d/%n'as mail, 1150 AS uid, 12 AS gid,
concat('dirsize:storage=', quota) AS quota FROM mailbox WHERE username = '%u' AND active = '1'
passwordquery = SELECT username as user, password, '/var/vmail/%d/%n' as userdbhome, 'maildir:/var/vmail/%d/%n' as userdbmail, 1150 as userdbuid, 12 asuserdbgid FROM mailbox WHERE username = '%u' AND active = '1'
Установим Postgrey
для этого установим репозиторий rpmforge
rpm -Uvh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
установим Postgrey:
yum install postgrey -y
После установки рекомендуется отключить репозиторий rpmforge в /etc/yum.repos.d/rpmgorge.repo проставить enable=0
после строки rejectunauthdestination файла main.cf вставляем
check_policy_service unix:/var/spool/postfix/postgrey/socket,
Установим антивирус Clamav
Для этого подключим репозиторий epel
rpm -Uvh http://mirror.yandex.ru/epel/6Server/x86_64/epel-release-6-8.noarch.rpm
yum install clamav clamav-server clamsmtp –y
Обновим и установим и включим автобновление
fresclam -v fresclam -d
Сохраним исходный конфиг
mv /etc/clamsmtpd.conf /etc/clamsmtpd.conf.orig
и создадим новый
touch /etc/clamsmtpd.conf
отредактируем его
OutAddress: 10026
TimeOut: 180
KeepAlives: 0
XClient: on
Listen: 127.0.0.1:10025
ClamAddress: /var/run/clamav/clamd.sock
Header: X-Virus-Scanned: ClamAV using ClamSMTP
TempDirectory: /var/tmp
Action: drop
Quarantine: on
User: clam
Дадим пользователю права доступа к нужным папкам и файлам
chown clam:mail -R /var/run/clamd.clamsmtp/ chown clam:clam -R /var/lib/clamd.clamsmtp
Подключим фильтрацию вирусов к postfix
в /etc/postfix/main.cf
добавим
contentfilter = scan:127.0.0.1:10025
receiveoverrideoptions = noaddress_mappings
а в master.cf
vi /etc/postfix/master.cf
scan unix - - n - 16 smtp -o smtpsendxforward_command=yes
127.0.0.1:10026 inet n - n - 16 smtpd
-o contentfilter=
-o receiveoverrideoptions=nounknownrecipientchecks,noheaderbodychecks
-o smtpdhelorestrictions=
-o smtpdclientrestrictions=
-o smtpdsenderrestrictions=
-o smtpdrecipientrestrictions=permitmynetworks,reject
-o mynetworksstyle=host
-o smtpdauthorizedxforwardhosts=127.0.0.0/8
Установим Postfixadmin и apache
yum -y install httpd php php-imap php-mbstring php-common php-pdo php-mysql php-cli
перейдем в /var/www/html и скачаем postfixadmin и распакуем его
cd /var/www/html
wget http://sourceforge.net/projects/postfixadmin/files/postfixadmin/postfixadmin-2.91/postfixadmin-2.91.tar.gz/download -O postfixadmin-2.91.tar.gz
tar -xvzf postfixadmin-2.91.tar.gz
mv postfixadmin-2.91/ postfixadmin
cd postfixadmin
Сменим владельца на apache
chown -R apache:apache /var/www/html/postfixadmin/templates_c
откроем /var/www/html/postfixadmin/config.inc.php и укажем настроики
$CONF['configured'] = true;
$CONF['databasetype'] = 'mysql';
$CONF['databasehost'] = 'localhost';
$CONF['databaseuser'] = 'postfix';
$CONF['databasepassword'] = 'password';
$CONF['databasename'] = 'mail';
$CONF['encrypt'] = 'dovecot:CRAM-MD5';
$CONF['dovecotpw'] = «/usr/bin/doveadm pw»;
$CONF['emailcheckresolve_domain']='YES';
Включаем автозагрузку всего что нужно
chkconfig mysqld on chkconfig dovecot on chkconfig postfix on chkconfig httpd on chkconfig postgrey on chkconfig clamd on chkconfig clamsmtpd on chkconfig saslauthd on