¼Ü¹¹»ùÓÚFree BSDºÍPostfixµÄIGENUS Web mailÓʼþϵͳ
¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D
Ö÷Òª¸Ä½øÁËÑéÖ¤·½Ê½ºÍÑéÖ¤³ÌÐò£¬ÑéÖ¤ËٶȱÈ1.05¿ì1-2±¶£¬¸ü¼Ó½ÚԼϵͳ×ÊÔ´£¬Ê¹ÏµÍ³ÅäÖøü¼òµ¥»¯¡£
·¢²¼ÁËigenus for postfix 1.01 bate°æ±¾
ÐÞÕýÁËÅäÖÃÎļþauthdaemonrcÎļþ£¬Ê¹ÏµÍ³ÔËÐиü¼ÓµÄÎȶ¨
ÐÞÕýÁ˺ܶàÎÄ×ÖÐԵĴíÎó......
Ôö¼ÓÊÖ¶¯ÉèÖòâÊÔÓû§
ÑÝʾ£º
http://mail.toping.net
Óû§Ãû£ºdemo@toping.net
ÃÜ¡¡Â룺demo
¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D
Free BSD+Postfix+Cyrus-sasl+Courier-imap+igenus+Clamav+amavisd-new
ÑîÍ¢ÓÂ
Copyright © 2004¡¢2005
±¾ÎĽéÉÜʹÓÃFreeBSD+Postfix+cyrus-sasl+Courier-imap+igenus+Clamav+amavisd-newÀ´¼Ü¹¹Ò»¸ö¾ßÓжàÓòÃû£¬ÓÐwebmail·À²¡¶¾ºÍÀ¬»øÓʼþ²¢ÓÐweb¹ÜÀí½çÃæµÄÓʼþϵͳ¡£
Jacky, $Revision: 2.02 bate $Date: 2005-5-25
ϵͳÖ÷Òª²ÉÓÃMySQL×öΪÈÏÖ¤Êý¾Ý¿â¡£
±¾ÎÄÔÚFreeBSD4.10¡¢5.3¡¢5.4Éϰ²×°²âÊÔͨ¹ý£¬µÇ¼ÈÏÖ¤·ÅÆú²ÉÓÃPAM·½Ê½¡£¿´Á˺ܶà×ÊÁÏ£¬µ«´ó¶à¶¼ÊÇʹÓÃPAM£¬±¾ÏµÍ³Ê¹ÓÃcourierÈÏÖ¤¡£courierÈÏÖ¤×î´óµÄÓŵãÊǼòµ¥£¬¶øÇÒÖ§³Ö¼ÓÃÜÈÏÖ¤ºÍ°²È«Á¬½Ó£¬ÊÇͬһ¸ö½ø³Ì£¬Ð§Âʸü¸ß¡£ÅäÖÃÎļþ¸üÉÙ¡£
Table of Contents
Chapter 1. ϵͳ°²×°
1.1 °²×°MySQL
1.2 °²×°Apache
1.3 °²×°PHP
1.4 °²×°openssl
1.5 °²×°phpMyAdmin
1.6 ͨ¹ýphpMyadminÉèÖÃÊý¾Ý¿â
1.7°²×°Courier-imap
1.8°²×° postfix ºÍ cyrus-sasl
1.9 °²×°expect
1.10 °²×°Courier-imap
Chapter 2. ÅäÖÃÓʼþ·þÎñÆ÷
2.1 ÅäÖÃrc.conf
2.2 ÅäÖÃpostfix ºÍ cyrus-sasl
2.3 ÅäÖÃCourier-imap
Chapter 3. ÊÖ¶¯ÉèÖõÚÒ»¸öÓû§²¢²âÊÔ
Chapter 4. °²×°postfix¹ÜÀí¹¤¾ß
4.1°²×°±¾ÈË¿ª·¢µÄpostfix¹ÜÀí¹¤¾ß
4.2 Óû§µÇ¼²âÊÔ
Chapter 5. ·À²¡¶¾Óë·ÀÀ¬»øÓʼþ
5.1 °²×°Clamav
5.2 °²×°amavisd-new
5.3 °²×°ÅäÖÃSpamassassin
Chapter 6. °²×°webmail
Chapter 7. ²é¿´ÏµÍ³×´Ì¬
Chapter 1. ϵͳ°²×°
°²×°Ö®Ç°£ºÒòÓû§Êý¾Ý¶¼±£´æÔÚ/varĿ¼Ï£¬Òò´Ë°²×°FreeBSDʱ/varµÄ¿Õ¼äÓ¦¾¡Á¿´ó¡£FreeBSDµÄ°æ±¾Îª5.3£¬°´×îС»¯°²×°£¬Èí¼þ°üÖ»
°²×°cvsup£¬°²×°½áÊøºóÓÃcvsup¸üÐÂportsÊ÷¡£ÔÚÎĵµÖмÙÉè·þÎñÆ÷µÄipµØÖ·Îª192.168.0.2£¬ÓòÃûΪtoping.net£¬Ö÷»úÃû
Ϊmail.toping.net¡£
1.1 °²×°MySQL
mail# cd /usr/ports/databases/mysql323-server
mail# make install clean
±à¼/etc/rc.conf£¬¼ÓÈë
mysql_enable="YES"
1.2 °²×°Apache
mail# cd /usr/ports/www/apache2
mail# make install clean
±à¼/etc/rc.conf£¬¼ÓÈë
Apache2_enable="YES"
1.3 °²×°PHP
mail# cd /usr/ports/www/mod_php4
mail# make install clean
°²×°ÐèÒªµÄPHPÀ©Õ¹Ä£¿é
mail# cd /usr/ports/lang/php4-extensions
mail# make install clean
×¢£ºgettextÐèÑ¡ÖÐ
×îºóÔÚ±à¼/usr/local/etc/apache2/httpd.confÖмÓÈ룺
#php_mod4
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
1.4 °²×°openssl
mail# cd /usr/ports/security/openssl
mail# make install clean
1.5 °²×°phpMyAdmin
mail# cd /usr/ports/databases/phpmyadmin
mail# make install clean(ÔÚÕâÀィÒé¿ÉÒÔÑ¡ÔñËùÓеÄÑ¡Ïî)
°²×°×°ºóĬÈϵݲװĿ¼Ϊ£º/usr/local/wwwÏÂÃæÄãÒª×öµÄ¾ÍÊÇÒÆµ½/usr/loca
l/www/dataĿ¼ÏÂÃæ
mail# mv /usr/local/www/phpMyAdmin /usr/local/www/data/
ÐÞ¸Ä/usr/local/www/phpMyAdmin/config.inc.php
$cfg['PmaAbsoluteUri'] = 'http://192.168.0.2/phpMyAdmin/';
$cfg['Servers'][$i]['auth_type'] = 'http'; // Authentication method (config, http or cookie based)?
Ö¸¶¨phpmyadminµÄÈÏÖ¤·½Ê½Îªhttp·½Ê½¡£
ÔÚä¯ÀÀÆ÷ÊäÈëhttp://192.168. 0.2/phpMyAdmin/£¬Ê״νøÐеÇÈëµÄÓû§ÃûΪrootÃÜÂëΪ¿Õ£¬µÇÈëºó¿ÉÒÔÐÞ¸ÄÄãµÄÃÜÂë¡£
1.6 ͨ¹ýphpMyadminÉèÖÃÊý¾Ý¿â
½¨Á¢Á½¸öÊý¾Ý¿âÓû§
#======================postfix==================================
INSERT INTO user (host,user,password) VALUES('localhost','postfix','');
update user set password=password('postfix') where User='postfix';
FLUSH PRIVILEGES;
GRANT ALL ON mail.* TO postfix@localhost IDENTIFIED BY "postfix";
½¨Á¢Êý¾Ý¿â
#=======================MAIL.SQL=================================
CREATE TABLE domaininfo (
domain_id int(5) NOT NULL auto_increment,
domain varchar(25) NOT NULL default '',
alias varchar(30) default NULL,
passwd varchar(35) NOT NULL default '',
usernum int(5) NOT NULL default '0',
quota int(11) NOT NULL default '0',
des varchar(30) default NULL,
expire date NOT NULL default '0000-00-00',
active tinyint(1) NOT NULL default '1',
create_time datetime default NULL,
PRIMARY KEY (domain_id),
UNIQUE KEY domain (domain),
KEY domain_id (domain_id)
) TYPE=MyISAM COMMENT='domain information';
INSERT INTO domaininfo VALUES
(1,'admin',NULL,'$.j3.t12.$I7MGf7ZD2HrWwUWQF88Mg1',0,0,'Super
Admin','0000-00-00',1,'0000-00-00 00:00:00');
CREATE TABLE userinfo (
id int(11) NOT NULL auto_increment,
userid varchar(20) NOT NULL default '',
domain_id int(5) NOT NULL default '0',
address varchar(50) NOT NULL default '',
alias varchar(60) default NULL,
passwd varchar(35) NOT NULL default '',
realname varchar(20) default NULL,
quota int(11) NOT NULL default '0',
active tinyint(1) NOT NULL default '0',
homedir varchar(60) NOT NULL default '',
maildir varchar(60) NOT NULL default '',
create_time datetime NOT NULL default '0000-00-00 00:00:00',
PRIMARY KEY (id),
UNIQUE KEY address (address)
) TYPE=InnoDB COMMENT='User Information';
1.7 °²×°Courier-imap
mail# cd /usr/ports/mail/courier-imap
mail# make WITHOUT_OPENSSL=yes WITH_MYSQL=yes install clean
Ñ¡Ôñ
[X] MYSQL
[X] OPENSSL
[X] IPV6
´Ëʱ»áÔÚ/var/run/authdaemond/ϲúÉúsocket
chmod +x /var/run/authdaemond
mail# cd /usr/local/etc/courier-imap
mail# cp imap
d.cnf.dist imapd.cnf
mail# cp pop3d.cnf.dist pop3d.cnf
1.8 °²×° postfix ºÍ cyrus-sasl
mail# cd /usr/ports/security/cyrus-sasl2
mail# make install WITH_AUTHDAEMON=yes
´´½¨/usr/local/lib/sasl2/smtpd.conf
CODE
pwcheck_method: authdaemond
log_level: 3
mech_list: PLAIN LOGIN
authdaemond_path:/var/run/authdaemond/socket
ÖÁ´Ë£¬ÈÏÖ¤²¿·Ö»ù±¾Íê³É¡£
mail# cd /usr/ports/mail/postfix
mail# make install clean
Ñ¡ÔñÏÂÃæµÄÄÚÈÝ£º
[X] SASL2
[X] TLS
[X] MYSQL
»Ø´ðÏÂÃæµÄÁ½ÎÊÌ⣺
You need user "postfix" added to group "mail".
Would you like me to add it [y]? y
Would you like to activate Postfix in /etc/mail/mailer.conf [n]? n
mail# cd /usr/local/etc/rc.d
mail# ln ¨Cs /usr/local/sbin/postfix postfix.sh
mail# chmod 777 postfix.sh
mail# ln -s /usr/local/sbin/sendmail /usr/sbin/sendmail
Èç¹û/usr/sbin/sendmail´æÔÚ¾ÍɾÁËÔÙ×öÉÏÁ´½Ó
mail# echo ¡®postfix: root¡¯ >> /etc/aliases
mail# /usr/local/bin/newaliases
mail# chown postfix:postfix /etc/opiekeys
1.9 °²×°expect
ÓÃÓÚWeb¿Í»§¶Ë½¨Á¢ÓʼþÓû§
mail# cd /usr/ports/lang/expect
mail# make install clean
Chapter 2. ÅäÖÃÓʼþ·þÎñÆ÷
±¾½ÚÖ÷Òª½²Êö¸÷ÖÖ·þÎñµÄ²ÎÊýÅäÖá£
2.1 ÅäÖÃrc.conf£¬±à¼/etc/rc.conf£¬¼ÓÈë
CODE
mysql_enable="YES"
apache2_enable="YES"
££saslauthd_enable="YES"
sendmail_enable="YES"
sendmail_flags="-bd"
sendmail_pidfile="/var/spool/postfix/pid/master.pid"
sendmail_outbound_enable="NO"
sendmail_submit_enable="NO"
sendmail_msp_queue_enable="NO"
courier_authdaemond_enable="YES"
courier_imap_pop3d_enable="YES"
courier_imap_imapd_enable="YES"
££amavisd_enable="YES"
2.3 ÅäÖÃpostfix ºÍ cyrus-sasl
(1)´´½¨/etc/periodic.conf
CODE
daily_clean_hoststat_enable="NO"
daily_status_mail_rejects_enable="NO"
daily_status_include_submit_mailq="NO"
daily_submit_queuerun="NO"
(2)ÐÞ¸Ä/usr/local/etc/postfix/main.cf£¬ÔÚÎļþ×îºó¼ÓÈëÒÔÏÂÄÚÈÝ
CODE
#======= BASE ==============
myhostname = mail.toping.net
mydomain = toping.net
#home_mailbox = Maildir/
mydestination = $myhostname
local_recipient_maps =
#mailbox_command= /usr/local/bin/deliverquota -w 90 ~/Maildir
command_directory = /usr/local/sbin
local_transport=virtual
#======= MYSQL =============
virtual_transport = virtual
v
irtual_mailbox_domains = mysql:/usr/local/etc/postfix/transport.cf
virtual_gid_maps = static:125
virtual_mailbox_base = /
virtual_mailbox_maps = mysql:/usr/local/etc/postfix/mysql_virtual.cf
virtual_maps = mysql:/usr/local/etc/postfix/mysql.aliases.cf
virtual_uid_maps = static:125
#======= Quota ============
message_size_limit = 5242880
virtual_mailbox_limit_inbox = no
virtual_mailbox_limit_maps = mysql:/usr/local/etc/postfix/mailboxsize-mysql.cf
virtual_mailbox_limit_override = yes
virtual_maildir_extended = yes
virtual_create_maildirsize = yes
virtual_mailbox_limit = 52428800
#====== SASL ================
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_sasl_authenticated permit_auth_destination reject
#smtpd_sasl_local_domain = $mydomain
smtpd_client_restrictions = permit_sasl_authenticated
(3)È·ÈÏ/usr/local/etc/postfix/master.cfµÄÅäÖÃÓÐÈçÏÂÄÚÈÝ
CODE
virtual unix - n n - - virtual
(4)±à¼/usr/local/etc/postfix/transport.cf
CODE
user = postfix
password = postfix
dbname = postfix
table = domaininfo
#select_field = alias
select_field = domain
where_field = domain
hosts = localhost
(5)±à¼/usr/local/etc/postfix/gids.cf
CODE
user = postfix
password= postfix
dbname = postfix
table = userinfo
select_field = domain_id
where_field = id
hosts = localhost
(6)±à¼/usr/local/etc/postfix/uids.cf
CODE
user = postfix
password= postfix
dbname = postfix
table = userinfo
select_field = userid
where_field = id
hosts = localhost
(7)±à¼/usr/local/etc/postfix/mysql_virtual.cf
CODE
user = postfix
password= postfix
dbname = postfix
table = userinfo
select_field = maildir
#where_field = id
where_field = address
hosts = localhost
(8)±à¼/usr/local/etc/postfix/mysql.aliases.cf
CODE
user = postfix
password= postfix
dbname = postfix
table = domaininfo
select_field = domain
where_field = domain_id
hosts = localhost
(9)±à¼/usr/local/etc/postfix/mailboxsize-mysql.cf
CODE
user = postfix
password = postfix
dbname = postfix
table = userinfo
select_field = quota
where_field = id
hosts = lo
calhost
2.4 ÅäÖÃCourier-imap
(1)ÐÞ¸ÄCourierÏà¹ØÉèÖã¬/usr/local/etc/courier-imap/imapd:
CODE
IMAP_CAPABILITY="IMAP4rev1 CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT AUTH=CRAM-MD5 AUTH=CRAM-SHA1 IDLE"
(2)ÐÞ¸Ä/usr/local/etc/courier-imap/pop3d
CODE
POP3AUTH="LOGIN CRAM-MD5 CRAM-SHA1"
(3)±à¼ÐÞ¸Ä/usr/local/etc/authlib/authmysqlrc ʾÀý£ºauthmysqlrc
CODE
MYSQL_SERVERlocalhost
MYSQL_USERNAMEpostfix
MYSQL_PASSWORDpostfix
MYSQL_PORT0
MYSQL_OPT0
MYSQL_DATABASEpostfix
MYSQL_USER_TABLEuserinfo
MYSQL_CRYPT_PWFIELDpasswd
MYSQL_UID_FIELD'125'
MYSQL_GID_FIELD'125'
MYSQL_LOGIN_FIELDaddress
MYSQL_HOME_FIELDhomedir
MYSQL_NAME_FIELDrealname
MYSQL_MAILDIR_FIELDmaildir
MYSQL_QUOTA_FIELDquota
(4)±à¼/usr/local/etc/authlib/authdaemonrc
CODE
authmodulelist="authmysql authpam authuserdb"
authmodulelistorig="authmysql authpam authuserdb"
version="authdaemond.mysql"
daemons=5
authdaemonvar=/var/run/authdaemond
subsystem=mail
DEBUG_LOGIN=0
DEFAULTOPTIONS="wbnodsn=1"
ÖØÆô·þÎñÆ÷
Chapter 3. ¡¡ÊÖ¶¯ÉèÖõÚÒ»¸öÓû§²¢²âÊÔ
±¾Õ½éÉÜÈçºÎ¿ªÍ¨Óû§£¬²¢ÇÒ²âÊÔϵͳÊÇ·ñÕý³£¡£
Mail# Mysql
mysql> use mail;
mysql> show tables;
+----------------+
| Tables_in_mail |
+----------------+
| domaininfo |
| userinfo |
+----------------+
2 rows in set (0.00 sec)
Ôö¼ÓÓòÃûºÍ¹ÜÀíÔ±
mysql> desc domaininfo;
+-------------+-------------+------+-----+------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+-------------+------+-----+------------+----------------+
| domain_id | int(5) | | PRI | NULL | auto_increment |
| domain | varchar(25) | | UNI | | |
| alias | varchar(30) | YES | | NULL | |
| passwd | varchar(35) | | | | |
| usernum | int(5) | | | 0 | |
| quota | int(11) | | | 0 | |
| des | varchar(30) | YES | | NULL | |
| expire | date | | | 0000-00-00 | |
| active | tinyint(1) | | | 1
| |
| create_time | datetime | YES | | NULL | |
+-------------+-------------+------+-----+------------+----------------+
10 rows in set (0.00 sec)
mysql> INSERT INTO `domaininfo` VALUES (7, 'toping.net', NULL,
encrypt('admin123'), 50, 500, NULL, '0000-00-00', 1, '2005-04-19
23:19:11');
Query OK, 1 row affected (0.00 sec)
²éѶ¿´¸Õ²Å¼ÓµÄÓòÃû³É¹¦µ½Êý¾Ý¿âÀïÃæ
Mysql>select * from domaininfo;
mysql> desc userinfo;
+-------------+-------------+------+-----+---------------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+-------------+------+-----+---------------------+----------------+
| id | int(11) | | PRI | NULL | auto_increment |
| userid | varchar(20) | | | | |
| domain_id | int(5) | | | 0 | |
| address | varchar(50) | | UNI | | |
| alias | varchar(60) | YES | | NULL | |
| passwd | varchar(35) | | | | |
| realname | varchar(20) | YES | | NULL | |
| quota | int(11) | | | 0 | |
| active | tinyint(1) | | | 0 | |
| homedir | varchar(60) | | | | |
| maildir | varchar(60) | | | | |
| create_time | datetime | | | 0000-00-00 00:00:00 | |
+-------------+-------------+------+-----+---------------------+----------------+
12 rows in set (0.00 sec)
mysql> INSERT INTO `userinfo` VALUES (8, 'webmaster', 7,
'webmaster@toping.net', NULL, encrypt('admin123'), 'webmaster',
209715200, 1, '/var/mail/toping.net/webmaster/',
'/var/mail/toping.net/webmaster/Maildir/', '2005-04-20 23:45:17');
mysql>quit
ÉèÖÃÓû§µÄĿ¼ÓëȨÏÞ£º
Mail# mkdir -p /var/mail/toping.net/webmaster
Mail# /usr/local/bin/maildirmake /var/mail/toping.net/webmaster/Maildir
Mail# chmod -R 777 /var/mail/toping.net/
Mail# chown -R postfix:postfix /var/mail/test.com
ÖÁ´ËÓû§ÉèÖÃÍê±Ï£¬ÕâÀïֻʹÓÃÒ»¸öÓòÃû£¬Í¬Àí¿ÉÒÔÉèÖöà¸öÓòÃû¡£
Chapter 4.°²×°postfix¹ÜÀí¹¤¾ß£¨ÉÌÒµ°æ£©
±¾½ÚÖ÷Òª½éÉÜÈçºÎ°²×°ºÍʹÓñ¾ÈË¿ª·¢µÄpostfix¹ÜÀí¹¤¾ß¡£
4.1°²×°±¾ÈË¿ª·¢µÄpostfix¹ÜÀí¹¤¾ßÀ´ÉèÖõÚÒ»¸öÓòÃûºÍÓû§
ÉÏ´«¹ÜÀí¹¤¾ßµ½ÍøÕ¾Ä¿Â¼
ºóÐÞ¸Äinclude/config.inc.phpÖеÄ
define(DOMAINSDIR,"/home/vmail");¡¡¡¡Îª¡¡¡¡define(DOMAINSDIR,"/var/mail"
);
define(MYSQL_HOST, 'localhost'); Ϊ¡¡¡¡ÄúµÄMySQL·þÎñÆ÷µÄÖ÷»úÃû
define(MYSQL_USER, 'root');¡¡¡¡¡¡¡¡¡¡Îª¡¡¡¡ÄúµÄMySQLµÄÓû§Ãû
define(MYSQL_PASS, 'mypasswd');¡¡¡¡¡¡Îª¡¡¡¡ÄúµÄMySQLµÄÃÜÂë
define(MYSQL_DATA, 'postfix');¡¡¡¡¡¡¡¡Îª¡¡¡¡ÄúµÄÓʼþ·þÎñÆ÷µÄÊý¾Ý¿â
ÐÞ¸ÄÍê³ÉºóÔËÐУºhttp://mail.toping.net/webadmin/install.php
Íê×°Íê³É£¡£¡
4.2 Óû§µÇ¼²âÊÔ
Óû§µÇ¼²âÊÔ
°²×°p5-MIME-Base64
mail# cd /usr/ports/converters/p5-MIME-Base64/
mail# make install clean
ͨ¹ýp5-MIME-Base64À´È¡µÃÓû§ÃûºÍÃÜÂëµÄbase64±àÂë
mail# perl -MMIME::Base64 -e 'print encode_base64("webmaster\@toping.net");'
d2VibWFzdGVyQHRvcGluZy5uZXQ=
mail# perl -MMIME::Base64 -e 'print encode_base64("000000");'
MDAwMDAw
·¢ËÍÓʼþ£º
mail# telnet 127.0.0.1 25
Trying 127.0.0.1...
Connected to 0.
Escape character is '^]'.
220 mail.toping.net ESMTP Postfix
ehlo mail
250-mail.toping.net
250-PIPELINING
250-SIZE 4194304
250-VRFY
250-ETRN
250-AUTH NTLM LOGIN PLAIN OTP
250-AUTH=NTLM LOGIN PLAIN OTP
250 8BITMIME
auth login
334 VXNlcm5hbWU6
d2VibWFzdGVyQHRvcGluZy5uZXQ=//´ËΪÓû§Ãûid£ºwebmaster@toping.net
334 UGFzc3dvcmQ6
MDAwMDAw//´ËΪÓû§ÃÜÂëpassword£º000000
235 Authentication successful
MAIL FROM:webmaster@toping.net//¸æËß·þÎñÆ÷·¢¼þÈ˵ÄEmailµØÖ·
250 Ok
RCPT TO:webmaster@toping.net//¸æËß·þÎñÆ÷ÊÕ¼þÈ˵ĵØÖ·
250 OK
DATA//¸æËß·þÎñÆ÷¿ªÊ¼Ð´ÐÅ
354 End data with
SUBJECT:test//subjectºóÃæÌîдµÄÊÇÓʼþµÄÖ÷Ìâ
test
.//»»ÐкóÊäÈë.ºó°´»Ø³µ,±íʾÐżþÄÚÈÝÊéдÍê±Ï
250 Ok: queued as 58DC71D5
quit//·¢ËÍÐżþ£¬½áÊø¶Ô»°£¬Í˳öSMTP·þÎñÆ÷
221 Bye
Connection closed by foreign host
ÊÕÈ¡Óʼþ£º
mail# telnet 127.0.0.1 110
Trying 127.0.0.1...
Connected to 0
Escape character is '^]'
+OK Hello there
user webmaster@toping.net m
+OK Password required
pass 000000
+OK logged in
list
+OK POP3 clients that break here, they violate STD53
1 2217
.
retr 1//·µ»ØµÚÒ»·âÐŵÄÈ«²¿ÄÚÈÝ
+OK 2217 octets follow.
Return-Path:
X-Original-To: webmaster@toping.net
Delivered-To: webmaster@toping.net
Received: from mail (localhost.toping.net [127.0.0.1])
by mail.toping.net (Postfix) with ESMTP id 58DC71D5
for
SUBJECT:test
Message-Id: <20040809131120.58DC71D5@mail.toping.net>
Date: Mon, 9 Aug 2004 21:11:20 +0800 (CST)
From: webmaster@toping.net
To: undisclosed-recipients:;
test
.
del
e 1//ɾ³ý
+OK Deleted
quit
+OK Bye-bye
Connection closed by foreign host
Ò²¿ÉÒÔʹÓÃÈÎºÎÆäËüµÄÓʼþ¿Í»§¶Ë³ÌÐòÀ´²âÊÔ£¬Èçfoxmail¡¢Outlook ExpressµÈµÈ¡£
Chapter 5. ·À²¡¶¾Óë·ÀÀ¬»øÓʼþ
±¾Õ½éÉܲ¡¶¾ÓëÀ¬»øÓʼþµÄ·À·¶¡£
5.1 °²×°Clamav
mail# cd /usr/ports/security/clamav
mail# make install clean
×¢£ºÑ¡ÖÐCURL
ÖØÆô·þÎñÆ÷
²âÊÔ
mail# clamscan -r -i /usr/local/www/data
----------- SCAN SUMMARY -----------
Known viruses: 32358
Scanned directories: 47
Scanned files: 866
Infected files: 0
Data scanned: 10.32 MB
I/O buffer size: 131072 bytes
Time: 41.750 sec (0 m 41 s)
Éý¼¶²¡¶¾¿â
mail# freshclam
ClamAV update process started at Fri May 6 00:12:24 2005
WARNING: Your ClamAV installation is OUTDATED - please update immediately!
WARNING: Local version: 0.83 Recommended version: 0.84
Downloading main.cvd[*]
main.cvd updated (version: 31, sigs: 33079, f-level: 4, builder: tkojm)
Downloading daily.cvd[*]
daily.cvd updated (version: 871, sigs: 1178, f-level: 4, builder: ccordes)
Database updated (34257 signatures) from database.clamav.net (IP: 61.8.0.16)
Clamd successfully notified about the update.
5.2 °²×°amavisd-new
°æ±¾20040701¡£
mail# cd /usr/ports/security/amavisd-new
mail# make install clean
Ñ¡ÖÐMySQL
±à¼/etc/rc.conf£¬¼ÓÈë
amavisd_enable="YES"
ÐÞ¸Ä/usr/local/etc/amavisd.Conf
$mydomain = 'example.com';¸Ä³É$mydomain = 'toping.net ';
#$notify_method = 'smtp:[127.0.0.1]:10025';
#$forward_method = 'smtp:[127.0.0.1]:10025';
µÄ×¢ÊÍÈ¥µô
ÐÞ¸Ä/usr/local/etc/postfix/master.cf£¬×îºó¼ÓÈë
##########################3amavis######################################
smtp-amavis unix - - y - 2 smtp -o smtp_data_done_timeout=1200
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 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
ÖØÆô·þÎñÆ÷
5.3 °²×°ÅäÖÃSpamassassin
ÔÚеÄAMaVisd-newÒѾ½áºÏÁËSpamassassin¹¦ÄÜ£¬ËùÒÔÖ»ÒªÓà ports°²×°ÁË AMaVisd-new£¬ÄÇSpamassassin Ò²ÒѾ°²×°ºÃÁË¡£
Ìí¼ÓÐèÒªµÄÓû§
mail# pw useradd spam -c "Spam Bayes Learner" -d /var/emp
ty -s /sbin/nologin
mail# pw useradd notspam -c "Not Spam Bayes Learner" -d /var/empty -s /sbin/nologin
ÐÞ¸Ä/usr/local/etc/mail/spamassassin/local.cf
use_bayes 1
bayes_path /var/amavis/.spamassassin/bayes
auto_learn 1
auto_learn_threshold_nonspam -2
auto_learn_threshold_spam 15
ÐÞ¸Ä/usr/local/etc/amavisd.conf£¬ÔÚ$mydomain = 'toping.net';Ò»¶ÎÏÂÃæÔö¼Ó
$max_requests = 10;
$child_timeout=5*60;
@bypass_virus_checks_acl = qw( . );
@local_domains_acl = ( ".$mydomain" );
$final_spam_destiny = D_PASS;
read_hash(\%whitelist_sender, '/var/amavis/whitelist');
read_hash(\%blacklist_sender, '/var/amavis/blacklist');
read_hash(\%spam_lovers, '/var/amavis/spam_lovers');
½¨Á¢ËùÐèÒªµÄÎļþ
mail# touch /var/amavis/whitelist
mail# touch /var/amavis/blacklist
mail# touch /var/amavis/spam_lovers
mail# chown vscan /var/amavis/whitelist
mail# chown vscan /var/amavis/blacklist
mail# chown vscan /var/amavis/spam_lovers
mail# echo spam@toping.net >> /var/amavis/spam_lovers
mail# echo notspam@toping.net >> /var/amavis/spam_lovers
ÐÞ¸Ä/usr/local/etc/postfix/main.cf£¬Ìí¼Ó
content_filter = smtp-amavis:[127.0.0.1]:10024
½¨Á¢×Ô¶¯Ñ§Ï°Ìåϵ
mail# vi /usr/local/sbin/my-sa-learn.sh
#!/bin/sh
if [ -e /var/mail/spam ]; then
/usr/local/bin/sa-learn --spam -p /var/amavis/.spamassassin/user_prefs --mbox /var/mail/spam
rm /var/mail/spam > /dev/null
fi
if [ -e /var/mail/notspam ]; then
/usr/local/bin/sa-learn --ham -p /var/amavis/.spamassassin/user_prefs --mbox /var/mail/notspam
rm /va/mail/notspam > /dev/null
fi
mail# chmod a+x /usr/local/sbin/my-sa-learn.sh
½¨Á¢Ñ§Ï°ÖªÊ¶¿â£º
mail# /usr/local/bin/sa-learn --sync -p /var/amavis/.spamassassin/user_prefs
¼ÓÈë×Ô¶¯ÔËÐУº
mail# crontab -e
5 0 * * * /usr/local/sbin/my-sa-learn.sh
ÖØÆô·þÎñÆ÷
²âÊÔ
mail# su - vscan
mail# /usr/local/sbin/amavisd debug
Æô¶¯ÁíÒ»¸öÖÕ¶Ë£º
mail# telnet 127.0.0.1 10024
Trying 127.0.0.1...
Connected to localhost.toping.net.
Escape character is '^]'.
220 [127.0.0.1] ESMTP amavisd-new service ready
MAIL FROM:
250 2.1.0 Sender webmaster@toping.net OK
RCPT TO:
250 2.1.5 Recipient webmaster@toping.net OK
DATA
354 End data with
Subject: test
X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVI
RUS-TEST-FILE!$H+H*
.
250 2.7.1 Ok, discarded, id=00228-01 - VIRUS: Eicar-Test-Signature
//³öÏÖÕâÒ»ÐбíʾϵͳÒѾÈϳöÕâ¸öÓʼþÖк¬ÓÐ Virus
quit
Chapter 6. °²×°webmail
ÈçºÎʹÓñ¾ÈËÐ޸ĵÄiGENUS for Postfix 1.01 bate
[ÏÂÔØ]
http://mail.toping.net/igenus_for_postfix1.01bate.rar
webmailʹÓÃigenus£¬°æ±¾ÊÇiGENUS for Postfix 1.01 bate
½¨ÒéÏÂÔØ±¾ÈËÐ޸ĵÄiGENUS for Postfix 1.01 bate
ÏÂÔØigenusµ½/usr/local/www/data/Ŀ¼ºó½âѹ
°²×°Îĵµ²Î¿¼¹Ù·½ÍøÕ¾¡£
°²×°autorespond¡£
mail# cd /usr/ports/mail/autorespond
mail# make install clean
ÐÞ¸Ä/usr/local/etc/apache/httpd.conf
Group www¡¢User wwwÐÞ¸ÄΪ£º Group postfix¡¢User postfix
mail# cd /usr/local/www/data
mail# chown -R postfix:postfix phpMyAdmin
mail# cd /usr/local/etc
mail# cp php.ini-dist php.ini
ÐÞ¸Ä/usr/local/etc/php.ini
register_globals = On
max_execution_time = 30//¸ÄΪ60 (Ôö¼Ó´¦Àí½Å±¾µÄʱ¼äÏÞÖÆ)
memory_limit = 8M//¸ÄΪ40M (ÕâÑù²ÅÄÜ·¢10MµÄ¸½¼þ)
post_max_size = 8M//¸ÄΪ10M
upload_max_filesize = 2M//¸ÄΪ10M
ÖØÆôapache
mail# /usr/local/etc/rc.d/apache2.sh restart
Chapter 7. ²é¿´ÏµÍ³×´Ì¬
±¾½ÚÖ÷Òª½²ÊöphpSysInfo¹¤¾ßµÄ°²×°ºÍÅäÖÃ
°²×°phpSysInfo(2.2)
mail# cd /usr/ports/www/phpSysInfo
mail# make install clean
mail# cd /usr/local/www/data-dist/phpSysInfo
mail# cp config.php.new config.php
Ïà¹ØÍøÖ·£º
http://:www.toping.net/bbs ÕýÔÚ½¨ÉèÖÐ........
http://osul.3322.org
http://www.xuki.org
¸½Í¼1

