基于Postfix+sasl+courier-imap+courier-authlib+clamav+slockd+amavisd邮件系统配置安装笔记(二)
转载请保留版权:http://piao2010.com 谢谢!
**************************
************************
垃圾邮件过滤病毒防护部分
************************
**************************
groupadd amavis
groupadd clamav
useradd amavis -g amavis
useradd clamav -g clamav
./configure –prefix=/usr/local/clamav –with-dbdir=/usr/local/share/clamav –disable-zlib-vcheck –sysconfdir=/etc/clamav
make
make install
mkdir /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
mv /etc/clamav/freshclam.conf /etc/clamav/freshclam.conf.old
vi /etc/clamav/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
mv /etc/clamav/clamd.conf /etc/clamav/clamd.conf.old
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
新版本0.952无以下两个文件,建议使用0.95以下版本
cp contrib/init/RedHat/clamd /etc/rc.d/init.d/clamd
cp contrib/init/RedHat/clamav-milter /etc/rc.d/init.d/clamav-milter
chkconfig –add clamd
chkconfig –add clamav-milter
chkconfig –level 2345 clamd on
chkconfig –level 2345 clamav-milter on
echo “/usr/local/clamav/lib” >> /etc/ld.so.conf
ldconfig -v | grep clamav
vi /etc/rc.d/init.d/clamd
progdir=”/usr/local/clamav/sbin”
service clamd start
/usr/local/clamav/bin/freshclam
vi /etc/crontab
37 * * * * /usr/local/clamav/bin/freshclam
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
max_servers=8;
$daemon_user = ‘amavis’;
$daemon_group = ‘amavis’;
$mydomain = ‘hacker-piao.cn’; ###自己的域名
report_safe 0
$db_home = “$MYHOME/db”;
$inet_socket_port = 10024;
$sa_tag_level_deflt = 4; ###超过这个分数标准者,才视为垃圾邮件打分
$sa_tag2_level_deflt = 6.3; ###超过这个分数标准者,才允许在邮件标题加入Spam标记
$sa_kill_level_deflt = 10; ###超过这个分数标准者删除
$virus_admin = “virusalert@$mydomain”;
$sa_spam_subject_tag = ‘*SPAM* ‘;
$notify_method = $forward_method;
$forward_method = ’smtp:127.0.0.1:10025′;
$final_virus_destiny = D_DISCARD; ###检测到病毒时的动作,D_DISCARD: 信件将被丢弃,并且不会告知收件人及发件人
$final_banned_destiny = D_BOUNCE; ###检测到受禁止的内容时的动作,D_BOUNCE: 信件不会发送给收件人但会通知发件人邮件没有被投递
$final_spam_destiny = D_PASS; ####检测到垃圾邮件时的动作D_PASS:无论信件是否有问题,都会将信件发给收件人
$final_bad_header_destiny = D_DISCARD; ###检测到不良信件时的动作D_REJECT: 邮件不会被投递给收件人,但会通知发件人邮件被拒绝
$sa_mail_body_size_limit = 200*1024; ### 超过某個特定大小的邮件就不经过 SpamAssassin 的扫描
read_hash(%whitelist_sender, ‘/var/amavis/whitelist’); ###白名单vi /var/amavis/whitelist
read_hash(%blacklist_sender, ‘/var/amavis/blacklist’); ###黑名单 vi /var/amavis/blacklist
read_hash(%spam_lovers, ‘/var/amavis/spam_lovers’); ###不检测列表中的地址
$virus_admin = “postmaster@$mydomain”; # notifications recip.
$mailfrom_notify_admin = “postmaster@$mydomain”; # notifications sender
$mailfrom_notify_recip = “postmaster@$mydomain”; # notifications sender
$mailfrom_notify_spamadmin = “postmaster@$mydomain”; # notifications sender
$mailfrom_to_quarantine = ”; # null return path; uses original sender if undef
['ClamAV-clamd',
&ask_daemon, ["CONTSCAN {}n", "/var/run/clamav/clamd.socket"],
qr/bOK$/, qr/bFOUND$/,
qr/^.*?: (?!Infected Archive)(.*) FOUND$/ ],
测试启动
/usr/local/sbin/amavisd debug
肯定会报错,根据提示下载安装相应模块,下载网站http://search.cpan.org/,安装某一模块的过程中可能又会提示需要另一模块,需要什么就安装什么,目录一级一级深入,安装完成后一级一级返回,这样不容易把自己弄晕了。操作很简单:wget,tar zxf,perl Make.PL,make,make install如此不断重复
安装N多的模块以后终于OK!大概是30个左右吧,具体我自己也记不清楚了!
vi /etc/mail/spamassassin/local.cf
# These values can be overridden by editing ~/.spamassassin/user_prefs.cf
# (see spamassassin(1) for details)
# These should be safe assumptions and allow for simple visual sifting
# without risking lost emails.
required_hits 10.0
report_safe 1
rewrite_header Subject [SPAM]
required_hits 10.0
rewrite_subject 1
use_bayes 1
bayes_auto_learn 1
skip_rbl_checks 1
use_razor2 0
use_pyzor 0
ok_locales all
spamassassin -d –lint
/usr/bin/spamd -d
wget -N -P /usr/share/spamassassin www.ccert.edu.cn/spam/sa/Chinese_rules.cf
/usr/bin/crontab -e
0 0 1 * * wget -N -P /usr/share/spamassassin www.ccert.edu.cn/spam/sa/Chinese_rules.cf;/usr/local/sbin/amavisdstop;/usr/local/sbin/amavisd start
echo “/usr/local/sbin/amavisd” >> /etc/rc.local
echo “/usr/bin/spamd -d” >> /etc/rc.local
/usr/local/sbin/amavisd
vi /etc/postfix/main.cf
################################Amavis Start(if need delete following line #)#####################
content_filter = amavisfeed:[127.0.0.1]:10024
max_use=10
receive_override_options = no_address_mappings
################################Amavis END###########################
vi /etc/postfix/main.cf
################################Amavis Start(if need delete following line #)#####################
amavisfeed unix - - n - 2 smtp
-o smtp_data_done_timeout=1200
-o smtp_send_xforward_command=yes
-o disable_dns_lookups=yes
-o max_use=20
127.0.0.1:10025 inet n - n - - smtpd
-o content_filter=
-o smtpd_delay_reject=no
-o smtpd_client_restrictions=permit_mynetworks,reject
-o smtpd_helo_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o smtpd_data_restrictions=reject_unauth_pipelining
-o smtpd_end_of_data_restrictions=
-o smtpd_restriction_classes=
-o mynetworks=127.0.0.0/8
-o smtpd_error_sleep_time=0
-o smtpd_soft_error_limit=1001
-o smtpd_hard_error_limit=1000
-o smtpd_client_connection_count_limit=0
-o smtpd_client_connection_rate_limit=0
-o receive_override_options=no_header_body_checks,no_unknown_recipient_checks,no_milters
-o local_header_rewrite_clients=
################################Amavis END###########################
一定要注意-o前面必须有一个空格,否则会报错的。
如果需要增强垃圾邮件过滤功能还可以安装slockd
解压缩复制全部的文件到/usr/local/slockd目录下
vi /usr/local/slockd/config/main.cf
# uncomment the following line if you need to daemonize
setsid 1
## logging
log_file /var/log/slockd.log
然后执行
/usr/local/slockd/slockd-init start
会监听10030端口
vi /etc/postfix/main.cf
将 check_policy_service inet:127.0.0.1:10030 这一行记录增加到smtpd_recipient_restrictions 里
smtpd_recipient_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
reject_non_fqdn_hostname,
reject_non_fqdn_sender,
reject_non_fqdn_recipient,
reject_unauth_destination,
reject_unauth_pipelining,
reject_invalid_hostname,
check_policy_service inet:127.0.0.1:10030
echo “/usr/local/slockd/slockd-init start” >> /etc/rc.d/rc.local
全部开机自动启动项目:
service httpd start
service mysqld start
postfix start
service courier-authlib start
service courier-imapd start
service clamd start
service clamav-milter start
/usr/bin/spamd -d
/usr/local/sbin/amavisd
/usr/local/slockd/slockd-init start#这个根据需要处理
至此全部软件安装配置完成,有一点小小的成就感啊,嘿嘿!
有什么问题可以和我一起交流!email:hacker-piao@163.com