访问本页面,您的浏览器需要支持JavaScript本文由ilanniweb提供友情赞助,首发于 想要获得更多的文章,可以关注我的微信ilanniweb 在前一篇文章《》中,我们介绍了psotfix邮件服务器搭建所需要的软件,以及各个软件的基本配置。 目前已经达到了通过系统用户可以登录到postfix邮件服务器,但是为了管理的方便和系统安全,我们一般是通过postfix的虚拟用户来管理邮件用户的。 Postfix虚拟用户的原理是,先在系统中创建一个用户,该用户不能登录到系统,然后把邮件用户全部映射到该系统用户的家目录下。 对于OS来说所有的操作都是通过该用户进行的,但是对于postfix的邮件用户来说又是各自独立的。这个和vsftpd虚拟用户的原理相似,然后所有邮件用户的管理都是通过postfixadmin来进行。 有关postfix的虚拟用户,我们需要根据不同的软件进行不同的配置,只有各个软件的协同配合才能达到自由收发邮件的目的,下面分别介绍下。 一、postfix配置虚拟用户 postfix要支持虚拟用户,需要修改的配置文件比较多。 1.1 修改main.cf文件 首先要修改postfix的主配置文件main.cf,如下: vim /etc/postfix/main.cf queue_directory = /var/spool/postfix command_directory = /usr/sbin daemon_directory = /usr/libexec/postfix data_directory = /var/lib/postfix mail_owner = postfix myhostname =
mydomain =
myorigin = $mydomain inet_interfaces = all mydestination = $myhostname, localhost.$mydomain, localhost local_recipient_maps = unknown_local_recipient_reject_code = 550 alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases 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 sendmail_path = /usr/sbin/sendmail.postfix newaliases_path = /usr/bin/newaliases.postfix mailq_path = /usr/bin/mailq.postfix setgid_group = postdrop html_directory = no manpage_directory = /usr/share/man sample_directory = /usr/share/doc/postfix-2.6.6/samples readme_directory = /usr/share/doc/postfix-2.6.6/README_FILES #启用SMTP认证 smtpd_sasl_type = dovecot smtpd_sasl_path = /var/spool/postfix/private/auth smtpd_sasl_application_name = smtpd smtpd_sasl_auth_enable = yes smtpd_sasl_local_domain = $myhostname broken_sasl_auth_clients = yes smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination,reject_unknown_sender_domain smtpd_sasl_security_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination smtpd_client_restrictions = permit_sasl_authenticated smtpd_sasl_security_options = noanonymous proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks $virtual_mailbox_limit_maps #启用虚拟用户 virtual_mailbox_base = /home/vmail/ virtual_mailbox_domains = proxy:mysql:/etc/postfix/sql/mysql_virtual_domains_maps.cf virtual_alias_maps = && proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_maps.cf, && proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_maps.cf, && proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_catchall_maps.cf virtual_mailbox_maps = && proxy:mysql:/etc/postfix/sql/mysql_virtual_mailbox_maps.cf, && proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_mailbox_maps.cf virtual_uid_maps = static:5000 virtual_gid_maps = static:5000 virtual_transport = dovecot dovecot_destination_recipient_limit = 1 注意:postfix主配置文件中,需要注意的地方我已经标注出来了,其中还需要说明的是我们在此启用的虚拟用户是《》中创建的vmail用户,该用户的id是5000,所以在postfix主配置文件会看到vmail的家目录/home/vmail/,以及vmail的id信息5000。 在以下所有的操作中,如果有vmail相关的信息,这个都是和该用户进行关联的。 1.2 修改master.cf文件 在master.cf文件添加如下代码: vim /etc/postfix/master.cf dovecot&& unix& -&&&&&& n&&&&&& n&&&&&& -&&&&&& -&&&&&& pipe flags=DRhu user=vmail:vmail argv=/usr/libexec/dovecot/dovecot-lda -f ${sender} -d ${recipient} 1.3 数据库连接相关文件 连接数据库相关文件有7个,在创建配置文件之前,我们要在/etc/postfix/目录下建立sql目录用来存放这些配置如下: mkdir /etc/postfix/sql/ 现在我们来创建这些配置文件,注意这些配置文件中,有关数据库的部分都是《》中的用户名、密码和数据库。如下: vim /etc/postfix/sql/mysql_virtual_alias_maps.cf user = postfix password = postfix hosts = localhost dbname = postfix query = SELECT goto FROM alias WHERE address='%s' AND active = '1'
vim /etc/postfix/sql/mysql_virtual_alias_domain_maps.cf user = postfix password = postfix hosts = localhost dbname = postfix query = SELECT goto FROM alias,alias_domain WHERE alias_domain.alias_domain = '%d' and alias.address = CONCAT('%u', '@', alias_domain.target_domain) AND alias.active = 1 AND alias_domain.active='1'
vim /etc/postfix/sql/mysql_virtual_alias_domain_catchall_maps.cf user = postfix password = postfix hosts = localhost dbname = postfix query = SELECT goto FROM alias,alias_domain WHERE alias_domain.alias_domain = '%d' and alias.address = CONCAT('@', alias_domain.target_domain) AND alias.active = 1 AND alias_domain.active='1'
vim /etc/postfix/sql/mysql_virtual_domains_maps.cf user = postfix password = postfix hosts = localhost dbname = postfix query = SELECT domain FROM domain WHERE domain='%s' AND active = '1'
vim /etc/postfix/sql/mysql_virtual_mailbox_maps.cf user = postfix password = postfix hosts = localhost dbname = postfix query = SELECT maildir FROM mailbox WHERE username='%s' AND active = '1'
vim /etc/postfix/sql/mysql_virtual_alias_domain_mailbox_maps.cf user = postfix password = postfix hosts = localhost dbname = postfix query = SELECT maildir FROM mailbox,alias_domain WHERE alias_domain.alias_domain = '%d' and mailbox.username = CONCAT('%u','@',alias_domain.target_domain) AND mailbox.active = 1 AND alias_domain.active='1'
vim /etc/postfix/sql/mysql_virtual_mailbox_limit_maps.cf user = postfix password = postfix hosts = localhost dbname = postfix query = SELECT quota FROM mailbox WHERE username='%s' AND active = '1'
1.4 测试sasl与postfix集成 以上配置完毕后,现在我们来测试postfix是否已经正确与cyrus-sasl进行集成,使用如下命令: telnet
注意:图中的命令,该命令需要手工输入,而如果出现250-AUTH PLAIN LOGIN和250-AUTH=PLAIN LOGIN两行,则说明postfix已经正确启用smtp认证。 二、dovecot虚拟用户配置 dovecot配置文件比较多,下面我们一一介绍。 2.1 修改dovecot.conf文件 vim /etc/dovecot/dovecot.conf protocols = imap pop3 listen = * !include conf.d/*.conf passdb { & driver = sql & args = /etc/dovecot/dovecot-sql.conf.ext } userdb { & driver = static & args = uid=5000 gid=5000 home=/home/vmail/%d/%n } #调试日志 auth_debug_passwords=yes mail_debug=yes auth_verbose=yes auth_verbose_passwords=plain
2.2 修改10-auth.conf文件 vim /etc/dovecot/conf.d/10-auth.conf disable_plaintext_auth = no auth_mechanisms = plain login cram-md5 !include auth-system.conf.ext
2.3 修改10-ssl.conf文件 10-ssl.conf文件主要是关于postfix的ssl认证相关的配置,在此我们先禁用ssl。如下: vim /etc/dovecot/conf.d/10-ssl.conf ssl = no
2.4 修改10-mail.conf文件 10-mail.conf文件主要定义邮件用户存储相关信息的位置。如下: vim /etc/dovecot/conf.d/10-mail.conf mail_location = maildir:/home/vmail/%d/%n/Maildir mbox_write_locks = fcntl
2.5 修改10-logging.conf文件 10-logging.conf文件是定义dovecot日志的配置文件,我们也可以不启用此配置文件。但是为了调试我们在此还是启用了该配置文件选项。 注意:如果后续日志中提示没有写入权限的话,修改其权限即可。 vim /etc/dovecot/conf.d/10-logging.conf info_log_path = /var/log/dovecot_info.log debug_log_path = /var/log/dovecot_debug.log
2.6 修改10-master.conf文件 10-master.conf文件定义了dovecot的pop3和imap端口,以及其他的一些信息。 vim /etc/dovecot/conf.d/10-master.conf service imap-login { & inet_listener imap { &&& port = 143 & } } service pop3-login { & inet_listener pop3 { &&& port = 110 & } } service auth { && unix_listener auth-userdb { mode = 0600 &&& user = vmail &&& group = vmail & } & # Postfix smtp-auth unix_listener /var/spool/postfix/private/auth { &&& mode = 0666 &&& user = postfix & } }
2.7 修改15-lda.conf文件 修改15-lda.conf文件,是为了防止dovecot报错,错误如下:
我们只需在15-lda.conf文件中添加postmaster_address = 即可,如下: vim /etc/dovecot/conf.d/15-lda.conf postmaster_address =
2.8 添加dovecot-sql.conf.ext文件 vim /etc/dovecot/dovecot-sql.conf.ext driver = mysql connect = host=localhost dbname=postfix user=postfix password=postfix default_pass_scheme = MD5-CRYPT password_query = SELECT username AS user,password FROM mailbox WHERE username = '%u' AND active='1' user_query = SELECT maildir, 5000 AS uid, 5000 AS gid, CONCAT('dict:storage=',floor(quota/1000),' proxy::quota') as quota FROM mailbox WHERE username = '%u' AND active='1'
三、postfixadmin配置 dovecot配置完毕后,我们现在来配置postfixadmin,postfixadmin需要lamp的支持。有关lamp的***,可以查看《》。 3.1 ***postfixadmin postfixadmin不能通过yum方式进行***,我们需要去下载postfixadmin软件包,如下: wget
tar -xf postfixadmin-2.93.tar.gz mv postfixadmin-2.93 /var/www/html/postfixadmin chown -R apache:apache /var/www/html/postfixadmin chmod -R 755 /var/www/html/postfixadmin
3.2 配置postfixadmin postfixadmin***完毕后,我们现在来配置postfixadmin。postfixadmin的配置文件是config.inc.php,我们只需修改这个文件即可。如下: vim /var/www/html/postfixadmin/config.inc.php $CONF['configured'] = true; $CONF['default_language'] = 'cn'; $CONF['database_type'] = 'mysql'; $CONF['database_host'] = 'localhost'; $CONF['database_user'] = 'postfix'; $CONF['database_password'] = 'postfix'; $CONF['database_name'] = 'postfix'; $CONF['encrypt'] = 'dovecot:CRAM-MD5'; $CONF['dovecotpw'] = "/usr/bin/doveadm pw"; $CONF['domain_path'] = 'YES'; $CONF['domain_in_mailbox'] = 'NO'; $CONF['aliases'] = '1000'; $CONF['mailboxes'] = '1000'; $CONF['maxquota'] = '1000'; $CONF['fetchmail'] = 'NO'; $CONF['quota'] = 'YES'; $CONF['used_quotas'] = 'YES'; $CONF['new_quota_table'] = 'YES'; 3.3 启动postfixadmin postfixadmin配置完毕后,我们现在来启动postfixadmin。 Postfixadmin不是一个单独的程序,它是依赖于apache的,所以我们只需要启动apache即可。如下: /etc/init.d/httpd start chkconfig httpd on
现在我们在浏览器中打开如下连接:
通过上图,我们可以很明显的看出postfixadmin已经正常启动,而且其所依赖的各个组件也已经正常***和配置。 3.4 修改默认后台管理密码 在postfixadmin的配置文件中有一个选项是填写管理员后台管理密码的,默认是changeme。如下:
现在我们来修改默认密码,如下:
通过上图,我们可以很明显的看出默认已经密码已经被我们成功的修改了。 修改完毕后,我们复制该密码到postfixadmin的配置文件,将原来的changeme替换成功现在的加密后的密码即可。如下: vim /var/www/html/postfixadmin/config.inc.php
3.5 添加管理员账户 后台管理密码修改完毕后,我们现在来添加一个管理员账号。如下:
通过上图,我们可以很明显的看出管理员已经添加成功。 现在我们来使用这个管理员登录看看后台,后台登录地址为/postfixadmin/login.php 如下:
通过上图,我们可以很明显的看出新添加的管理员已经可以登录postfixadmin管理后台了。 postfixadmin管理员登录地址是:
postfixadmin 普通用户登录地址是:
四、添加postfix虚拟域 postfixadmin是支持多域名管理的,在此我们先添加一个域名。如下:
通过上图,我们可以很明显的看出这个域名已经添加成功。 五、添加邮箱用户 这个域名添加完毕后,我们现在来给这个域名添加新的邮件用户。如下:
通过上图,我们可以很明显的看出,这个邮件用户已经被成功创建。 六、使用邮件客户端测试 邮件用户被添加后,我们现在来使用邮件客户端测试是否可以正常发送和收取邮件。 6.1 连接邮件服务器测试 首先我们先来测试该用户是否可以正常连接邮件服务器,如下:
通过上图,我们可以很明显的看出邮件用户ilannimail已经正常连接postfix邮件服务器。 6.2 测试发送邮件功能 现在我们来测试发送邮件功能,如下:
通过上图,我们可以很明显的看出ilaninmail用户已经成功的向外域邮箱发送邮件。 6.3 测试收取邮件功能 现在我们来测试收取邮件功能,如下:
通过上图,我们可以很明显的看出ilaninmail用户已经成功的向收取外域邮箱发送过来的邮件。 七、查看postfixadmin数据库 现在我们来查看下postfixadmin数据库postfix中的数据,如下:
这个是postfix数据库postfixadmin所生成的表。
admin表中存储的是管理员用户。
alias表中存储的是所有的邮件用户。
domain表中存储的是虚拟域名。 八、查看postfix对系统产生的影响 本篇文章我们主要是针对postfix虚拟用户,进行操作的。现在我们虚拟域名已经添加,邮件用户也已经创建。 那么我们现在来查看下,我们的这些操作在系统上产生了哪些影响。 8.1 查看邮件用户家目录 切换到vmail用户的家目录,如下: ll /home/vmail/
通过上图,我们可以很明显的看出这个虚拟域名在vmail用户的家目录下产生了这个目录。 现在我们再来看看这个目录下都有哪些文件,如下: ll /home//
通过上图,我们可以很明显的看出在这个虚目录下产生了ilannimail和wxy这两个目录,而这两个目录名称刚好对应我们前面创建的邮件用户ilannimail和wxy。 这样看起来就刚刚好和我们前面解释的postfix虚拟用户原理相照应了。 8.2 查看邮件用户个数 我们现在查看ilannimail目录下文件,如下: ll /home//ilannimail/Maildir/
通过上图,我们可以很明显的看出该目录下面文件不多,现在我们主要关注cur目录。因为通过该目录下的文件个数,可以知道ilannimail用户有多少封邮件。以下两张截图,就可以证明这个说法。如下: cd /home//ilannimail/Maildir/cur
可以看到cur目录下有三个文件。
通过foxmail客户端也可以看到ilanimail用户确实只有三封邮件,这就证明了,我们前面的猜测是正确的。知道cur目录下的文件个数,可以知道ilannimail用户有多少封邮件。 8.3 查看文件对应邮件 由cur目录下的文件个数可知目前ilannimail有三封邮件,那么这三个文件分别对应哪三封邮件呢? 其实我们可以根据文件的名称中的unix时间戳来定位,现在我们以.M93.iZ23r061d7kZ,S=4526,W=4615:2,RS文件为例。 通过文件名,我们可以知道该文件的unix时间戳是,那么可以查找这个unix时间戳对应的实际时间,如下:
通过上图,可以知晓是15:39:22这封邮件。 当然我们也可以查看这个文件的内容,如下: cat .M93.iZ23r061d7kZ,S=4526,W=4615:2,RS
阅读(...) 评论()
秀依林枫?烂泥行天下用户名:月晴星飞
文章数:73
评论数:157
访问量:223879
注册日期:
阅读量:1297
阅读量:3317
阅读量:582719
阅读量:467616
51CTO推荐博文
1、DSpam介绍& & DSPAM是一个专为企业设计的可扩展并且基于开放源码的垃圾邮件过滤器.在正确配置系统,过滤成功率达99.5 % - 99.95%。&& & DSPAM是很流行的防垃圾工具之一,DSPAM能够学习每个用户的不同邮件的习性,根据这些习性告诉过滤器什么是垃圾邮件。& & DSPAM提供了一个能够学习每个用户的邮件习性的管理维护功能,这些习性可能会有些误判。官方网站: 官方下载: 配置参考: 技术博客: 说明:& & 目前已更新至2012年的3.10.2版本,EMOS配置的是2009年的3.8版本,为了不过于依赖extmail制做的rpm包以及mini-http,本文档使用源码方式***最新版本以及配置apache进行web访问。2、***DSpam[root@mail&~]#cd&/usr/local/src
[root@mail&src]#wget&http://ncu.dl.sourceforge.net/project/dspam/dspam/dspam-3.10.2/dspam-3.10.2.tar.gz
[root@mail&src]#tar&zxvf&dspam-3.10.2.tar.gz
[root@mail&src]#cd&dspam-3.10.2
[root@mail&dspam-3.10.2]#&./configure&\
--enable-debug&\
--enable-daemon&\
--enable-clamav&\
--enable-syslog&\
--enable-large-scale&\
--disable-domain-scale&\
--enable-virtual-users&\
--enable-long-usernames&\
--enable-external-lookup&\
--enable-preferences-extension&\
--prefix=/usr/local/dspam&\
--with-dspam-mode=2511&\
--with-dspam-home-mode=770&\
--with-logdir=/var/log&\
--with-dspam-owner=vmail&\
--with-dspam-group=vmail&\
--with-dspam-home-owner=vmail&\
--with-dspam-home-group=vmail&\
--with-mysql-libraries=/usr/lib64/mysql&\
--with-mysql-includes=/usr/include/mysql&\
--with-storage-driver=mysql_drv,hash_drv
#这里没有新建dspam的用户,直接使用vmail账号和组。
[root@mail&dspam-3.10.2]#make
[root@mail&dspam-3.10.2]#make&install3、配置 DSpam[root@mail&dspam-3.10.2]#&vi&/usr/local/dspam/etc/dspam.conf
#后面带#号的表示要修改的参数
Home&/usr/local/dspam/var/dspam
StorageDriver&/usr/local/dspam/lib/dspam/libmysql_drv.so
TrustedDeliveryAgent&"/usr/bin/procmail"
DeliveryHost&127.0.0.1&
DeliveryPort&10024&&&&&
DeliveryIdent&localhost
DeliveryProto&SMTP&&&&&
OnFail&error
Trust&root
Trust&vmail&&&&&&&&&&&&添加信任用户
Trust&extmail&&&&&&&&&&
Trust&amavis&&&&&&&&&&&
TrainingMode&teft
TestConditionalTraining&on
Feature&whitelist&&&&&&自动白名单,同一发件人10封正常邮件0封垃圾邮件时,该记录标为白名单
Algorithm&graham&burton
Tokenizer&chain
PValue&bcr
WebStats&on
Preference&"trainingMode=TEFT"
Preference&"spamAction=deliver"&&&&&&
Preference&"spamSubject=[SPAM]"
Preference&"statisticalSedation=5"
Preference&"enableBNR=on"
Preference&"enableWhitelist=on"
Preference&"signatureLocation=headers"#只在信头显示!DSPAM:1,!标识
Preference&"tagSpam=off"
Preference&"tagNonspam=off"
Preference&"showFactors=off"
Preference&"optIn=off"
Preference&"optOut=off"
Preference&"whitelistThreshold=10"
Preference&"makeCorpus=off"
Preference&"storeFragments=off"
Preference&"localStore="
Preference&"processorBias=on"
Preference&"fallbackDomain=off"
Preference&"trainPristine=off"
Preference&"optOutClam***=off"
Preference&"ignoreRBLLookups=off"
Preference&"RBLInoculate=off"
Preference&"notifications=off"
AllowOverride&enableBNR
AllowOverride&enableWhitelist
AllowOverride&fallbackDomain
AllowOverride&ignoreGroups
AllowOverride&ignoreRBLLookups
AllowOverride&localStore
AllowOverride&makeCorpus
AllowOverride&optIn
AllowOverride&optOut
AllowOverride&optOutClam***
AllowOverride&processorBias
AllowOverride&RBLInoculate
AllowOverride&showFactors
AllowOverride&signatureLocation
AllowOverride&spamAction
AllowOverride&spamSubject
AllowOverride&statisticalSedation
AllowOverride&storeFragments
AllowOverride&tagNonspam
AllowOverride&tagSpam
AllowOverride&trainPristine
AllowOverride&trainingMode
AllowOverride&whitelistThreshold
AllowOverride&dailyQuarantineSummary
AllowOverride¬ifications
MySQLServer&/var/lib/mysql/mysql.sock
MySQLUser&dspam&&&&&&&&&&
MySQLPass&dspam&&&&&&&&&&
MySQLDb&dspam&&&&&&&&&&&&
MySQLCompress&true&&&&&&&
MySQLReconnect&true&&&&&&
MySQLConnectionCache&10&&
MySQLUIDInSignature&on&&&
Notifications&off
PurgeSignatures&14
PurgeNeutral&90
PurgeUnused&90
PurgeHapaxes&30
PurgeHits1S&15
PurgeHits1I&15
LocalMX&127.0.0.1
SystemLog&on
UserLog&on
MaxMessageSize&1048576&&&限制检查的邮件最大大小
ServerHost&127.0.0.1&&&&&
ServerPort&10028&&&&&&&&&
ServerQueueSize&32&&&&&&&
ServerPID&/var/run/dspam.pid
ServerMode&auto&&&&&&&&&&&&&
ServerPass.Relay1&"secret"&&
ServerParameters&"--user&extmail&--deliver=innocent,spam&-d&%u"&
ServerIdent&"localhost.localdomain"&&&
ClientHost&127.0.0.1&&&&&&&&
ClientPort&10028&&&&&&&&&&&&
ClientIdent&"secret@Relay1"&
ProcessorURLContext&on
ProcessorBias&on
StripRcptDomain&off4、导入数据库(1)创建[root@mail&dspam-3.10.2]#&cd&src/tools.mysql_drv/
[root@mail&tools.mysql_drv]#&mysql&-uroot&-p123456&-e&"create&database&dspam"
[root@mail&tools.mysql_drv]#&mysql&-uroot&-p123456&-e&"grant&all&on&dspam.*&to&dspam@localhost&identified&by&'dspam'"(2)导入[root@mail&tools.mysql_drv]#&mysql&-udspam&-pdspam&dspam&&&mysql_objects-4.1.sql
[root@mail&tools.mysql_drv]#&mysql&-udspam&-pdspam&dspam&&&virtual_users.sql5、定时清理token数据库和特征库[root@mail&tools.mysql_drv]#&cp&purge-4.1.sql&/usr/local/dspam/share/
[root@mail&tools.mysql_drv]#&crontab&-e
#清理数据库无用的学习数据
0&0&*&*&*&/usr/bin/mysql&-u&dspam&-p'dspam'&dspam&&&/usr/local/dspam/share/purge-4.1.sql
#清理过滤日志记录
0&0&*&*&*&/usr/local/dspam/bin/dspam_logrotate&-a&30&-d&/usr/local/dspam/var/dspam/data
[root@mail&tools.mysql_drv]#&service&crond&restart6、启动[root@mail&cgi-bin]#&/usr/local/dspam/bin/dspam&--daemon&&
[root@mail&cgi-bin]#&ps&aux|grep&dspam
root&&&&&5&&0.2&&5&pts/3&&&&S&&&&16:29&&&0:00&/usr/local/dspam/bin/dspam&--daemon
root&&&&&5&&0.0&103256&&&852&pts/3&&&&S+&&&16:29&&&0:00&grep&dspam
[1]+&&Done&&&&&&&&&&&&&&&&&&&&/usr/local/dspam/bin/dspam&--daemon
[root@mail&cgi-bin]#&netstat&-lntp|grep&10028
tcp&&&&&&&&0&&&&&&0&127.0.0.1:10028&&&&&&&&&&&&&0.0.0.0:*&&&&&&&&&&&&&&&&&&&LISTEN&&&&&&52842/dspam&&
[root@mail&cgi-bin]#&echo&&"/usr/local/dspam/bin/dspam&--daemon&&"&&&&/etc/rc.local7、修改Webman页面对DSPAM的监控说明:由于我的DSPAM是源码***的,需要修改cmdserver脚本才能在webman上显示状态;如果你按照Extmail官网文档***RPM包则不需要。[root@mail&cgi-bin]#&vi&/var/www/extsuite/extman/daemon/cmd_plugin/linux-cmd&
#my&$dspam_init&=&'/etc/init.d/dspamd';&改成以下
my&$dspam_init&=&'/usr/local/dspam/bin/dspam';
####################
#&Dspam&daemon&&&&&&&&将Dspam&daemon进程的状态子程序修改成如下
####################
sub&dspam_status&{
&&&&my&$ctx&=&
&&&&my&$rc&=&qx/ps&ax|grep&dspam|grep&-v&grep/;
&&&&if&($rc&=~&/\/usr\/local\/dspam\/bin\/dspam/)&{
&&&&&&&&$ctx-&set_reply('250',&'up');
&&&&}&else&{
&&&&&&&&$ctx-&set_reply('503',&'down');
}重启cmdserver:[root@mail&cgi-bin]#&ps&ax|grep&cmdserver|grep&-v&grep|awk&'{print&$1}'|xargs&kill&-9
[root@mail&cgi-bin]#&/var/www/extsuite/extman/daemon/cmdserver&-v&-d
loaded&ok说明:此简单修改只用来监控DSPAM状态,重启和停止按钮均无效。7、配置Web界面(1)***绘图工具[root@mail&cgi-bin]#&yum&install&perl-GD&perl-GDTextUtil&perl-GDGraph&perl-GD-Graph3d(2)配置Web目录[root@mail&cgi-bin]#&cd&/usr/local/src/dspam-3.10.2/webui/
[root@mail&webui]#&mkdir&/var/www/extsuite/dspam
[root@mail&webui]#&cp&-Rf&cgi-bin/*&htdocs/*&/var/www/extsuite/dspam
[root@mail&webui]#&cp&-Rf&&htdocs/*&&&/var/www/extsuite/extmail/html网页标签图标需要修改或删除,否则extmail和extman都会显示d图标:[root@mail&webui]#&rm&-f&/var/www/extsuite/extmail/html/favicon.ico设置属主及其他:[root@mail&webui]#&chown&-R&vmail.vmail&/var/www/extsuite/dspam
[root@mail&webui]#&cd&/var/www/extsuite/dspam
[root@mail&dspam]#&ln&-s&default.prefs&/usr/local/dspam/var/dspam/default.prefs(3)删除web目录下所有Makefile开头的文件[root@mail&dspam]#&find&.&-type&f&-name&"Makefile*"&-exec&rm&-rf&{}&\;(4)给执行文件添加可执行权限[root@mail&dspam]#&chmod&+x&*.pl&*.cgi(5)在管理员组添加用户并设置该用户的密码,用于登陆WEB UI[root@mail&dspam]#&echo&"extmail"&&&admins
[root@mail&dspam]#&htpasswd&-c&.htpasswd&extmail(6)修改htdocs/目录下的文件路径为dspam根目录下[root@mail&dspam]#&vi&configure.pl
$CONFIG{'WEB_ROOT'}&&&&&=&".";(7)创建虚拟主机[root@mail&dspam]#&vi&/etc/httpd/conf.d/dspam.conf
#&VirtualHost&for&Dspam
Alias&/dspam&"/var/www/extsuite/dspam"
&Directory&"/var/www/extsuite/dspam/"&
&&Options&ExecCGI
&&Options&-Indexes
&&Addhandler&cgi-script&.cgi
&&DirectoryIndex&dspam.cgi
&&AllowOverride&AuthConfig
&&Order&deny,allow
&&AuthType&Basic
&&AuthName&"DSPAM&Control&Center"
&&AuthUserFile&/var/www/extsuite/dspam/.htpasswd
&&Require&valid-user
&&SuexecUserGroup&dspam&dspam
&/Directory&
ErrorLog&/var/log/dspam_error.log
CustomLog&/var/log/dspam_access.log&common(8)访问Web/dspam账号就是htpasswd创建的extmail账号8、配置postfix流程:postfix通过lmtp将邮件发送给DSPAM扫描,完成后回注给postfix,再交付(Delivered)给用户。(1)添加客户端访问限制[root@mail dspam]# vi /etc/postfix/main.cf#取消amavisd调用的内容过滤器
#content_filter&=&smtp:[127.0.0.1]:10024&
#receive_override_options&=&no_address_mappings
#添加客户端限制条件,允许sasl认证的、mynetworks范围的、客户端访问表的通过
smtpd_client_restrictions&=
&&permit_sasl_authenticated,
&&permit_mynetworks,
&&check_client_access&pcre:/etc/postfix/dspam_filter_access&
#添加检查邮件标题内容的过滤器
header_checks&=®exp:/etc/postfix/header_checks(2)创建dspam客户端访问表,过滤进来的邮件[root@mail&dspam]#&vi&/etc/postfix/dspam_filter_access
/./&FILTER&lmtp:[127.0.0.1]:10028(3)创建标题内容过滤器[root@mail&dspam]#&vi&/etc/postfix/header_checks
/^(X-DSPAM-.*)/&IGNORE
/^(X-Spam-.*)/&IGNORE(4)重载配置[root@mail&dspam]#&service&postfix&reload9、为SpamAssassin添加DSpam插件说明:为SA增加DSpam插件,根据邮件头上dspam的分数结果增减不同的分数,注意不是以DSPAM的分数为准,因此你会看到信头中即有SA的分数又有DSAPM的分数。官方地址: extmail地址:
先查找SA的插件目录:[root@mail&dspam]#&find&/&-name&'Plugin'&-type&d进入目录后下载插件:[root@mail&dspam]#&cd&/usr/share/perl5/vendor_perl/Mail/SpamAssassin/Plugin
[root@mail&Plugin]#&wget&http://www.extmail.org/download/misc/dspam/dspam.pm
[root@mail&Plugin]#&cp&dspam.pm&/usr/local/share/perl5/Mail/SpamAssassin/Plugin进入目录并下载配置文件:[root@mail&Plugin]#&cd&/etc/mail/spamassassin/
[root@mail&spamassassin]#&wget&http://www.extmail.org/download/misc/dspam/dspam.cf配置SA启用插件:[root@mail&spamassassin]#&vi&local.cf
include&dspam.cf
[root@mail&spamassassin]#&vi&init.pre
loadplugin&Mail::SpamAssassin::Plugin::dspam10、配置amavisd调用dspam注意:可以先跳过这一步,完成下一节的测试一后再配置。在配置文件中的@av_scanners前添加以下内容:[root@mail&spamassassin]#&vi&/etc/amavisd.conf
$dspam&=&'/usr/local/dspam/bin/dspam';&
@spam_scanners&=&(
&&['SpamAssassin',&'Amavis::SpamControl::SpamAssassin'],
&&['DSPAM',&&'Amavis::SpamControl::ExtProg',&$dspam,&
&&&&[&qw(--client&--stdout&--deliver=spam,innocent&--mode=teft&--user&extmail)],&
);重新加载:[root@mail&spamassassin]#&service&amavisd&reload查看日志:[root@mail&spamassassin]#&tailf&/var/log/maillog
Dec&&9&16:30:54&mail&amavis[33061]:&Found&spam&scanner&DSPAM&&&&&&&at&/usr/local/dspam/bin/dspam说明:出现这个表示发现DSPAM扫描器了11、开启extmail页面上的垃圾邮件举报开关[root@mail&spamassassin]#&/var/www/extsuite/extmail/webmail.cf
SYS_SPAM_REPORT_ON&=&1&
SYS_SPAM_REPORT_TYPE&=&dspam
[root@mail&spamassassin]#&vi&/usr/local/dspam/etc/dspam.conf
#默认学习5次才会自动转到垃圾邮件箱,改为2次
Feature&tb=2会在WEB页面上每封邮件顶部显示“这是垃圾邮件”的按钮,点击后移动到“垃圾邮件”目录,也可以移回来。12、设置maidrop全局过滤说明:以下的maildroprc 文件同时支持调用ExtMail多语言过滤器解码器,如果用户已建立自定义过滤规则,则此条全局规则无效(以用户为准)[root@mail&spamassassin]#&vi&/etc/maildroprc
#&Decoder&for&high&quality&key&word&filtering&
logfile&"/var/log/maildrop.log"&
DECODER="/var/www/extsuite/extmail/tools/decode&-v"&
if&((/^(From|Sender|Return-Path):.*MAILER\-DAEMON/))&
&&BADSENDER=1
#&Auto&deliver&to&Junk&mailbox&support&if&there&is&no&custom&
#&mailfilter,&need&test&command&and&correct&PATH&env&
`test&-f&$HOME/.mailfilter&&&&exit&1&||&exit&0`&&
#&No&customize&filtering&rules&
if&(&$RETURNCODE&==&0&)&
&&if&(/^X-Spam-Flag:.*YES/&||&/^X-DSPAM-Result:.*Spam/)
&&&&exception&{&
&&&&&&to&"$HOME/Maildir/.Junk/."&&&&&
[root@mail&spamassassin]#&touch&/var/log/maildrop.log
[root@mail&spamassassin]#&chown&vmail.vmail&/var/log/maildrop.log说明:Junk表示垃圾邮件箱,由于正常邮件容易被误判,使用POP3客户端的用户无法同步到垃圾邮件箱的邮件,导致误以为没有收到;一般建议改为"$HOME/Maildir/."即收件箱中。13、训练DSPAMExtmail提供了一个已经预先训练好的dspam数据库文件(31.6M),该库是由3000封ham+3000封spam训练而成,用户只要在新的dspam系统里导入该数据库,原理上就可免除初期搜集最新spam及最新ham并进行训练的痛苦。导入后会生成特征库,但不会生成历史记录,因此在history中是没记录的。[root@mail&spamassassin]#&cd&/usr/local/src
[root@mail&src]#&wget&http://mirror.extmail.org/yum/misc/dspam/dspam-trained-data.sql.gz
gzip&-d&dspam-trained-data.sql.gz
[root@mail&src]#&rm&-rf&/var/lib/mysql/dspam/
[root@mail&src]#&mysql&-u&root&-p123456&-e&"create&database&dspam"
[root@mail&src]#&mysql&-u&root&-p123456&-e&"grant&all&on&dspam.*&to&dspam@localhost&identified&by&'dspam'"
[root@mail&src]#&mysql&-u&dspam&-pdspam&dspam&&&dspam-trained-data.sql结论:***部署完毕,下一节进行测试。本文出自 “” 博客,请务必保留此出处
了这篇文章
附件下载:
类别:┆阅读(0)┆评论(0)
22:50:15 15:41:02 16:44:00 15:09:53 16:48:46 16:51:32 08:53:25 18:15:39 18:17:18 18:28:13 16:29:37 13:40:45 10:56:15
请输入验证码: