设为首页 收藏本站
查看: 1342|回复: 0

[经验分享] 源码安装postfix extmail邮件系统

[复制链接]

尚未签到

发表于 2015-11-24 09:58:58 | 显示全部楼层 |阅读模式
  系统和软件
  Centos 5.5
  httpd-2.2.17.tar.gz
  mysql-5.1.53.tar.gz
  php-5.3.3.tar.gz
  cyrus-courier-authlib-0.63.0.tar.bz2
  courier-imap-4.6.0.tar.bz2
  sasl-2.1.23.tar.gz
  maildrop-2.5.2.tar.bz2
  postfix-2.7.2.tar.gz
  clamav-0.96.5.tar.gz
  amavisd-new-2.6.4.tar.gz
  Mail-SpamAssassin-3.3.1.tar.gz
  pcre-8.01.tar.bz2
  extmail-1.2.tar.gz
  extman-1.1.tar.gz
  
  1.系统安装
  定制选择开发包和开发工具,其它可不安装
  禁用Firewall和SELinux
  2.创建src目录,然后上传源码包到此目录下
  mkdir src
cd src
  3.时间同步
yum install ntp -y
与国家授时中心同步时间
ntpdate 210.72.145.44
写入BIOS
hwclock -w
  4安装 mysql
groupadd mysql
useradd -g mysql mysql
tar zxvf mysql-5.1.53.tar.gz
cd mysql-5.1.53
可以通过查看INSTALL-SOURCE内容来了解如何安装
配置参数
./configure --prefix=/usr/local/mysql --enable-thread-safe-client --enable-local-infile --with-charset=gbk --with-extra-
  charsets=all --with-low-memory
make
make install
创建mysql配置文件
cp support-files/my-medium.cnf /etc/my.cnf
设置mysql自启动
cp support-files/mysql.server /etc/rc.d/init.d/mysqld
chmod 755 /etc/rc.d/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on
初始化数据库
cd /usr/local/mysql
chown -R mysql:mysql .
bin/mysql_install_db --user=mysql
chown -R root .
chown -R mysql var
后台启动
bin/mysqld_safe --user=mysql &
查看是否启动
netstat -ant
  tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN
  配置库文件搜索路径
echo "/usr/local/mysql/lib/mysql" >> /etc/ld.so.conf
ldconfig
查看
ldconfig -v
添加环境变量
PATH=$PATH:/usr/local/mysql/bin
export PATH
  
  5安装apache
cd /root/src/
tar zxvf httpd-2.2.17.tar.gz
cd httpd-2.2.17
配置参数
./configure --prefix=/usr/local/httpd --with-mysql=/usr/local/mysql --enable-so --enable-track-vars --enable-rewrite --with-
  zlib --enable-mods-shared=all --enable-suexec --with-suexec-caller=daemon --with-suexec-docroot=/var/www
make
make install
  编辑httpd.conf
vi /usr/local/httpd/conf/httpd.conf
将网站根目录指定到/var/www
#DocumentRoot "/usr/local/httpd/htdocs"
DocumentRoot "/var/www"
  <Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
   # Deny from all
    allow from all
</Directory>
  #<Directory &quot;/usr/local/httpd/htdocs&quot;>
  <Directory &quot;/var/www&quot;>
  创建目录
mkdir /var/www
设置httpd自启动
echo &quot;/usr/local/httpd/bin/apachectl start &quot; >> /etc/rc.local
  启动
/usr/local/httpd/bin/apachectl start
测试httpd是否正常
netstat -ant
tcp        0      0 :::80                       :::*                        LISTEN
6安装PHP
cd /root/src/
tar zxvf php-5.3.3.tar.gz
cd php-5.3.3  
配置参数
./configure --prefix=/usr/local/php --with-apxs2=/usr/local/httpd/bin/apxs --with-mysql=/usr/local/mysql --with-
  mysqli=/usr/local/mysql/bin/mysql_config --with-xml --with-png --with-jpeg --with-zlib --with-freetype --with-gd --enable-
  track-vars --enable-mbstring=all
  enable-track-vars 为启动cookie的get/post等追踪功能
报错
configure: error: libpng.(a|so) not found.
安装
yum install libpng-devel
  Notice: Following unknown configure options were used:
  --with-xml
--with-png
--with-jpeg
--with-freetype
--enable-track-vars
--with-libxml-dir=
--with-png-dir=
--with-jpeg-dir
--with-freetype-dir
make
make install
  configure: error: libpng.(a|so) not found.
yum install libpng-devel
yum install freetype-devel
  ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/httpd/bin/apxs --with-mysql=/usr/local/mysql --with-
  mysqli=/usr/local/mysql/bin/mysql_config --with-libxml-dir --with-png-dir --with-jpeg-dir --with-zlib --with-freetype-dir --
  with-gd  --enable-mbstring=all
make
make install
创建PHP配置文件
cp php.ini-production  /usr/local/php/lib/php.ini
编辑httpd.conf 支持php
vi /usr/local/httpd/conf/httpd.conf
添加如下两行
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
  echo &quot;AddType application/x-httpd-php .php&quot; >> /usr/local/httpd/conf/httpd.conf
echo &quot;AddType application/x-httpd-php-source .phps&quot; >> /usr/local/httpd/conf/httpd.conf
  设置请求目录时寻找的资源列表
DirectoryIndex index.html
DirectoryIndex index.html index.php
  测试php
echo &quot;<?php phpinfo() ?>&quot; > /var/www/info.php
/usr/local/httpd/bin/apachectl restart
  打开浏览器查看
  7安装courier-authlib
cd /root/src/
添加vusr用户和vgroup组
groupadd -g 1000 vgroup
useradd -g 1000 -u 1000 -M -s /bin/false vuser
  yum install expect
tar jxvf courier-authlib-0.63.0.tar.bz2
cd courier-authlib-0.63.0
./configure --prefix=/usr/local/courier-authlib --without-stdheaderdir --sysconfdir=/etc --without-authuserdb --without-
  authpam --without-authldap --without-authpwd --without-authshadow --without-authvchkpw --without-authpgsql --without-
  authcustom --with-authmysql --with-mysql-libs=/usr/local/mysql/lib/mysql --with-mysql-includes=/usr/local/mysql/include/mysql
  --with-redhat --with-mailuser=vuser --with-mailgroup=vgroup
make
make install
make install-migrate
make install-configure
更新lib库文件搜索路径
echo &quot;/usr/local/courier-authlib/lib/courier-authlib&quot; >> /etc/ld.so.conf
ldconfig
ldconfig -v
cd /etc/authlib/
修改authdaemonrc文件
vi authdaemonrc
  authmodulelist=&quot;authmysql authpipe&quot;
authmodulelist=&quot;authmysql&quot;
  authmodulelistorig=&quot;authmysql authpipe&quot;
authmodulelistorig=&quot;authmysql&quot;
  daemons=5
daemons=10
  DEBUG_LOGIN=0
DEBUG_LOGIN=2
  编辑authmysqlrc文件
vi authmysqlrc
MYSQL_SERVER            localhost
MYSQL_USERNAME          extmail
MYSQL_PASSWORD          extmail
MYSQL_SOCKET            /tmp/mysql.sock
MYSQL_PORT              3306
MYSQL_OPT               0
MYSQL_DATABASE          extmail
MYSQL_USER_TABLE        mailbox
MYSQL_CRYPT_PWFIELD     password
MYSQL_UID_FIELD         '1000'
MYSQL_GID_FIELD         '1000'
MYSQL_LOGIN_FIELD       username
MYSQL_HOME_FIELD        concat(&quot;/var/mailbox/&quot;,homedir)
MYSQL_NAME_FIELD        name
MYSQL_MAILDIR_FIELD     concat(&quot;/var/mailbox/&quot;,maildir)
  设置courier-authlib开机自启动
  cp /root/src/courier-authlib-0.63.0/courier-authlib.sysvinit /etc/rc.d/init.d/courier-authlib
  chmod 755 /etc/rc.d/init.d/courier-authlib
chkconfig --add courier-authlib
chkconfig courier-authlib on
service courier-authlib start
  
  8安装courier-imap
cd /root/src/
tar jxvf courier-imap-4.6.0.tar.bz2
cd courier-imap-4.6.0
配置参数
./configure --prefix=/usr/local/courier-imap --with-redhat --enable-unicode --disable-root-check --with-trashquota --without
  -ipv6 COURIERAUTHCONFIG='/usr/local/courier-authlib/bin/courierauthconfig'
make
make install
make install-configure
提供POP3服务
vi /usr/local/courier-imap/etc/pop3d
POP3DSTART=NO
POP3DSTART=YES
设置courier-imap开机自启动
cp courier-imap.sysvinit /etc/rc.d/init.d/courier-imapd
chmod 755 /etc/rc.d/init.d/courier-imapd
chkconfig --add courier-imapd
chkconfig courier-imapd on
service courier-imapd start
查看
netstat -ant
tcp        0      0 0.0.0.0:110                 0.0.0.0:*                   LISTEN
  9安装cyrus-sasl
cd /root/src/
删除系统自带的cyrus-sasl
rpm -qa | grep cyrus-sasl | xargs rpm -e --nodeps
rm -rf /usr/lib/sasl
rm -rf /usr/lib/sasl2
tar zxvf cyrus-sasl-2.1.23.tar.gz
cd cyrus-sasl-2.1.23
配置参数
./configure --enable-plain --enable-cram --enable-digest --enable-login --enable-sql --disable-anon --disable-ntlm --disable-
  gssapi --disable-krb4 --disable-otp --disable-srp --disable-srp-setpass --with-mysql=/usr/local/mysql --with-mysql-
  includes=/usr/local/mysql/include/mysql --with-mysql-libs=/usr/local/mysql/lib/mysql --with-authdaemond=/usr/local/courier-
  authlib/var/spool/authdaemon/socket --prefix=/usr/local/cyrus-sasl
make
make install
配置库文件搜索路径
ln -s /usr/local/cyrus-sasl/lib/sasl2 /usr/lib/sasl2
echo &quot;/usr/local/cyrus-sasl/lib&quot; >> /etc/ld.so.conf
ldconfig
ldconfig -v
创建smtpd.conf文件
vi /usr/local/cyrus-sasl/lib/sasl2/smtpd.conf
  pwcheck_method: authdaemond
log_level: 3
mech_list: PLAIN LOGIN
authdaemond_path:/usr/local/courier-authlib/var/spool/authdaemon/socket
  Postfix:Sql_select option missing问题解决
vi /usr/local/cyrus-sasl/lib/sasl2/smtpd.conf
添加
allow_plaintext: true
auxprop_plugin: mysql
sql_hostnames: localhost
sql_user: extmail
sql_passwd: extmail
sql_database: extmail
sql_select: select password from mailbox where username='%u'
  ~
  10安装postfix
cd /root/src/
卸载sendmail
/etc/init.d/sendmail stop
rpm -qa | grep sendmail | xargs rpm -e --nodeps
tar zxvf postfix-2.7.2.tar.gz
cd postfix-2.7.2
========================================================
make makefiles 'CCARGS=-DHAS_MYSQL -I/usr/local/mysql/include/mysql -DUSE_CYRUS_SASL -DUSE_SASL_AUTH -
  I/usr/local/include/sasl''AUXLIBS=-L/usr/local/mysql/lib/mysql -lmysqlclient -lm -lz -L/usr/local/lib -lsasl2'
make
===========================================================
  groupadd -g 105 postfix
useradd -g postfix -u 105 -s /sbin/nologin -M postfix
grooupadd -g 106 postdrop
useradd -g postdrop -u 106 -s /sbin/nologin -M postdrop
  make makefiles 'CCARGS=-DHAS_MYSQL -I/usr/local/mysql/include/mysql -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/local/cyrus-
  sasl/include/sasl' 'AUXLIBS=-L/usr/local/mysql/lib/mysql -lmysqlclient -lz -lm -L/usr/local/cyrus-sasl/lib -lsasl2'
make
make install
tempdir: [/root/src/postfix-2.7.2] /tmp
  11安装pcre
cd /root/src/
tar jxvf pcre-8.01.tar.bz2
cd pcre-8.01
./configure
make
make install
  12安装maildrop
cd /root/src/
tar jxvf maildrop-2.5.2.tar.bz2
cd maildrop-2.5.2
ln -s /usr/local/courier-authlib/bin/courierauthconfig  /usr/bin/courierauthconfig
配置参数
./configure --enable-sendmail=/usr/sbin/sendmail --enable-trusted-users='root vuser' --enable-syslog=1 --enable-maildirquota
  --enable-maildrop-uid=1000 --enable-maildrop-gid=1000 --with-trashquota --with-dirsync --prefix=/usr/local/maildrop
make
make install
cp /usr/local/maildrop/bin/maildrop  /usr/bin/
  检测
maildrop -v
maildrop 2.5.2 Copyright 1998-2005 Double Precision, Inc.
GDBM/DB extensions enabled.
Courier Authentication Library extension enabled.****这一行
Maildir quota extension are now always enabled.
This program is distributed under the terms of the GNU General Public
License. See COPYING for additional information.
创建maildroprc
vi /etc/maildroprc
-----------------------------------
logfile &quot;/var/log/maildrop.log&quot;
to &quot;$HOME/Maildir&quot;
--------------------------------
logfile &quot;/var/mailbox/maildrop.log&quot;
to &quot;$HOME/Maildir&quot;
  touch /var/log/maildrop.log
chown vuser.vgroup /var/log/maildrop.log
  检测
maildrop -V 9 -d wellpan@96090.com
  生成别名二进制文件
newaliases
修改main.cf 文件
  
修改master.cf 文件
  设置postfix开机自启
postfix start
echo &quot;postfix start&quot; >> /etc/rc.local
  检测postfix启动是否正常
netstat -ant
tcp        0      0 0.0.0.0:25                  0.0.0.0:*                   LISTEN
  13extmail依赖关系
  perl -MCPAN -e shell
Are you ready for manual configuration? [yes] no
  vi /usr/lib/perl5/5.8.8/CPAN/Config.pm
'urllist' => [],
'urllist' => [q[http://mirrors.163.com/cpan/]] ,
  http://www.cpan.org/ 查找镜像
  如要重新配置CPAN,可先进入CPAN,然后在CPAN命令行(即CPAN>)键入以下指令:
  CPAN>o conf init
  安装DBD::Mysql 数据库驱动
cpan DBD:mysql
安装Unix-Syslog
cpan Unix::Syslog
  14安装extmail
cd /root/src
tar zxvf extmail-1.2.tar.gz
mkdir /var/www/extsuite
mv extmail-1.2 /var/www/extsuite/extmail
cd /var/www/extsuite/extmail/
创建webmail.cf文件
cp webmail.cf.default webmail.cf
vi webmail.cf
--------------------------------
SYS_MAILDIR_BASE = /home/domains
SYS_MAILDIR_BASE = /var/mailbox
--------------------------------
SYS_MYSQL_USER = db_user
SYS_MYSQL_PASS = db_pass
SYS_MYSQL_DB = extmail
SYS_MYSQL_HOST = localhost
SYS_MYSQL_SOCKET = /var/lib/mysql/mysql.sock
SYS_MYSQL_USER = extmail
SYS_MYSQL_PASS = extmail
SYS_MYSQL_DB = extmail
SYS_MYSQL_HOST = localhost
SYS_MYSQL_SOCKET = /tmp/mysql.sock
---------------------------------------
SYS_AUTHLIB_SOCKET = /var/spool/authdaemon/socket
SYS_AUTHLIB_SOCKET = /usr/local/courier-authlib/var/spool/authdaemon/socket
  配置虚拟主机
vi /usr/local/httpd/conf/httpd.conf
Include conf/extra/httpd-vhosts.conf 去掉注释
  vi  /usr/local/httpd/conf/extra/httpd-vhosts.conf
NameVirtualHost 192.168.15.124:80
  <VirtualHost 192.168.15.124:80>
    DocumentRoot &quot;/var/www/extsuite/extmail/html/&quot;
    ServerName  mail.96090.com
    ScriptAlias /extmail/cgi/  /var/www/extsuite/extmail/cgi/
    Alias /extmail/  /var/www/extsuite/extmail/html/
    ScriptAlias /extman/cgi/  /var/www/extsuite/extman/cgi/
    Alias /extman/  /var/www/extsuite/extman/html/
    SuexecUserGroup vuser vgroup
  <Directory &quot;/var/www/extsuite/&quot;>
   Options FollowSymLinks
   Allowoverride none
   Order allow,deny
   Allow from all
  </Directory>
  </VirtualHost>
  /usr/local/httpd/bin/apachectl restart
chown -R vuser:vgroup /var/www/extsuite/extmail/cgi/
  15extman 安装
extman 依赖关系
安装gd-2.0.35.tar.bz2
cd /root/src/
tar jxvf gd-2.0.35.tar.bz2
cd gd-2.0.35
./configure --with-png --with-freetype --with-jpeg --with-zlib --with-fontconfig
make
make install
  cpan GD
cpan Time::HiRes
cpan File::Tail
  yum install pango-devel
  安装rrdtool
cd /root/src/
tar zxvf rrdtool-1.4.4.tar.gz
cd rrdtool-1.4.4
./configure --prefix=/usr/local/rrdtool --enable-perl-site-install=/usr/lib/perl5
make
make install
  cd /root/src/
tar zxvf extman-1.1.tar.gz
mv extman-1.1 /var/www/extsuite/extman
cd /var/www/extsuite/extman
cp webman.cf.default webman.cf
vi webman.cf
-----------------------------------------
YS_MAILDIR_BASE = /home/domains
SYS_MAILDIR_BASE = /var/mailbox
--------------------------------------------
SYS_MYSQL_SOCKET = /var/lib/mysql/mysql.sock
SYS_MYSQL_SOCKET = /tmp/mysql.sock
  建立extmail数据库
cd docs/
vi init.sql
:%s/extmail.org/96090.com/g
/usr/local/mysql/bin/mysql -u root -p < extmail.sql
/usr/local/mysql/bin/mysql -u root -p < init.sql
chown -R vuser:vgroup /var/www/extsuite/extman/cgi/
创建运行时需要的临时目录
mkdir /tmp/extman
mkdir /var/mailbox
chown -R vuser:vgroup /tmp/extman
chown -R vuser:vgroup /var/mailbox
  配置postfix虚拟域
cp mysql_virtual_* /etc/postfix/
  配置extman图形日志
cd /var/www/extsuite/extman/addon/
cp -r mailgraph_ext /usr/local/
  配置extman图形监控
cpan Time::HiRes
cpan File::Tail
  /usr/local/mailgraph_ext/mailgraph-init start
echo &quot;/usr/local/mailgraph_ext/mailgraph-init start&quot; >> /etc/rc.local
  启动cmdserver(在后台显示系统信息)
/var/www/extsuite/extman/daemon/cmdserver --daemon
添加开机起动
echo &quot;/var/www/extsuite/extman/daemon/cmdserver -v -d&quot; >> /etc/rc.d/rc.local
  系统控制 服务状态 都是叉
extman/daemon/cmd_plugin/linux-cmd里相关路径
my $web_init = '/etc/init.d/httpd';
my $mta_init = '/etc/init.d/postfix';
my $fcgi_init = '/var/www/extsuite/extmail/dispatch-init';
my $slockd_init = '/usr/local/slockd/slockd-init';
my $dspam_init = '/etc/init.d/dspamd';
my $mysql_init = '/etc/init.d/mysqld';
my $ldap_init = '/etc/init.d/ldap';
修改成对应的路径
  安装SpamAssassin
cd /root/src/
tar zxvf Mail-SpamAssassin-3.3.1.tar.gz
cd Mail-SpamAssassin-3.3.1
perl Makefile.PL
REQUIRED module missing: Digest::SHA
REQUIRED module missing: HTML::Parser
REQUIRED module missing: Net::DNS
REQUIRED module missing: NetAddr::IP
REQUIRED module missing: Archive::Tar
REQUIRED module missing: IO::Zlib
optional module missing: Digest::SHA
optional module missing: Mail::SPF
optional module missing: IP::Country
optional module missing: Razor2
optional module missing: Net::Ident
optional module missing: IO::Socket::INET6
optional module missing: IO::Socket::SSL
optional module missing: Compress::Zlib
optional module missing: Mail::DKIM
optional module missing: LWP::UserAgent
optional module missing: HTTP::Date
optional module missing: Encode::Detect
  cpan Digest::SHA
|
|
cpan Encode::Detect
  关于cpan Mail::SPF
Prereq 'v0.002.1' for 'Net::DNS::Resolver::Programmable' is not supported by Module::Build::Compat
  cpan Net::DNS::Resolver::Programmable
cpan Error
perl -MCPAN -e &quot;get(Mail::SPF)&quot;
cd /root/.cpan/build/Mail-SPF-v2.007/
perl Build.PL
./Build
./Build test
./Build installdeps before
./Build install
  关于Razor2
cpan Razor2::Client::Agent
  perl Makefile.PL
make
make install
  wget -N -P /usr/share/spamassassin www.ccert.edu.cn/spam/sa/Chinese_rules.cf
  vi /etc/mail/spamassassin/local.cf
required_hits 10.0
#rewrite_subject 1
required_score 5.0
rewrite_header Subject *****SPAM*****
report_safe 1
use_bayes 1
bayes_auto_learn 1
skip_rbl_checks 1
use_razor2 0
use_pyzor 0
ok_locales all
  测试spamassassin
spamassassin -t < sample-nonspam.txt > nonspam.out
spamassassin -t < sample-spam.txt > spam.out
查看测试结果:
less nonspam.out
less spam.out
检查配置文件
spamassassin -d --lint
Apr  2 03:37:01.120 [3272] warn: config: failed to parse line, skipping, in &quot;/etc/mail/spamassassin/local.cf&quot;: rewrite_subject 1
Apr  2 03:37:01.296 [3272] warn: lint: 1 issues detected, please rerun with debug enabled for more information
正常没有输出  
  查看
  ps -aux | grep spamd
  
  安装clamav
groupadd clamav
useradd -g clamav -s /sbin/nologin -M clamav
groupadd amavis
useradd -g amavis -s /sbin/nologin -M amavis
  cd /root/src
tar zxvf clamav-0.96.5.tar.gz
cd clamav-0.96.5
./configure --prefix=/usr/local/clamav --with-dbdir=/usr/local/share/clamav --sysconfdir=/usr/local/clamav/etc --disable-zlib
  -vcheck
  make
make install
  建立日志所在的目录、进程与socket所在的目录,并让它属于clamav用户
#!/bin/bash
# create directory for clamav
mkdir /var/log/clamav
chmod -R 744 /var/log/clamav
chown -R amavis:amavis /var/log/clamav
chown -R amavis.amavis /usr/local/share/clamav
mkdir /var/run/clamav
chmod 700 /var/run/clamav
chown amavis.amavis /var/run/clamav
  cd /usr/local/clamav/etc
  vi clamd.conf
LogFile /var/log/clamav/clamd.log
LogSyslog yes
LogFacility LOG_MAIL
LogVerbose yes
PidFile /var/run/clamav/clamd.pid
DatabaseDirectory /usr/local/share/clamav
LocalSocket /var/run/clamav/clamd.socket
StreamMaxLength 20M
User amavis
ScanELF yes
ScanPDF yes
ScanMail yes
PhishingSignatures yes
  vi freshclam.conf
DatabaseDirectory /usr/local/share/clamav
UpdateLogFile /var/log/clamav/freshclam.log
LogVerbose yes
LogSyslog yes
LogFacility LOG_MAIL
PidFile /var/run/freshclam.pid
DatabaseOwner amavis
DatabaseMirror db.CN.clamav.net
DatabaseMirror database.clamav.net
DatabaseMirror database.clamav.net
  /usr/local/clamav/bin/freshclam  手动更新
  crontab -e 定时更新
00 23 * * * /usr/local/clamav/bin/freshclam
  配置库文件搜索路径
echo &quot;/usr/local/clamav/lib&quot; >> /etc/ld.so.conf
ldconfig
ldconfig -v
启动
/usr/local/clamav/sbin/clamd start
配置clamav开机启动
echo &quot;/usr/local/clamav/sbin/clamd start&quot; >> /etc/rc.local
  安装amavisd-new
创建运行时需要的目录
  cd /root/src/
tar zxvf amavisd-new-2.6.4.tar.gz
cd amavisd-new-2.6.4
#!/bin/bash
cd /root/postfix/amavisd-new-2.6.4
mkdir -p /var/amavis /var/amavis/tmp /var/amavis/var /var/amavis/db
chown -R amavis:amavis /var/amavis
chmod -R 750 /var/amavis
cp amavisd /usr/local/sbin/
chown root /usr/local/sbin/amavisd
chmod 755 /usr/local/sbin/amavisd
cp amavisd.conf /etc/
chown root /etc/amavisd.conf
chmod 644 /etc/amavisd.conf
mkdir /var/virusmails
chown amavis:amavis /var/virusmails
chmod 750 /var/virusmails
  vi /etc/amavisd.conf
$daemon_user = 'amavis';
$daemon_group = 'amavis';
$mydomain = 'ctt.cnn';
$virus_admin = &quot;postmaster/@$mydomain&quot;;
$mailfrom_notify_admin = &quot;postmaster/@$mydomain&quot;;
$mailfrom_notify_recip = &quot;postmaster/@$mydomain&quot;;
$mailfrom_notify_spamadmin = &quot;postmaster/@$mydomain&quot;;
$mailfrom_to_quarantine = '';
virus_admin_maps => [&quot;postmaster/@$mydomain&quot;],  //指定报告病毒和垃圾邮件时发送系统邮件的用户身份
spam_admin_maps => [&quot;postmaster/@$mydomain&quot;],
  ? DetectPUA yes     //去掉前面的注释  此版本没有
启用ClamAV,(大概在第363行)修改如下5行:
['ClamAV-clamd',
/&ask_daemon, [&quot;CONTSCAN {}/n&quot;, &quot;/var/run/clamav/clamd.socket&quot;],
qr//bOK$/, qr//bFOUND$/,
qr/^.*?: (?!Infected Archive)(.*) FOUND$/ ],
['Mail::ClamAV', /&ask_clamav, &quot;*&quot;, [0], [1], qr/^INFECTED: (.&#43;)/],
  测试启动amavisd
/usr/local/sbin/amavisd debug
IO::Stringy
  MIME::Words
  MIME::Head
  MIME::Body
  MIME::Entity
  MIME::Parser
  MIME::Decoder
  MIME::Decoder::Base64
  MIME::Decoder::Binary
  MIME::Decoder::QuotedPrint
  MIME::Decoder::NBit
  MIME::Decoder::UU
  MIME::Decoder::Gzip64
  Net::Server
  Net::Server::PreFork
  cpan IO::Stringy
cpan MIME::Words
cpan Net::Server
安装 Convert::BinHex
tar zxvf Convert-BinHex-1.119.tar.gz
cd Convert-BinHex-1.119
perl Makefile.PL
make
make install
  cpan BerkeleyDB
cpan Convert::TNEF
cpan Convert::UUlib
cpan Archive::Zip
  /usr/local/sbin/amavisd debug
  开机启动
cp amavisd_init.sh  /etc/rc.d/init.d/amavisd
chmod &#43;x /etc/rc.d/init.d/amavisd
  vi /etc/rc.d/init.d/amavisd
#prog=&quot;/usr/sbin/amavisd&quot;
prog=&quot;/usr/local/sbin/amavisd&quot;
  chkconfig --add amavisd
  chkconfig --levels 345 amavisd on
service amavisd start
  修改master.cf
vi /etc/postfix/master.cf
  smtp-amavis unix    -    -    n    -    3    smtp
    -o smtp_data_done_timeout=1200
    -o smtp_send_xforward_command=yes
    -o disable_dns_lookups=yes
    -o max_use=10
  127.0.0.1:10025 inet    n       -       n       -       -       smtpd
    -o content_filter=
    -o local_recipient_maps=
    -o relay_recipient_maps=
    -o smtpd_restriction_classes=
    -o smtpd_client_restrictions=
    -o smtpd_helo_restrictions=
    -o smtpd_sender_restrictions=
    -o smtpd_recipient_restrictions=permit_mynetworks,reject
    -o mynetworks=127.0.0.0/8
    -o strict_rfc821_envelopes=yes
    -o smtpd_error_sleep_time=0
    -o smtpd_soft_error_limit=1001
    -o smtpd_hard_error_limit=1000
    -o receive_override_options=no_unknown_recipient_checks,no_header_body_checks
  修改main.cf
vi /etc/postfix/main.cf
# Content-Filter
content_filter = smtp-amavis:[127.0.0.1]:10024
receive_override_options = no_address_mappings
  定制webmail页面
  SYS_SHOW_SIGNUP =
# 首页“注册免费邮箱”的按钮显示开关;1为显示,0为关闭;
关闭 注册免费邮箱
vi /var/www/extsuite/extmail/webmail.cf
SYS_SHOW_SIGNUP =0
  <!--    -->注释
  
  main.cf文件内容
  command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
debug_peer_level = 2
html_directory = no
mail_owner = postfix
mailq_path = /usr/bin/mailq
manpage_directory = /usr/local/man
newaliases_path = /usr/bin/newaliases
queue_directory = /var/spool/postfix
readme_directory = no
sample_directory = /etc/postfix
sendmail_path = /usr/sbin/sendmail
setgid_group = postdrop
  unknown_local_recipient_reject_code = 550
  ##############################BASE################################
myhostname = mail.96090.com
mydomain = 96090.com
mydestination = $myhostname, localhost.$mydomain, localhost
local_recipient_maps =
inet_interfaces = all
myorigin = $mydomain
mynetworks = 192.168.15.0/24 127.0.0.1
  ############################CYRUS-SASL############################
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_invalid_hostname,reject_non_fqdn_hostname,reject_unknown_sender_domain,reject_non_fqdn_sender,reject_non_fqdn_recipient,reject_unknown_recipient_domain,reject_unauth_pipelining,reject_unauth_destination,permit
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $myhostname
smtpd_sasl_security_options = noanonymous
smtpd_sasl_application_name = smtpd
smtpd_banner = Welcome to our $myhostname ESMTP,Warning: Version not Available!
  #######################################Virtual Mailbox Settings#######################################
virtual_mailbox_base = /var/mailbox
virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf
virtual_alias_domains =
virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf
virtual_uid_maps = static:1000
virtual_gid_maps = static:1000
virtual_transport = maildrop
maildrop_destination_recipient_limit = 1
maildrop_destination_concurrency_limit = 1
  # Content-Filter
content_filter = smtp-amavis:[127.0.0.1]:10024
receive_override_options = no_address_mappings
  
  master.cf文件内容
  [iyunv@mail ~]# more /etc/postfix/master.cf | sed -n '/^#/!p'
  
smtp      inet  n       -       n       -       -       smtpd
pickup    fifo  n       -       n       60      1       pickup
cleanup   unix  n       -       n       -       0       cleanup
qmgr      fifo  n       -       n       300     1       qmgr
tlsmgr    unix  -       -       n       1000?   1       tlsmgr
rewrite   unix  -       -       n       -       -       trivial-rewrite
bounce    unix  -       -       n       -       0       bounce
defer     unix  -       -       n       -       0       bounce
trace     unix  -       -       n       -       0       bounce
verify    unix  -       -       n       -       1       verify
flush     unix  n       -       n       1000?   0       flush
proxymap  unix  -       -       n       -       -       proxymap
proxywrite unix -       -       n       -       -       proxymap
smtp      unix  -       -       n       -       -       smtp
relay     unix  -       -       n       -       -       smtp
        -o smtp_fallback_relay=
showq     unix  n       -       n       -       -       showq
error     unix  -       -       n       -       -       error
retry     unix  -       -       n       -       -       error
discard   unix  -       -       n       -       -       discard
local     unix  -       n       n       -       -       local
virtual   unix  -       n       n       -       -       virtual
lmtp      unix  -       -       n       -       -       lmtp
anvil     unix  -       -       n       -       1       anvil
scache    unix  -       -       n       -       1       scache
maildrop  unix  -       n       n       -       -       pipe
  flags=DRhu user=vuser argv=/usr/bin/maildrop -d ${recipient}
  smtp-amavis unix    -    -    n    -    3    smtp
    -o smtp_data_done_timeout=1200
    -o smtp_send_xforward_command=yes
    -o disable_dns_lookups=yes
    -o max_use=10
  127.0.0.1:10025 inet    n       -       n       -       -       smtpd
    -o content_filter=
    -o local_recipient_maps=
    -o relay_recipient_maps=
    -o smtpd_restriction_classes=
    -o smtpd_client_restrictions=
    -o smtpd_helo_restrictions=
    -o smtpd_sender_restrictions=
    -o smtpd_recipient_restrictions=permit_mynetworks,reject
    -o mynetworks=127.0.0.0/8
    -o strict_rfc821_envelopes=yes
    -o smtpd_error_sleep_time=0
    -o smtpd_soft_error_limit=1001
    -o smtpd_hard_error_limit=1000
    -o receive_override_options=no_unknown_recipient_checks,no_header_body_checks
DSC0000.gif
  设置本机防火墙
  #!/bin/bash
INIF=&quot;eth0&quot;
iptables -F
iptables -X
iptables -Z
iptables -P INPUT   DROP
iptables -P OUTPUT  ACCEPT
iptables -P FORWARD ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
  #allow some types of ICMP
AICMP=&quot;0 3 3/4 4 11 12 14 16 18&quot;
  for tyicmp in $AICMP
  do
        iptables -A INPUT -i $INIF -p icmp --icmp-type $tyicmp -j ACCEPT
  done
#allow some servers in
iptables -A INPUT -p TCP -i $INIF --dport  25  --sport 1024:65534 -j ACCEPT     # SMTP
iptables -A INPUT -p TCP -i $INIF --dport  110  --sport 1024:65534 -j ACCEPT     # POP3
iptables -A INPUT -p TCP -i $INIF --dport  80  --sport 1024:65534 -j ACCEPT     # WWW
  iptables -A INPUT -p TCP -i $INIF --dport  22  --sport 1024:65534 -j ACCEPT     # ssh
  #iptables.all
#iptables -A INPUT       -i $INIF -s 140.116.44.253 -j ACCEPT
#iptables.deny
#iptables -A INPUT        -i $INIF -s 140.116.44.125  -j DROP
  开机执行
  echo &quot;/usr/local/src/iptables.sh &quot; >> /etc/rc.local
  备份数据库和邮件
  创建备份目录
  mkdir –p /var/data_bk/mysqlbk
  mkdir –p /var/data_bk/mailbk
  备份脚本
  #!/bin/bash
BackupPath=/var/data_bk
Mysql_bk_dir=$BackupPath/mysqlbk
Mail_bk_dir=$BackupPath/mailbk
LogFile=$BackupPath/backuplog
MailBoxDir=/var/mailbox
  ####################################################################
# define mysql variables                                                     #
####################################################################
NewFile=&quot;$Mysql_bk_dir&quot;/extmail$(date &#43;%Y%m%d).tgz
DumpFile=&quot;$Mysql_bk_dir&quot;/extmail$(date &#43;%Y%m%d).sql
OldFile=&quot;$Mysql_bk_dir&quot;/extmail$(date &#43;%Y%m%d --date='5 days ago').tgz
DbUser=root
DbPasswd=*******
DbName=extmail
####################################################################
#   mysql backup proccess                                                 #
####################################################################
echo &quot;-------------------------------------------&quot; >> $LogFile
echo $(date &#43;&quot;%y-%m-%d %H:%M:%S&quot;) >> $LogFile
echo &quot;--------------------------&quot; >> $LogFile
#Delete Old File
if [ -f $OldFile ]
then
   rm -f $OldFile >> $LogFile 2>&1
   echo &quot;[$OldFile]Delete Old File Success!&quot; >> $LogFile
else
   echo &quot;[$OldFile]No Old Backup File!&quot; >> $LogFile
fi
  if [ -f $NewFile ]
then
   echo &quot;[$NewFile]The Backup File is exists,Can't Backup!&quot; >> $LogFile
else
cd $Mysql_bk_dir
/usr/local/mysql/bin/mysqldump -u $DbUser -p$DbPasswd --opt $DbName > $DumpFile
    tar czf $NewFile extmail$(date &#43;%Y%m%d).sql >> $LogFile 2>&1
    echo &quot;[$NewFile]Backup Success!&quot; >> $LogFile
    rm -rf $DumpFile
fi
  ######################################################################
#     backup mail's user directories and files                                     #
######################################################################
MailFileBk=$Mail_bk_dir/mail$(date &#43;%Y%m%d).tgz
OldMailFileBk=$Mail_bk_dir/mail$(date &#43;%Y%m%d --date='14 days ago').tgz
  if [ -f $OldMailFileBk ]
then
   rm -rf $OldMailFileBk
fi
  if [  -f $MailFileBk ]
   then
   echo &quot;[$MailFileBk]The Backup File is exists,Can't Backup!&quot; >> $LogFile
   else
   cd $Mail_bk_dir
   tar czf $MailFileBk mailbox  >> $LogFile 2>&1
fi
  echo &quot;-------------------------------------------&quot; >> $LogFile
  添加执行计划
  crontab –e
  00 01 * * * /usr/local/src/data_backup.sh
  
  问题
  web可以接收发送邮件
smtp 不可以发送邮件
pop3 可以接收邮件
  warning: SASL authentication failure: cannot connect to Courier authdaemond: Permission denied
  执行
  chmod &#43;x /usr/local/courier-authlib/var/spool/authdaemon
  参考
http://wenku.baidu.com/view/a2543c170b4e767f5acfce1f.html
http://124.232.150.96/post/16/
http://sery.blog.iyunv.com/10037/45500
http://www.postfixvirtual.net/mysqlinstall.html
http://wiki.extmail.org/extmail_solution_for_linux_centos-5

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-142962-1-1.html 上篇帖子: POSTFIX郵件伺服器設定 下篇帖子: 快速搭建基于web的postfix邮件系统
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表