欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

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

程序员文章站 2022-04-03 20:18:53
1.更新 ports # cvsup -gL 2 -h cvsup.freebsdchina.org /usr/share/examples/cvsup/ports-supfile 2. 安装 openssl+apache 服务器 # cd /usr/ports/security/o... 08-09-08...

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修改自己的密码。