FreeBSD5.2.1上建立功能完整的邮件服务器(POSTFIX)


    1.更新 ports
    # cvsup -gL 2 -h cvsup.freebsdchina.org /usr/share/examples/cvsup/ports-supfile
    2. 安装 openssl+apache 服务器
    # cd /usr/ports/security/openssl
    # make install
    # make clean
    # cd /usr/ports/www/apache2
    # make install
    # make clean
    # vi /etc/rc.conf
    apache2_enable="YES"
    3. 安装 openwebmail
    # cd /usr/ports/mail/openwebmail/
    # make WITH_QUOTA=yes install
    # make clean
    4. 安装 postfix ,在安装过程中用yes回答提出的问题
    # cd /usr/ports/mail/postfix/
    # make install
    # make clean
    # vi /etc/rc.conf
    为了能启动postfix加入:
    sendmail_enable="YES"
    sendmail_flags="-bd"
    sendmail_pidfile="/var/spool/postfix/pid/master.pid"
    sendmail_outbound_enable="NO"
    sendmail_submit_enable="NO"
    5. 安装 vm-pop3d
    # cd /usr/ports/mail/vm-pop3d
    # make install
    # make clean
    6. 配置 postfix
    # vi /usr/local/etc/postfix/main.cf
    添加:
    myhostname = nero.3322.org
    mydomain = nero.3322.org
    virtual_alias_maps=hash:/usr/local/etc/postfix/virtual
    alias_maps=hash:/usr/local/etc/postfix/aliases
    default_privs=nobody
    allow_mail_to_commands = alias,forward,include
    allow_mail_to_files = alias,forward,include
    下面我加入一个 nero.3322.org 的虚拟域,并添加一个用户llzqq
    # vi /usr/local/etc/postfix/virtual
    添加:
    nero.3322.org  anything        //之间用[tab]
    llzqq@nero.3322.org   llzqq.nero.3322.org     //之间用[tab]
    执行下面的命令,生成 virtual.db:
    # cd /usr/local/etc/postfix/
    # postmap virtual
    # vi /usr/local/etc/postfix/aliases
    添加:
    llzqq.nero.3322.org:/var/spool/virtual/nero.3322.org/llzqq
    执行下面的命令,生成 aliases.db:
    # cd /usr/local/etc/postfix
    # postalias aliases
    7. 配置 vm-pop3d 使其开机自动执行
    # cd /usr/local/etc/rc.d
    # mv vm-pop3d.sh.sample vm-pop3d.sh
    配置 openwebmail 支持 nero.3322.org 域,创建下面的文件:
    # vi /usr/local/www/cgi-bin/openwebmail/etc/sites.conf/nero.3322.org
    =========================== nero.3322.org =======================
    auth_module auth_vdomain.pl
    auth_withdomain yes
    mailspooldir /var/spool/virtual/nero.3322.org
    use_syshomedir no
    use_homedirspools no
    enable_autoreply no
    enable_setforward no
    enable_vdomain yes
    vdomain_admlist llzqq        //这里设置了这个域的管理员
    vdomain_maxuser 500
    vdomain_vmpop3_pwdpath /usr/local/etc/virtual
    vdomain_vmpop3_pwdname passwd
    vdomain_vmpop3_mailpath /var/spool/virtual
    vdomain_postfix_aliases /usr/local/etc/postfix/aliases
    vdomain_postfix_virtual /usr/local/etc/postfix/virtual
    vdomain_postfix_postalias /usr/local/sbin/postalias
    vdomain_postfix_postmap /usr/local/sbin/postmap
    # quota设置部分
    quota_module quota_du.pl
    quota_limit 52400           //定义了邮箱大小
    quota_threshold 85
    delmail_ifquotahit no
    delfile_ifquotahit no
    =========================== nero.3322.org =======================
    # mkdir -p /var/spool/virtual/nero.3322.org
    # chown nobody /var/spool/virtual/nero.3322.org
    # chgrp mail /var/spool/virtual/nero.3322.org
    # mkdir -p /usr/local/etc/virtual/nero.3322.org
    # touch /usr/local/etc/virtual/nero.3322.org/passwd
    # chmod 644 /usr/local/etc/virtual/nero.3322.org/passwd
    # htpasswd /usr/local/etc/virtual/nero.3322.org/passwd llzqq
    # chmod 755 /usr/local/www/cgi-bin/openwebmail/etc/users
    # sync
    # reboot
    8. 最后通过浏览器登陆到OPENWEBMAIL
    http://nero.3322.org/cgi-bin/openwebmail/openwebmail.pl
        第二部分:防病毒、垃圾邮件:clamav+amavisd-new+spam
    欢迎大家转贴这个文章,但要保留下面的版权信息:
    作者:llzqq
    出处:www.chinaunix.net
    联系:llzqq@126.com
    1.0 安装clamav:
    # cd /usr/ports/security/clamav
    # make install
    # make clean
    # vi /usr/local/etc/clamav.conf
    ===============================clamav.conf============================
    # Comment or remove the line below.
    # Example
    LogFile /var/log/clamav/clamd.log
    LogFileMaxSize 1M
    LogTime
    LogVerbose
    PidFile /var/run/clamav/clamd.pid
    DataDirectory /usr/local/share/clamav
    LocalSocket /tmp/clamd
    StreamMaxLength 10M
    MaxThreads 10
    MaxDirectoryRecursion 15
    User clamav
    ScanMail
    ScanArchive
    ScanRAR
    ArchiveMaxFileSize 10M
    ArchiveMaxRecursion 5
    ArchiveMaxFiles 1000
    ClamukoScanOnOpen
    ClamukoScanOnClose
    ClamukoScanOnExec
    ClamukoIncludePath /var/spool/virtual
    ClamukoMaxFileSize 6M
    ClamukoScanArchive
    ===============================clamav.conf============================
    1.1 更新病毒库
    # /usr/local/etc/rc.d/clamav-freshclam.sh start
    2.0 安装amavisd-new
    # cd /usr/ports/security/amavisd-new
    # make install
    # make clean
    # cd /usr/local/etc
    # mv amavisd.conf-dist amavisd.conf
    # vi amavisd.conf
    ============================== amavisd.conf ===============================
    $MYHOME = '/var/amavis';          # (default is '/var/amavis')
    $mydomain = 'nero.3322.org';     # (no useful default)
    $daemon_user  = 'vscan';         # (no default;  customary: vscan or amavis)
    $daemon_group = 'vscan';         # (no default;  customary: vscan or amavis)
    $log_level = 0;
    $sa_spam_subject_tag = '***SPAM***'
    $virus_admin = "root\@$mydomain";
    $spam_admin = "llzqq\@$mydomain";
    $mailfrom_notify_admin     = "llzqq\@$mydomain";
    $mailfrom_notify_recip     = "llzqq\@$mydomain";
    $mailfrom_notify_spamadmin = "llzqq\@$mydomain";
    $inet_socket_bind = '127.0.0.1';
    $forward_method = 'smtp:127.0.0.1:10025';
    $notify_method = $forward_method;        
    $inet_socket_port = 10024;       
    $max_servers  =  2;
    ['Clam Antivirus-clamd',
       \&ask_daemon, ["CONTSCAN {}\n", '/tmp/clamd'],
       qr/\bOK$/, qr/\bFOUND$/,
       qr/^.*?: (?!Infected Archive)(.*) FOUND$/ ],
    ============================== amavisd.conf ===============================
    2.1 要启动clamav和amavisd-new需要配置一下/etc/rc.conf
    # vi /etc/rc.conf
    spamd_enable="YES"
    amavisd_enable="YES
    clamav_clamd_enable="YES"
    3.0 由于在安装amavisd-new时spamassassin被一起安装了下面对其进行配置
    3.1 建立过滤规则:
    # cd /usr/local/etc/mail/spamassassin
    # env LANG=C vi local.cf
    =============================== local.cf ===============================
    # SpamAssassin config file for version x.xx
    # generated by http://www.yrex.com/spam/spamconfig.php (version 1.01)
    # How many hits before a message is considered spam.
    required_hits                                4.0
    # Whether to change the subject of suspected spam
    rewrite_subject                                1
    # Text to prepend to subject if rewrite_subject is used
    subject_tag                                *****SPAM*****
    # Encapsulate spam in an attachment
    report_safe                                1
    # Use terse version of the spam report
    use_terse_report                        0
    # Enable the Bayes system
    use_bayes                                1
    # Enable Bayes auto-learning
    auto_learn                                1
    # Enable or disable network checks
    skip_rbl_checks                                1
    use_razor2                                0
    use_dcc                                        0
    use_pyzor                                0
    # Mail using languages used in these country codes will not be marked
    # as being possibly spam in a foreign language.
    # - chinese english
    ok_languages                                zh en
    # Mail using locales used in these country codes will not be marked
    # as being possibly spam in a foreign language.
    ok_locales                en zh
    score                        SUBJ_FULL_OF_8BITS                2
    score                        NO_REAL_NAME                        4.0
    =============================== local.cf ===============================
    3.2 下载新的垃圾邮件地址列表文件
    # cd /usr/local/share/spamassassin
    # fetch http://anti-spam.org.cn/rules/sa/55_diy_score.cf
    4.0 对POSFIX进行配置,在他的配置文件中添加下面的一些内容
    # vi /usr/local/etc/postfix/master.cf
    ---------------------- master.cf ---------------------
    smtp-amavis unix -          -          n            -       2  smtp
            -o smtp_data_done_timeout=1200
            -o disable_dns_lookups=yes
                                                                                    
    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 mynetworks=127.0.0.0/8
    ---------------------- master.cf ---------------------
    # vi /usr/local/etc/postfix/main.cf
    content_filter = smtp-amavis:[127.0.0.1]:10024
    好了,现在一个基于FreeBSD的功能相对完整的邮件服务器就建立起来了,虚拟域的管理员可以登陆OPENWEBMAIL进行用户的添加、删除等操作,虚拟用户可以通过OPENWEBMAIL修改自己的密码。