• 如来神掌第一式第七招----postfix详解


    ###############################################################################
    # Name : Mahavairocana                                                                                                                                           
    # Author : Mahavairocana                                                                                                                                         
    # QQ : 10353512                                                                                                                                                    
    # WeChat : shenlan-qianlan                                                                                                                                      
    # Blog : http://www.cnblogs.com/Mahavairocana/                                                                                                       
    # Description : You are welcome to reprint, or hyperlinks to indicate the                                                                        
    #                    source of the article, as well as author information.                                                                                ###############################################################################

    一:服务简介

      postfix是Wietse Venema在IBM的GPL协议之下开发的MTA(邮件传输代理)软件。postfix是Wietse Venema想要为使用最广泛的sendmail提供替代品的一个尝试。Postfix试图更快、更容易管理、更安全,同时还与sendmail保持足够的兼容性。

     特点:
        1. postfix是免费的:
        postfix想要作用的范围是广大的Internet用户,试图影响大多数的Internet上的电子邮件系统,因此它是免费的。
        2. 更快:
        postfix在性能上大约比sendmail快三倍。一部运行postfix的台式PC每天可以收发上百万封邮件。
        3. 兼容性好:
        postfix是sendmail兼容的,从而使sendmail用户可以很方便地迁移到postfix。Postfix支持/var[/spool]/mail、/etc/aliases、 NIS、和 ~/.forward 文件。
        4. 更健壮:
        postfix被设计成在重负荷之下仍然可以正常工作。当系统运行超出了可用的内存或磁盘空间时,postfix会自动减少运行进程的数目。当处理的邮件数目增长时,postfix运行的进程不会跟着增加。
        5. 更灵活:
        postfix是由超过一打的小程序组成的,每个程序完成特定的功能。你可以通过配置文件设置每个程序的运行参数。
        6. 安全性
        postfix具有多层防御结构,可以有效地抵御恶意入侵者。如大多数的postfix程序可以运行在较低的权限之下,不可以通过网络访问安全性相关的本地投递程序等等。

    二、概念解释

      邮件系统角色

        MTA(mail transfer agent.邮件传输代理):邮件服务器软件,负责接收客户端软件发送的邮件,并且将邮件传输给其他的mta程序。是电子邮件系统的核心部分、
        MUA(mail useragent。邮件用户代理):邮件客户端软件,为用户提供发送接收和管理电子邮件的见面。
        MDA(mail delivery agent 邮件分发代理 ):负责在服务器中将邮件分发到用户的邮箱目录。不直接面向用户,而是在后台默默的工作。有时候mda直接集成在mta软件中。所以经常被忽略。

      邮件应用协议
        SMTP,简单邮件传输协议,TCP 25端口:主要用于发送和传输邮件,mua使用smtp协议发送到mta服务器中,而mta将邮件传输给其他mta服务器也使用smyp协议
        POP3,第3版邮局协议,TCP 110端口 主要用于从邮件服务器中收取邮件,目前最新版是pop3.大多mua使用pop
        IMAP4,第4版互联网消息访问协议,TCP 143端口用于收取邮件。目前imap协议最新版本是imap4.与pop3相比更加强大的邮件收取 邮件管理功能。

      商业邮件系统
       Exchange:微软公司的重量级产品,与Windows系列软件产品相集成,协作性较好
       Notes/Domino:IBM公司的商业电子邮件和办公协作软件产品,功能丰富、强大,提供跨平台支持
      开源邮件系统
       Sendmail:资格最古老,运行稳定,但安全性欠佳
       Qmail:有更好的执行效率,配置、管理也很方便
       Postfix:兼容Sendmail,采用模块化设计,在投递效率、稳定性、服务性能及安全性方面表现优秀

    三、最佳实践

    第一步   组件选择说明
    
    1、AMP   ——   apache、mysql、php(非必须)
    
    2、postfix   ——   mta 邮件系统核心
    
    3、courier-authlib   ——   一个为courier-imap,maildrop,sasl2 提供用户信息的后台程序
    
    4、courier-imap   ——   提供pop3,pop3s,imap,imaps 服务的程序
    
    5、dspam clamd   ——   提供内容过滤
    
    6、extmail   ——   一个著名的wemail程序
    
    7、extman   ——   与extmail集成的后台管理程序
    
     
    
    第二步   组件安装
    
    提示:记得关闭 sendmail 让它不要自启动
    
    1、安装AMP
    
    [root@c3 youjian]# yum -y install httpd httpd-devel mysql mysql-devel mysql-server php php-xml php-cli php-pdo php-mbstring php-mcrypt php-gd php-common php-devel php-mysql openldap* perl-Unix-Syslog
    
    修改启动配置并启动
    
    [root@c3 youjian]# chkconfig --level 345 mysqld on
    [root@c3 youjian]# chkconfig --level 345 httpd on
    [root@c3 youjian]# service mysqld start
    [root@c3 youjian]# service httpd start
    
    2. 下载 extman (http://www.extmail.org/cgi-bin/download.cgi) 注意选择 extman
    
    [root@c3 youjian]# tar xvf extman-1.1.tar.gz
    
    [root@c3 youjian]# cd extman-1.1/docs/
    
    [root@c3 docs]# mysql -uroot -p < extmail.sql
    
    注意,把下面的 init.sql 把里面的extmail.org缓冲你的域名,我这里是 c3.google.com
    
    [root@c3 docs]# mysql -uroot -p < init.sql
    
    3. RPM简介
    
    下面我们采用rpm的方式安装软件
    
    [root@c3 youjian]# export RPMS=/usr/src/redhat/RPMS/
    [root@c3 youjian]# export SOURCE=/usr/src/redhat/SOURCES/
    [root@c3 youjian]# export SPEC=/usr/src/redhat/SPECS/
    
    在下面的安装过程中, cd $RPMS 就是  cd /usr/src/redhat/RPMS
    
    4. 安装 authlib
    
    A、安装依赖的包
    
    [root@c3 youjian]# yum -y install postgresql-devel expect libtool-ltdl-devel
    
    [root@c3 youjian]# wget http://prdownloads.sourceforge.net/courier/courier-authlib-0.63.0.tar.bz2
    
    [root@c3 youjian]# tar xvf courier-authlib-0.63.0.tar.bz2
    
    [root@c3 youjian]# cd courier-authlib-0.63.0
    
    [root@c3 courier-authlib-0.63.0]# cp courier-authlib.spec $SPEC
    
    [root@c3 courier-authlib-0.63.0]# cd ..
    
    [root@c3 youjian]# cp courier-authlib-0.63.0.tar.bz2 $SOURCE
    
    [root@c3 youjian]# cd $SPEC
    
    [root@c3 SPECS]# rpmbuild -bb courier-authlib.spec
    
    B、安装生成的rpm
    
    [root@c3 SPECS]# cd /usr/src/redhat/RPMS/i386/
    
    [root@c3 i386]# rpm -ivh courier-authlib-0.63.0-1.i386.rpm
    
    [root@c3 i386]# rpm -ivh courier-authlib-devel-0.63.0-1.i386.rpm
    
    [root@c3 i386]# rpm -ivh courier-authlib-mysql-0.63.0-1.i386.rpm
    
    C、配置authlibdaemon
    
    [root@c3 i386]# cd /etc/authlib
    
    [root@c3 authlib]# mv authdaemonrc authdaemonrc.bak
    
    [root@c3 authlib]# vi authdaemonrc
    
    authmodulelist="authmysql"
    authmodulelistorig="authmysql"
    daemons=10
    authdaemonvar=/var/spool/authdaemon
    DEBUG_LOGIN=2
    DEFAULTOPTIONS="wbnodsn=1"
    LOGGEROPTS=""
    
    D、配置authmysqlrc
    
    [root@c3 authlib]# mv authmysqlrc authmysqlrc.bak
    
    [root@c3 authlib]# vi authmysqlrc
    
    MYSQL_SERVER    localhost
    MYSQL_USERNAME  extmail
    MYSQL_PASSWORD  extmail
    MYSQL_PORT      0
    MYSQL_SOCKET    /var/lib/mysql/mysql.sock
    MYSQL_OPT       0
    MYSQL_DATABASE  extmail
    
    MYSQL_SELECT_CLAUSE     SELECT username,password,"",uidnumber,gidnumber,
                       CONCAT('/home/domains/',homedir),               
                       CONCAT('/home/domains/',maildir),               
                       quota,                                          
                       name                                            
                       FROM mailbox                                    
                       WHERE username = '$(local_part)@$(domain)'
    E、启动authlib 
    
    [root@c3 authlib]# service courier-authlib start
    Starting Courier authentication services: authdaemond
    
    [root@c3 authlib]# chmod 777 /var/spool/authdaemon/
    
     
    
    5. 安装courier-imap
    
    由于courier-imap不能用root身份生产rpm,那么我们新建一个普通用户,并创建一个rpm环境
    
    [root@c3 authlib]# useradd yiyou
    
    [root@c3 authlib]# yum -y install openldap-servers
    
    [root@c3 authlib]# su - yiyou
    
    [yiyou@c3 ~]$ mkdir -p rpm/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
    
    [yiyou@c3 ~]$ vi ~/.rpmmacros
    
    %_topdir /home/yiyou/rpm
    
    [yiyou@c3 ~]$ wget http://prdownloads.sourceforge.net/courier/courier-imap-4.7.0.tar.bz2
    
    [yiyou@c3 ~]$ cp courier-imap-4.7.0.tar.bz2 rpm/SOURCES/
    
    [yiyou@c3 ~]$ tar xvf courier-imap-4.7.0.tar.bz2
    
    [yiyou@c3 ~]$ cd courier-imap-4.7.0
    
    [yiyou@c3 courier-imap-4.7.0]$ cp courier-imap.spec ../rpm/SPECS/
    
    [yiyou@c3 courier-imap-4.7.0]$ cd ../rpm/SPECS/
    
    编辑 courier-imap.spec 将 fam.h 去掉改成如下(大概57行)
    
    %if %suse_version
    BuildRequires: rpm >= 3.0.5 /usr/bin/sed openldap2 openldap2-devel
    %else
    BuildRequires: rpm >= 4.0.2 sed openldap-devel openldap-servers
    %endif
    
    创建rpm
    
    [yiyou@c3 SPECS]$ rpmbuild --bb courier-imap.spec
    
    当完成rpm后,输入exit退出当前用户
    
    [root@c3 ~]# rpm -ivh /home/yiyou/rpm/RPMS/i386/courier-imap-4.7.0-1.i386.rpm 
    
    [root@c3 ~]# service courier-imap start
    
    6. 安装cyrus-sasl
    
    [root@c3 ~]# yum install -y cyrus-sasl-devel cyrus-sasl-plain cyrus-sasl cyrus-sasl-lib
    
    A. 配置sasl2
    
    [root@c3 ~]# vi /usr/lib/sasl2/smtpd.conf
    
    pwcheck_method:authdaemond
    log_level:3
    mech_list:PLAIN LOGIN
    authdaemond_path:/var/spool/authdaemon/socket
    
    7、安装postfix 升级至2.6.5
    
    A、下载软件包
    
    [root@c3 ~]# cd
    
    [root@c3 ~]# wget http://ftp.wl0.org/official/2.6/SRPMS/postfix-2.6.5-1.src.rpm
    
    [root@c3 ~]# rpm -ivh postfix-2.6.5-1.src.rpm
    
    [root@c3 ~]# export RPMS=/usr/src/redhat/RPMS
    [root@c3 ~]# export SOURCE=/usr/src/redhat/SOURCES
    [root@c3 ~]# export SPEC=/usr/src/redhat/SPECS
    
    [root@c3 ~]# cd $SPEC
    
    [root@c3 SPECS]# vi postfix.spec
    
    %define distribution rhel-5.0
    %define with_mysql_redhat 1
    %define with_sasl         2
    %define with_vda          1
    %define with_pcre         1
    B、创建rpm 
    
    [root@c3 SPECS]# yum install pcre-devel
    
    [root@c3 SPECS]# rpmbuild -bb postfix.spec
    
    //这里编译可能会出错,提示什么包没装,然后直接 yum 安装即可
    
    [root@c3 SPECS]# cd /usr/src/redhat/RPMS/i386/
    
    [root@c3 i386]# rpm -ivh postfix-2.6.5-1.rhel5.i386.rpm
    
    C、切换mta
    
    [root@c3 i386]# alternatives --config mta
    
    共有 2 个程序提供"mta"。
    
    选择 命令
    -----------------------------------------------
    *+ 1 /usr/sbin/sendmail.sendmail
    2 /usr/sbin/sendmail.postfix
    
    按 Enter 来保存当前选择[+],或键入选择号码:2
    
    [root@c3 i386]# rpm -e sendmail
    
    [root@c3 i386]# cd /usr/sbin
    
    [root@c3 sbin]# mv sendmail sendmail.bak
    
    [root@c3 sbin]# newaliases
    
    [root@c3 sbin]# ln -s sendmail.postfix sendmail
    
    D、配置postfix
    
    [root@c3 sbin]# cd /etc/postfix/
    
    [root@c3 postfix]# mv main.cf main.cf.bak
    
    (记得把下面()去掉,否则会报错,下面是蜗牛的参考
    
    myhostname = mail.woniu.com
    mydomain = woniu.com
    mydestination = $myhostname
    smtpd_banner = mail.woniu.com
    
    )下面才是真正的配置文件
    
    [root@c3 postfix]# vi main.cf   
    
    queue_directory = /var/spool/postfix
    command_directory = /usr/sbin
    daemon_directory = /usr/libexec/postfix
    data_directory = /var/lib/postfix
    mail_owner = postfix
    unknown_local_recipient_reject_code = 550
    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 = /usr/share/doc/postfix-2.6.5-documentation/html
    manpage_directory = /usr/share/man
    sample_directory = /etc/postfix
    readme_directory = /usr/share/doc/postfix-2.6.5-documentation/readme
    alias_database = hash:/etc/postfix/aliases
    alias_maps = hash:/etc/postfix/aliases
    myhostname = mail.360book.com.cn(修改为自己的域名)
    mydomain = 360book.com.cn(修改为自己的域名)
    mydestination = $myhostname
    smtpd_banner = 360book.com.cn ESMTP Mail System(修改为自己的域名)
    message_size_limit = 14680064
    virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf
    virtual_mailbox_base = /home/domains
    virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf
    virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
    virtual_mailbox_limit_maps = mysql:/etc/postfix/mysql_virtual_limit_maps.cf
    virtual_transport = maildrop
    maildrop_destination_recipient_limit = 1
    
    #sasl
    smtpd_sasl_auth_enable = yes
    smtpd_sasl2_auth_enable = yes
    smtpd_sasl_security_options = noanonymous
    broken_sasl_auth_clients = yes
    smtpd_recipient_restrictions =
     permit_mynetworks,
     permit_sasl_authenticated,
     reject_unauth_destination,
     reject_unauth_pipelining,
     reject_invalid_hostname
    dspam_destination_recipient_limit = 1
    复制 extman/docs 目录的cf 文件到 /etc/postfix 
    
    [root@c3 ~]# cd youjian/
    
    [root@c3 youjian]# cp extman-1.1/docs/mysql_virtual_* /etc/postfix/
    
    因为配置文件的用户、密码与数据库时一样,所以不用修改
    
    [root@c3 youjian]# service postfix start
    
     
    
    8、安装 maildrop
    
    A、下载生成RPM
    
    [root@c3 postfix]# cd
    [root@c3 ~]# wget downloads.sourceforge.net/project/courier/maildrop/2.4.3/maildrop-2.4.3.tar.bz2?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fcourier%2Ffiles%2Fmaildrop%2F2.4.3%2F&ts=1318465576&use_mirror=ncu
    
    [root@c3 ~]# cp maildrop-2.4.3.tar.bz2 $SOURCE
    
    [root@c3 ~]# tar xvf maildrop-2.4.3.tar.bz2
    
    [root@c3 ~]# cd maildrop-2.4.3
    
    [root@c3 maildrop-2.4.3]# cp maildrop.spec $SPEC 
    
    [root@c3 maildrop-2.4.3]# cd $SPEC
    
    编辑 maildrop.spec 把下面:
    
    BuildRequires: /usr/include/fam.h gdbm-devel pcre-deve
    
    改为:
    
    BuildRequires: gdbm-devel pcre-devel
    
    把下面:
    
    %configure --with-devel 这段最后添加
    
    --enable-authlib
    
    B、创建安装 maildrop rpm
    
    [root@c3 SPECS]# yum -y install pcre-devel
    
    [root@c3 SPECS]# rpmbuild -bb maildrop.spec
    
    [root@c3 SPECS]# cd /usr/src/redhat/RPMS/i386/
    
    [root@c3 i386]# rpm -ivh maildrop-2.4.3-1.i386.rpm
    
    C、添加虚拟用户及创建目录
    
    [root@c3 i386]# cd 
    [root@c3 ~]# groupadd -g 1000 vgroup
    [root@c3 ~]# useradd -g 1000 -u 1000 -s /sbin/nologin -d /dev/null vuser
    
    编辑 /etc/postfix/master.cf ,加入下面的内容
    
    maildrop unix - n n - - pipe
      flags=DRhu user=vuser argv=/usr/bin/maildrop -d ${user}@${nexthop} ${recipient} ${user} ${extension} ${nexthop}
    
    //注意上面一行有空格
    
    D、创建邮件存储目录
    
    [root@c3 ~]# mkdir -p /home/domains/c3.google.com/postmaster
    [root@c3 ~]# maildirmake /home/domains/c3.google.com/postmaster/Maildir
    [root@c3 ~]# chown -R vuser:vgroup /home/domains
    
    E、测试maildrop
    
    [root@c3 docs]# echo "test" | maildrop -V 10 -d postmaster@c3.google.com
    maildrop: authlib: groupid=1000
    maildrop: authlib: userid=1000
    maildrop: authlib: logname=postmaster@c3.google.com, home=/home/domains/c3.google.com/postmaster, mail=/home/domains/c3.google.com/postmaster/Maildir/
    maildrop: Changing to /home/domains/c3.google.com/postmaster
    Message start at 0 bytes, envelope sender=postmaster@c3.google.com
    maildrop: Attempting .mailfilter
    maildrop: Delivery complete.
    
    出现以上信息说明 authlib, maildrop 工作正常
    
    F、测试POP3
    
    [root@c3 docs]# telnet localhost 110
    Trying 127.0.0.1...
    Connected to localhost (127.0.0.1).
    Escape character is '^]'.
    +OK Hello there.
    
    [root@c3 docs]# telnet localhost 110
    Trying 127.0.0.1...
    Connected to localhost (127.0.0.1).
    Escape character is '^]'.
    +OK Hello there.
    user postmaster@c3.google.com
    +OK Password required.
    pass extmail
    +OK logged in.
    list
    +OK POP3 clients that break here, they violate STD53.
    1 6
    .
    retr 1
    +OK 6 octets follow.
    test
    .
    quit
    +OK Bye-bye.
    Connection closed by foreign host.
    
    G、测试postfix
    
    [root@c3 docs]# perl -MMIME::Base64 -e 'print encode_base64("postmaster@c3.google.com");'
    cG9zdG1hc3RlckBjMy53YXdhbWUuY29t
    
    [root@c3 docs]# perl -MMIME::Base64 -e 'print encode_base64("extmail");' 
    ZXh0bWFpbA==
    
    [root@c3 docs]# service postfix restart
    
    [root@c3 docs]# telnet localhost 25
    Trying 127.0.0.1...
    Connected to localhost (127.0.0.1).
    Escape character is '^]'.
    220 c3.google.com ESMTP Mail System
    ehlo test.com    //输入随便域名
    250-c3.google.com
    250-PIPELINING
    250-SIZE 14680064
    250-VRFY
    250-ETRN
    250-AUTH LOGIN PLAIN
    250-AUTH=LOGIN PLAIN
    250-ENHANCEDSTATUSCODES
    250-8BITMIME
    250 DSN
    auth login    
    334 VXNlcm5hbWU6
    cG9zdG1hc3RlckBjMy53YXdhbWUuY29t    //这里输入上面得到的值
    334 UGFzc3dvcmQ6
    ZXh0bWFpbA==
    235 2.7.0 Authentication successful
    quit
    221 2.0.0 Bye
    Connection closed by foreign host.
    
     
    
    9、安装extman/extmail
    
    添加emos 1.5的源   vi /etc/yum.repos.d/EMOS-Base.repo
    
    
      #
      # Created by ExtMail Dev Team: http://www.extmail.org/
      #
    # $Id$
    [EMOS-base]
      name=EMOS-Base
      baseurl=http://mirror.extmail.org/yum/emos/1.5/os/$basearch/
      gpgcheck=0
      priority=0
      protect=0
    [EMOS-update]
      name=EMOS-Updates
      baseurl=http://mirror.extmail.org/yum/emos/1.5/updates/$basearch/
      gpgcheck=0
      priority=0
      protect=0
     
    A、配置apache
    
    [root@c3 ~]# vi /etc/httpd/conf/httpd.conf
    
    将下面的选项改为:
    
    User vuser
    Group vgroup
    
    在文件最后加入:
    
    Include /etc/httpd/conf.d/extmail.conf
    
    [root@c3 ~]# cd /etc/httpd/conf.d/
    
    [root@c3 conf.d]# vi extmail.conf
    
    Alias /extman/cgi/ /var/www/extsuite/extman/cgi/
    Alias /extman /var/www/extsuite/extman/html/
    <Location "/extman/cgi">
    SetHandler cgi-script
    Options +ExecCGI
    </Location>
    # config for ExtMail
    Alias /extmail/cgi/ /var/www/extsuite/extmail/cgi/
    Alias /extmail /var/www/extsuite/extmail/html/
    <Location "/extmail/cgi">
    SetHandler cgi-script
    Options +ExecCGI
    </Location>
    
    [root@c3 conf.d]# mkdir /var/www/extsuite
    [root@c3 conf.d]# cd /root/youjian/
    
    去http://www.extmail.org/cgi-bin/download.cgi下载extmail-1.2.tar.gz
    
    [root@c3 youjian]# tar xvf extmail-1.2.tar.gz
    
    [root@c3 youjian]# cp -r extmail-1.2 /var/www/extsuite/extmail
    
    [root@c3 youjian]# cp -r extman-1.1 /var/www/extsuite/extman
    
    B、配置extmail参数
    
    [root@c3 youjian]# cd /var/www/extsuite/extmail/
    
    [root@c3 extmail]# cp webmail.cf.default webmail.cf
    
    [root@c3 extmail]# vi webmail.cf
    
    修改如下配置
    
    SYS_SESS_DIR = /tmp/extmail
    SYS_MAILDIR_BASE = /home/domains
    SYS_MYSQL_USER = extmail
    SYS_MYSQL_PASS = extmail
    
    C、配置extman参数
    
    [root@c3 extmail]# cd /var/www/extsuite/extman/
    
    [root@c3 extman]# cp webman.cf.default webman.cf
    
    [root@c3 extman]# vi webman.cf
    
    修改参数
    
    SYS_MAILDIR_BASE = /home/domains
    
    D、创建session目录
    
    [root@c3 extman]# mkdir /tmp/{extman,extmail}
    
    [root@c3 extman]# chown vuser:vgroup /tmp/ext*
    
    E、配置后台日志分析工具
    
    [root@c3 extman]# cd /var/www/extsuite/extman/addon/
    
    [root@c3 addon]# cp -r mailgraph_ext /usr/local/
    
    将下面的内容加入 /etc/rc.local
    
    [root@c3 addon]# yum -y install rrdtool perl-rrdtool perl-GD perl-File-Tail
    
    F、启动后台进程
    
    [root@c3 addon]# /usr/local/mailgraph_ext/mailgraph-init start
    Starting mail statistics grapher: mailgraph_ext
    Starting queue statistics grapher: qmonitor
    
    G、访问extmail/extman
    
    重启apache
    
    打开浏览器,输入 http://your_ip_address/extmail
    
    帐号 : postmaster   密码: extmail   我这里的域是:  c3.google.com
    
    打开浏览器,输入 http://you_ip_address/extman
    
    帐号:   root@c3.google.com    密码:extmail*123*
    
    注意: 进入系统后要修改密码及找回密码的提示问题、答案。
    
     
    
    10. 安装sdpam clamd
    
    [root@c3 conf.d]# yum install clamd dspam*
    
    进入mysql
    
    mysql> create database dspam;
    Query OK, 1 row affected (0.00 sec)
    
    mysql> grant all on dspam.* to dspam@localhost identified by 'dspam';
    Query OK, 0 rows affected (0.00 sec)
    
    [root@c3 mysql]# cd /usr/share/dspam/sql/mysql/
    
    修改 mysql_objects-4.1.sql 和 virtual_users.sql
    
    在文件前添加 use dspam;
    
    [root@c3 mysql]# mysql -udspam -p < mysql_objects-4.1.sql 
    [root@c3 mysql]# mysql -udspam -p < virtual_users.sql 
    
    crontab -e  添加:
    0 0 * * * /usr/bin/mysql -u dspam -p'dspam' dspam < /usr/share/dspam/sql/mysql/purge-4.1.sql
    0 0 * * * /usr/bin/dspam_logrotate -a 30 -d /var/spool/dspam/data
    
    修改 /etc/dspam/dspam.conf
    
    MySQLServer /var/lib/mysql/mysql.sock
    MySQLUser dspam
    MySQLPass dspam
    MySQLDb dspam
    MySQLCompress true
    MySQLUIDInSignature on
    ClamAVPort 3310 //开启clamd
    ClamAVHost 127.0.0.1
    ClamAVResponse spam
    ServerPID /var/run/dspam.pid
    ServerMode auto
    ServerParameters "--user dspam --deliver=innocent,spam"
    ServerDomainSocketPath "/tmp/dspam.sock"
    DeliveryHost 127.0.0.1
    DeliveryPort 10026
    DeliveryIdent localhost
    DeliveryProto SMTP
    ParseToHeaders on
    ChangeModeOnParse on
    ChangeUserOnParse full
    
    [root@c3 mysql]# vi /etc/postfix/master.cf
    
    
    smtp      inet         n       -       n       -       -        smtpd
    #To:
    smtp      inet         n       -       n       -       -        smtpd
       -o content_filter=lmtp:unix:/tmp/dspam.sock(-o 前面有三个空格)
    
    lmtp      unix  -       -       n       -       -       lmtp
    127.0.0.1:10026 inet    n    -    n    -    -    smtpd
        -o content_filter=
        -o local_recipient_maps=
        -o relay_recipient_maps=
        -o smtpd_restriction_classes=
        -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
    [root@c3 mysql]# vi /usr/share/dspam/webui/cgi-bin/admins 
    
    添加admin
    
    [root@c3 mysql]# htpasswd -c .htpasswd admin
    
    xx
    
    xx
    
    [root@c3 mysql]# /etc/init.d/dspam-webd start
    
    [root@c3 mysql]# chkconfig --level 345 dspamd on
    
    [root@c3 mysql]# chmod -R 777 /usr/share/dspam
    
    [root@c3 mysql]# service dspamd start
  • 相关阅读:
    神经网络与深度学习(邱锡鹏)编程练习 3 Logistic回归、softmax回归、支持向量机(SVM)
    神经网络与深度学习(邱锡鹏)编程练习 3 Logistic回归 softmax回归 源代码 tf版
    神经网络与深度学习(邱锡鹏)编程练习 3 实验1 Logistic回归 pytorch
    神经网络与深度学习(邱锡鹏)编程练习 2 基函数回归 Jupyter导出版 TensorFlow 2.9
    神经网络与深度学习(邱锡鹏)编程练习4 FNN 简单神经网络 Jupyter导出版 numpy
    神经网络与深度学习(邱锡鹏)编程练习4 FNN 简单神经网络
    神经网络与深度学习(邱锡鹏)编程练习 3 Logistic回归 Jupyter导出版 TensorFlow2.9
    神经网络与深度学习(邱锡鹏)编程练习 2 实验1 线性回归的参数优化 最小二乘法
    05月29日总结
    程序的装入和链接
  • 原文地址:https://www.cnblogs.com/Mahavairocana/p/8138041.html
Copyright © 2020-2023  润新知