2006-6-23
×÷ÕߣºFirebat
QQ£º7199023
MSN£ºfirebat0@msn.com
±¾Îļòµ¥½éÉÜÁË»ùÓÚFreeBSDµÄµç×ÓÓʼþϵͳµÄÒ»ÖÖʵÏÖ·½·¨£¬Ê¹ÓÃpostfix+sasl2+courier-imap+mysql +amavisd+spamd+clamav¹¹½¨µç×ÓÓʼþϵͳºǫ́ºÍÑé֤ϵͳ£¬Ê¹ÓÃapache+php+postfixadmin+squirrelmail¹¹½¨webmail¡£Õû¸öϵͳ½¨³ÉºóÄܹ»Ìṩsmtp/pop3/imap/webmail·þÎñ£¬²¢Äܹ»ÑéÖ¤smtpµÇ½£¬¹ýÂËÀ¬»øÓʼþºÍɨÃèÓʼþÖеIJ¡¶¾¡£±¾ÎÄËù½éÉܵķ½·¨ÔÚFreeBSD 5.4ºÍFreeBSD 6.1ϾùÄÜÕý³£²Ù×÷¡£
0¡¢¸üÐÂports
pkg_add ¨Cr cvsup
rehash
cvsup ¨Ch cvs.freebsdchina.org /usr/share/examples/cvsup/ports-supfile
1¡¢°²×°Èí¼þ
¢Ù°²×°cyrus-sasl2
sasl2ÊÇsmtpÑéÖ¤ËùÐèÒªµÄÈí¼þ°ü£¬ÓÉÓÚpostfix°²×°Ê±²ÉÓÃĬÈÏÅäÖã¬Ê¹µÃsasl²»Ö§³Öcourier-authdaemond£¬Òò´ËÐèÒªÊ×ÏÈÓÃÖ¸¶¨µÄÑ¡Ïî½øÐа²×°¡£
cd /usr/ports/security/cyrus-sasl2
make WITH_AUTHDAEMON=yes install clean
¢Ú°²×°expect
cd /usr/ports/lang/expect
make install clean
¢Û°²×°postfix£¬°²×°Ê±Ñ¡ÖÐ[SASL2]¡¢[MySQL]¡¢[VDA]£¬sasl2ÓÃÓÚsmtpÑéÖ¤£¬mysqlÓÃÓÚ´æ·ÅÊý¾Ý±í£¬vdaÓÃÓÚÖ§³ÖÐéÄâͶµÝ¡£
cd /usr/ports/mail/postfix
make install clean
¢Ü°²×°courier-imap£¬Í¨¹ýmake config¼ÓÉ϶ÔmysqlµÄÖ§³Ö¡£
cd /usr/ports/mail/courier-imap
make config
make install clean
¢Ý°²×°clamav
cd /usr/ports/security/clamav
make install clean
¢Þ°²×°amavisd£¬°²×°¹ý³ÌÖлá×Ô¶¯°ÑspamdÒ²°²×°ÉÏ¡£ÔÚmake configÖмÓÈëmysqlÖ§³Ö¡£
cd /usr/ports/security/amavisd-new
make config
make install clean
¢ß°²×°apache¡£°²×°Íê³Éºó±à¼httpd.conf½«Ö÷Ŀ¼ÉèÖÃΪ/usr/local/www
cd /usr/ports/www/apache22
make install clean
¢à°²×°php¡£¸üÐÂportsºóµÄphp°²×°·½Ê½ÓÐËù±ä»¯£¬Ê×ÏÈÔÚmake configÐèҪѡÖÐ[Apache]ÒÔ±àÒëapacheÄ£¿é£¬°²×°Íê³ÉºóÔÚhttpd.confÖÐÐÞ¸Ä2´¦ÅäÖãº
a¡¢ÔÚDirectoryIndexÖмÓÈëindex.php
b¡¢¼ÓÈëAddType application/x-httpd-php .php
cd /usr/ports/lang/php4
make config
make install clean
¢á°²×°php4-extensions¡£¸ù¾ÝÐèҪѡÔñÄ£¿é£¬±£Ö¤[MYSQL]¡¢[PCRE]¡¢[SESSION]±»Ñ¡ÖС£
cd /usr/ports/lang/php4-extensions
make config
make install clean
¢â°²×°postfixadmin¡£°²×°Íê³Éºó½«ÍøÒ³Òƶ¯ÖÁ/usr/www/data/
cd /usr/ports/mail/postfixadmin
make install clean
mv /usr/local/www/postfixadmin /usr/local/www/data/
¡ð11°²×°squirrelmail
cd /usr/ports/mail/squirrelmail
make install clean
ÖÁ´Ë£¬ËùÐèÈí¼þÈ«²¿°²×°Íê±Ï£¬ÏÂÃæ½«ÒÀ´Î½øÐÐÅäÖá£
2¡¢ÅäÖÃÎļþ
¢ÙÅäÖÃsasl
ee /usr/local/lib/sasl2/smtpd.conf
pwcheck_method: authdaemond
log_level: 3
mech_list: PLAIN LOGIN
authdaemond_path: /var/run/authdaemond/socket
¢ÚÅäÖÃmysqlÊý¾Ý¿â
chmod ¨CR mysql:mysql /var/db/mysql
cd /usr/local/bin/
./mysql_install_db
cd /usr/local/libexec
./mysqld ¨Cuser=mysql&
cd /usr/local/www/postfixadmin
mysql ¨Curoot ¨Cp < DATABASE_MYSQL.TXT
¢ÛÅäÖÃpostfix
ʹÓúÍapacheÒ»ÑùµÄÓû§À´¶ÁÈ¡ÓʼþĿ¼£¬ÒòΪapacheÓû§Îªwww£¬id:80£¬ËùÒÔҪעÒâ/usr/local/etc/postfix/main.cfÖеÄÓû§id¡£
mkdir ¨Cp /usr/local/virtual
chmod ¨CR www:www /usr/local/virtual
ee /usr/local/etc/postfix/main.cf
ÔÚ×îºóÌí¼Ó£º
#======= BASE ==============
#myhostname =
#mydomain = example.com
home_mailbox = maildir/
#mydestination = $myhostname
#local_recipient_maps =
#======= MYSQL =============
virtual_gid_maps = static:80
virtual_mailbox_base = /usr/local/virtual
virtual_uid_maps = static:80
virtual_minimum_uid = 80
virtual_alias_maps = mysql:/usr/local/etc/postfix/mysql/virtual_alias_maps.cf
virtual_mailbox_domains = mysql:/usr/local/etc/postfix/mysql/virtual_domains_maps.cf
virtual_mailbox_maps = mysql:/usr/local/etc/postfix/mysql/virtual_mailbox_maps.cf
#======= Quota ============
message_size_limit = 5242880
virtual_mailbox_limit_inbox = no
virtual_mailbox_limit_override = yes
virtual_maildir_extended = yes
virtual_create_maildirsize = yes
virtual_mailbox_limit_maps = mysql:/usr/local/etc/postfix/mysql/virtual_mailbox_limit_maps.cf
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
¼¸¸öÅäÖÃÎļþ£º
cd /usr/local/etc/postfix/
mkdir mysql
cd mysql
1¡¢ee virtual_alias_maps.cf
user = postfix
password = postfix
hosts = localhost
dbname = postfix
table = alias
select_field = goto
where_field = address
2¡¢ee virtual_domains_maps.cf
user = postfix
password = postfix
hosts = localhost
dbname = postfix
table = domain
select_field = description
where_field = domain
3¡¢ee virtual_mailbox_maps.cf
user = postfix
password = postfix
hosts = localhost
dbname = postfix
table = mailbox
select_field = maildir
where_field = username
4¡¢ee virtual_mailbox_limit_maps.cf
user = postfix
password = postfix
hosts = localhost
dbname = postfix
table = mailbox
select_field = quota
where_field = username
¢ÜÅäÖÃcourier-authdaemond
cd /usr/local/etc/rc.d
./courier-authdaemond.sh start
chmod o+x /var/run/authdaemond
cd /usr/local/etc/authlib
ee authdaemonrc
ÐÞ¸ÄauthmodulelistºÍauthmodulelistorig
authmodulelist="authmysql"
authmodulelistorig="authmysql"
Ìí¼Ó
version="authaemond.mysql"
courier-imap
ee authmysqlrc
DEFAULT_DOMAIN example.com
MYSQL_CRYPT_PWFIELD password
MYSQL_DATABASE postfix
MYSQL_GID_FIELD '80'
MYSQL_HOME_FIELD '/usr/local/virtual'
MYSQL_LOGIN_FIELD username
MYSQL_MAILDIR_FIELD maildir
MYSQL_NAME_FIELD name
MYSQL_OPT 0
MYSQL_PASSWORD postfix
#MYSQL_PORT 0
#MYSQL_QUOTA_FIELD quota
MYSQL_SERVER localhost
MYSQL_UID_FIELD '80'
MYSQL_USERNAME postfix
MYSQL_USER_TABLE mailbox
ÕâÀïÓû§Ò²ÐÞ¸ÄΪ80£¬×¢ÒâÖм䲻Êǿոñ£¬ÊÇTAB¼ü£¬ÔÚUnixϵͳÖУ¬ºÜ¶à¶¼ÊÇÓÃTAB¼üµÄ¡£Ò²ÇëÌØ±ð×¢ÒâÆäÖеÄÒýºÅ¡£
¢ÝÅäÖÃamavisd
cd /usr/local/etc/postfix
ee master.cf
ÔÚÎļþ×îºóÌí¼Ó
smtp-amavis 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 local_recipient_maps=
-o relay_recipient_maps=
-o smtpd_restriction_classes=
-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 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_check
ee main.cf
ÔÚÎļþ×îºóÌí¼Ó
#============AMVISD=============
content_filter=smtp-amavis:[127.0.0.1]:10024
¢ÞÅäÖÃclamav
ee /usr/local/etc/clamd.conf
È¡ÏûÏÂÁÐÑ¡ÏîǰµÄ#ºÅ×¢ÊÍ
ScanOLE2
ScanMail
ScanHTML
ScanArchive
ScanRAR
¢ßÅäÖÃÆô¶¯Ïî
ee /etc/rc.conf
Ìí¼ÓÏÂÁÐÌõÄ¿
sendmail_enable="NONE"
postfix_enable="YES"
apache22_enable="YES"
mysql_enable="YES"
courier_authdaemond_enable="YES"
courier_imap_imapd_enable="YES"
courier_imap_pop3d_enable="YES"
amavisd_enable="YES"
amavis_milter_enable="YES"
clamav_clamd_enable="YES"
clamav_freshclam_enable="YES"
spamd_enable="YES"
¢àÖØÆðµçÄÔ
reboot
¢áÅäÖÃpostfixadmin
cd /usr/local/www/data/postfixadmin
ee config.inc.php
$CONF['default_language'] = 'cn';
$CONF['admin_email'] = 'postmaster@example.com';
$CONF['domain_path'] = 'YES';
$CONF['domain_in_mailbox'] = 'NO';
ͨ¹ýhttp://localhost/postfixadmin/setup.php²é¿´ÊÇ·ñ°²×°³É¹¦¡£
½øÈëhttp://localhot/postfixadmin/admin½øÈë¹ÜÀíÒ³Ãæ£¬½¨Á¢ÐéÄâÓòºÍÓû§¡£
¹Û²ì/usr/local/virtualÏÂÊÇ·ñ³öÏÖ¶ÔÓ¦µÄÓòÃûĿ¼ºÍÓû§Ä¿Â¼
¢âÅäÖÃsquirrelmail
cd /usr/local/www/data/squirrelmail
./configure
Ñ¡Ôñ10. Languages
ÉèÖÃÈçÏÂ
1. Default Language : zh_CN
2. Default Charset : gb2312
±£´æÍ˳ö
½øÈëhttp://localhost/squirrelmail/²âÊÔÓÊÏä¡£
×¢Ò⣺³ýÁËÔÚauthmysqlrcÖÐDEFAULT_DOMAINÖ¸¶¨µÄÓòÍ⣬ÆäËûÓòÓû§µÇ½¶¼ÐèÒªÊäÈëÍêÕûµÄµç×ÓÓʼþµØÖ·¡£
3¡¢Ð¡½á
ÓëWindowsÏà±È£¬FreeBSDµÄÓʼþϵͳ°²×°ÅäÖýÏΪ·³Ëö£¬µ«ÆäÐÔÄܺÍÁé»îÐÔÔò¸üΪǿ´ó¡£ÓÉÓÚFreeBSDÍêÉÆµÄ°ü¹ÜÀí»úÖÆ£¬ÔÚ°²×°¹ý³ÌÖв»±Ø¿¼ÂǸ÷¸öÈí¼þ°üµÄÒÀÀµÐÔºÍÏÂÔØÎÊÌ⣬ÕâÒ²ÊÇFreeBSDÓÅÓÚlinuxµÄµØ·½¡£
±¾ÎÄÖ÷ÒªÊÇ´Ó²Ù×÷²½ÖèÉϽøÐмòµ¥µÄ½éÉÜ£¬¸úËæ±¾ÎĵIJ½Öè¿ÉÒÔ°²×°ºÃÓʼþϵͳ£¬µ«Ö»ÓÐÉîÈëÁ˽âÆäÔËÐÐÔÀíºÍÅäÖ÷½·¨²ÅÄܸüºÃµÄÔËÓᣱ¾ÎÄËùʹÓõĸ÷¸öportsÖеÄpkg-descrÖаüº¬Á˹ٷ½ÍøÕ¾µÄµØÖ·£¬³ýÁËcyrusµÄÍøÕ¾Í⣬¶¼ÌṩÁ˷ḻµÄÎĵµ£¬ÕâЩÎĵµÊÇÎÒÃÇÅäÖúÍʹÓõÄ×îÖÕÒÀ¾Ý¡£
¹¹¼þÓʼþϵͳµÄ¹ý³ÌÖÐÄÑÃâ³öÏÖÎÊÌ⣬½â¾öÎÊÌâµÄÖ÷Òª°ì·¨ÊDz鿴ÈÕÖ¾Îļþ¡£×îÖØÒªµÄÈÕÖ¾ÎļþÊÇ/var/log/maillog£¬courier/sasl/postfix/amavisd/clamavµÈһϵÁÐÈí¼þ¶¼½«ÈÕÖ¾ÐÅϢдÈë¸ÃÎļþ£¬ÎªÎÒÃÇÅųýÎÊÌâÌṩÁËÖØÒªÒÀ¾Ý¡£
»Ø×ÖÓÐËÄÑùд·¨£¬ÓʼþϵͳҲÓв»Í¬µÄʵÏÖ·½·¨£¬²ÉÓÃpostfix/vm-pop3d/openwebmailͬÑùÖ§³ÖÐéÄâÓòºÍÓû§£¬¶øsasl2Ò²´øÁË×Ô¼ºsaslauthd¡£ÔÚ/usr/ports/mailºÍ/usr/ports/securityÖÐÌṩÁ˷ḻµÄc/s¡¢b/sÈí¼þ£¬¸÷λÅóÓÑ¿ÉÒÔ³¢ÊÔ²»Í¬µÄ×éºÏ£¬ÕÒµ½×îÊʺÏ×Ô¼ºµÄ½â¾ö·½°¸¡£