咨询电话:010-82823766

FreeBSD6.1功能完善的mail system
  • 2008-2-28 10:55:16
  • 发表时间:
  • 浏览次数:
  • 本站原创
  • 文章来源:
  • 佚名
  • 作者:

Email System Install Manual 
ver1.1 

說明 : 
 
測試域名:test.com ; hostname=mail.test.com 
系統環境 : 

Postfix + PostfixAdmin + MySQL + Apache22 + PHP4 + PHP4-Session + Cyrus-sasl + Courier-imap + Maildrop + Squirrelmail +ClamAV+Amavisd-new+SpamAssassin 

1 OS:FreeBSD 6.1 Release 
2 mysql-server-5.x:/usr/ports/database/mysql50-server 
3 apache-2.2.x:/usr/ports/www/apache22 
4 php5-x:/usr/ports/lang/php5 
5 php5-session-5.x:/usr/ports/www/php5-session 
6 cyrus-sasl-2.x:/usr/ports/security/cyrus-sasl2 
7 postfix-2.3.x:/usr/ports/mail/postfix 
8 PostfixAdmin :/usr/ports/mail/postfixadmin 
9 courier-imap-4.x:/usr/ports/mail/courier-imap 
10 maildrop-1.x:/usr/ports/mail/maildrop 
11 squirrelmail-1.4.x:/usr/ports/mail/squirrelmail 
12 ClamAV(ClamAntiVirus):/usr/ports/security/clamav 
13 Amavisd-new:/usr/ports/security/amavisd-new 
14 SpamAssassin:/usr/ports/mail/p5-Mail-SpamAssassin 

安裝前先更新port tree 
系統采用最小化安裝 
#cd /usr/ports/net/csup //切換到安裝路徑 
#make install clean //安裝並清除過程中不必要的檔案 
#cd /usr/share/examples/cvsup //路徑 
#cp ports-supfile /root/ //放到/usr下(看你高興要放哪) 
#cd /root 
#vi ports-supfile //修改原更新站台位置內容如下 
default host CHANGE_THIS.FreeBSD.org //官方站台(預設值) 
default host cvsup.cn.freebsd.org //改為國內站台,如此下載速度較快 
#cd /root //切換路徑 
#rehash //才不會出現指令無效訊息(csup: Command not found.) 
#csup -L 2 ports-supfile //開始更新 
#cd /usr/ports;make fetchindex //或取ports INDEX文件,可以不做這步 

安裝 MySQL50 ( Server/Client ) 
官方網站:http://www.mysql.com 
#cd /usr/ports/databases/mysql50-server/ 
#make install clean 

#vi /etc/rc.conf # 設定 mysql 開機自動啟動 

mysql_enable="YES" 

#/usr/local/etc/rc.d/mysql-server start # 手動啟動 mysql 。 

#netstats -na |grep LISTEN # 確認 mysql server 有啟動 

tcp4 0 0 *.3306 *.* LISTEN 

Setp 2. 

安裝 Apache2.2.x 
官方網站 http://www.apache.org 
#cd /usr/ports/www/apache22 
#make install clean 

#vi /etc/rc.conf # 設定 apache22 開機自動 up 

apache22_enable="YES" 
#vi /boot/loader.conf #添加 apache22的accf 選項 
accf_http_local=”yes” 

#vi /usr/local/etc/apache22/httpd.conf 

ServerAdmin [email]test@test.com[/email] 
ServerName 127.0.0.1 
AddDefaultCharset big5 

#/usr/local/sbin/apachectl start 
#ps -ax |grep http # 確認 apache 有啟動 

70558 ?? Ss 0:00.06 /usr/local/sbin/httpd -k start 
70559 ?? S 0:00.01 /usr/local/sbin/httpd -k start 
70560 ?? S 0:00.01 /usr/local/sbin/httpd -k start 
70561 ?? S 0:00.01 /usr/local/sbin/httpd -k start 

Setp 3. 

安裝 PHP5 + php5-session + cyrus-sasl2 
官方網站 http://www.php.net 
#cd /usr/ports/lang/php5 
#make install clean 
Options for php5.x # 選 apache,debug不選避免zend出錯 
[X] APACHE Build Apache Module 

#vi /usr/local/etc/apache22/httpd.conf # 修改 apache22 設定讓 php 運行在apache22 

AddType application/x-httpd-php .php 
AddType application/x-httpd-php-source .phps 
DirectoryIndex index.php index.html index.html.var 

#cd /usr/local/etc/ 
#cp php.ini-dist php.ini 
#vi php.ini 

register_globals =On # 修改 register_globals =Off 變成 On ,squirrelmail 會用得到 

#cd /usr/ports/www/php5-session/ # 安裝 php5-session 是 postfixadmin 需要用到的,所以是必須要加裝的 
官方網站 http://www.php.net 
#make install clean 

#apachectl restart # 重新起動 apache 
#vi /usr/local/www/apache22/data/index.php 
<? 
phpinfo(); 
?> 

測試 php5 有無安裝成功: http://192.168.2.130/index.php 

# cd /usr/ports/security/cyrus-sasl2 # 安裝 cyrus-sasl 
官方網站 http://cyrusimap.web.cmu.edu 
# make install WITH_AUTHDAEMON=yes clean 
#vi /usr/local/lib/sasl2/smtpd.conf # 配置 sasl SMTP 認證 
方案一 
pwcheck_method: authdaemond 
log_level: 3 
mech_list: PLAIN LOGIN 
authdaemond_path:/var/run/authdaemond/socket 

方案二, 
pwcheck_method: auxprop 
auxprop_plugin: sasldb 
mech_list: plain login cram-md5 digest-md5 

# saslpasswd2 –c smtpauth@ # 創建用戶smtpauth@,如果不加”@”,將創建形如username@hostname. 
Password: # password : 123456 
Again (for verification): 
# sasldblistusers2 # 查看sasldb2.db 
smtpauth@: userPassword 
Setp 4. 

安裝 Postfix 
官方網站 http://www.postfix.org 
#cd /usr/ports/mail/postfix 
#make install WITH_AUTHDAEMON=yes clean 
Postfix configuration options # 只選 SASL2 跟 MySQL 
[X] SASL2 Cyrus SASLv2 (Simple Authentication and Security Layer) 
[X] MySQL MySQL map lookups (choose version with WITH_MYSQL_VER) 

Would you like to activate Postfix in /etc/mail/mailer.conf [n]? y # 選 yes 

#vi /etc/rc.conf # 開機自動啟動 postfix 
加入: 
postfix_enable=”YES” 
#echo ‘postfix: root’ >> /etc/aliases 
#/usr/local/bin/newaliases 
#chown postfix:postfix /etc/opiekeys 

#vi /usr/local/etc/postfix/main.cf 

myhostname = mail.test.com 
mydomain = test.com 
myorigin = $mydomain 
mydestination = $myhostname localhost localhost.$mydomain 
mynetworks = 192.168.2.0/24, 127.0.0.0/8 
inet_interfaces = all 
relay_domains = $mydestination 

virtual_mailbox_base = /var/mailbox/ 
virtual_mailbox_maps = mysql:/usr/local/etc/postfix/mysql_virtual_mailbox_maps.cf 
virtual_mailbox_domains = mysql:/usr/local/etc/postfix/mysql_virtual_domains_maps.cf 
virtual_alias_domains = 
virtual_alias_maps = mysql:/usr/local/etc/postfix/mysql_virtual_alias_maps.cf 

virtual_uid_maps = static:5001 
virtual_gid_maps = static:5001 

virtual_transport = virtual 
transport_maps = mysql:/usr/local/etc/postfix/mysql_virtual_transport_maps.cf 

message_size_limit = 15728640 
virtual_mailbox_limit = 2097152000 
virtual_create_maildirsize = yes 
virtual_mailbox_extended = yes 

virtual_mailbox_limit_maps = mysql:/usr/local/etc/postfix/mysql_virtual_mailbox_limit_maps.cf 
virtual_mailbox_limit_override = yes 
virtual_maildir_limit_message = Sorry,the user's maildir has overdrawn his diskspace quota,please try again later. 
virtual_overquota_bounce = yes 

broken_sasl_auth_clients = yes 
smtpd_recipient_restrictions = permit_mynetworks 
permit_sasl_authenticated 
permit_auth_destination 
reject_invalid_hostname 
reject_unknown_sender_domain 
reject_non_fqdn_sender 
reject_non_fqdn_recipient 
reject_unknown_recipient_domain 
reject_unauth_pipelining 
reject_unauth_destination 
reject 
smtpd_sasl_auth_enable = yes 
smtpd_sasl_local_domain = $mydomain 
smtpd_sasl_security_options = noanonymous 
smtpd_sasl_application_name = smtpd 
smtpd_client_restrictions = permit_sasl_authenticated 
reject_non_fqdn_sender 
reject_unknown_sender_domain 
reject_sender_login_mismatch 
smtpd_banner = $myhostname ESMTP "SZ Mail Server" 

content_filter = smtp-amavis:[127.0.0.1]:10024 


說明:同域多服務器情況 
test.com 域下有A(廣州office) 、B(深圳office)兩台mail server ,A保存所有廣州office的郵箱;B 保存所有深圳office的郵箱。 
廣州office:所有發往 “廣州office”內部的郵件將由A mail server進行本地投遞,發往 “深圳office” 的郵件將通過transport_maps (mail address list) 指向 B mail server 進行投遞。 
深圳office:所有發往 “深圳office”內部的郵件將由B mail server進行本地投遞,發往 “廣州office”的郵件將通過transport_maps (mail address list) 指向 A mail server 進行投遞。 
其中:A mail server 的transport_maps 記錄 “深圳office”的所有郵件地址;B mail server的transport_maps 記錄 “廣州office” 的所有郵件地址。 

#mkdir /var/mailbox # 建立郵件存放目錄 

#pw groupadd vmail -g 5001 # 建立 vmail 這個使用者帳號及群組 
#pw useradd vmail -u 5001 -g 5001 -s/sbin/nologin -d/dev/null # 無home目錄及不可登錄系統。 

#chown -R vmail:vmail /var/mailbox 
#chmod -R ug+rwx,o-rwx /var/mailbox #(chmod –R 770 /var/mailbox) 

#vi /usr/local/etc/postfix/mysql_virtual_alias_maps.cf # 建立MySQL 跟 postfix 之間的資料對應關聯文件,總共五個。 
user = postfix 
password = postfix 
hosts = localhost 
dbname = postfix 
table = alias 
select_field = goto 
where_field = address 

#vi /usr/local/etc/postfix/mysql_virtual_domains_maps.cf 
user = postfix 
password = postfix 
hosts = localhost 
dbname = postfix 
table = domain 
select_field = description 
where_field = domain 

#vi /usr/local/etc/postfix/mysql_virtual_transport_maps.cf 
user = postfix 
password = postfix 
hosts = localhost 
dbname = postfix 
table = alias 
select_field = transport_maps 
where_field = mlist 
#vi /usr/local/etc/postfix/mysql_virtual_mailbox_maps.cf 
user = postfix 
password = postfix 
hosts = localhost 
dbname = postfix 
table = mailbox 
select_field = maildir 
where_field = username 

#vi /usr/local/etc/postfix/mysql_virtual_mailbox_limit_maps.cf 
user = postfix 
password = postfix 
hosts = localhost 
dbname = postfix 
table = mailbox 
select_field = quota 
where_field = username 

#/usr/local/sbin/postfix start # 啟動 postfix

top
推荐导读
推荐导读
bottom
top
热门文章
热门文章
bottom