在rhas3.0上建立一個完整的郵件系統(內含四部分)修正版 V

火星人 @ 2014-03-04 , reply:0


在rhas3.0上建立一個完整的郵件系統(內含四部分)修正版 V

rhas3.0 + qmail + mysql + smtp + vpopmail + igenus + qmailadmin

一、安裝說明。
為了方便安裝我在安裝Redhat3.0時選了apache、php、mysql,注意mysql-devel和mysql-server開發包一定要裝上,其中mysql-server可以在網上找原碼重編譯生成也可以到我的FTP下載:ftp://download:123456@nero.3322.org/DOWNLOAD/POSTFIX/mysql-server-3.23.58-1.i386.rpm,另外大家在安裝LINUX時一定要裝上軟體開發和內核開發兩個軟體組,這樣可以避免不必要的由於編譯環境的問題而導致的安裝問題,這點對於LINUX新手優為重要。

二、安裝ucspi-tcp-0.88
1.這是由於redhat3.0(包括redhat 9.0)的glibc的版本有問題,必須有下列軟體及補丁才能編譯
http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz  
http://qmail.te8.com/rpms/glibc-2.3.1/ucspi-tcp-0.88.a_record.patch
http://qmail.te8.com/rpms/glibc-2.3.1/ucspi-tcp-0.88.errno.patch
http://qmail.te8.com/rpms/glibc-2.3.1/ucspi-tcp-0.88.nobase.patch
2.安裝ucspi-tcp-0.88
#tar zxvf ucspi-tcp-0.88.tar.gz
#cd ucspi-tcp-0.88
#patch -p1 < ../ucspi-tcp-0.88.a_record.patch
#patch -p1 < ../ucspi-tcp-0.88.errno.patch
#patch -p1 < ../ucspi-tcp-0.88.nobase.patch
#make
#make setup check

三、安裝qmail
1.需要的軟體及補丁
http://cr.yp.to/software/qmail-1.03.tar.gz
http://www.ckdhr.com/ckd/qmail-103.patch
http://www.qmail.org/qmailqueue-patch
http://www.shupp.org/patches/qmail-maildir++.patch
http://qmail.te8.com/rpms/glibc-2.3.1/qmail-1.03.errno.patch
http://qmail.te8.com/rpms/glibc-2.3.1/qmail-1.03.qmail_local.patch
http://members.elysium.pl/brush/qmail-smtp-auth/dist/qmail-smtpd-auth-0.31.tar.gz
2.建立目錄
# mkdir /var/qmail  
# mkdir /var/qmail/alias  
3.建組及用戶
# groupadd nofiles  
# groupadd qmail  
# useradd alias -g nofiles -d /var/qmail/alias -s /nonexistent  
# useradd qmaild -g nofiles -d /var/qmail -s /nonexistent  
# useradd qmaill -g nofiles -d /var/qmail -s /nonexistent  
# useradd qmailp -g nofiles -d /var/qmail -s /nonexistent  
# useradd qmailq -g qmail -d /var/qmail -s /nonexistent  
# useradd qmailr -g qmail -d /var/qmail -s /nonexistent  
# useradd qmails -g qmail -d /var/qmail -s /nonexistent  
4.打補丁及編繹安裝qmail
#tar zxvf qmail-1.03.tar.gz
#tar zxvf qmail-smtpd-auth-0.31.tar.gz
#cp qmail-smtpd-auth-0.31/base64.* qmail-1.03
#patch -d qmail-1.03 < qmail-smtpd-auth-0.31/auth.patch
#cd qmail-1.03
#patch -p1 < ../qmail-103.patch
#patch -p1 < ../qmailqueue-patch
#patch -p1 < ../qmail-maildir++.patch
#patch -p1 < ../qmail-1.03.errno.patch
#patch -p1 < ../qmail-1.03.qmail_local.patch
#vi qmail-smtpd.c      將函數straynewline中的451改為553
#make setup check  
#./config-fast domain.com
5.添加別名用戶
# touch /var/qmail/alias/.qmail-root  
# touch /var/qmail/alias/.qmail-postmaster  
# touch /var/qmail/alias/.qmail-mailer-daemon  
6.如果存在postfix和sendmail,將它們停用。
#/etc/rc.d/init.d/sendmail stop
#cp /var/qmail/bin/sendmail /usr/sbin/qmail.sendmail
#rm -f /etc/alternatives/mta
#ln -s /usr/sbin/qmail.sendmail /etc/alternatives/mta
#rm -f /usr/lib/sendmail
#rm -f /usr/sbin/sendmail
#ln -s /var/qmail/bin/sendmail /usr/lib/sendmail
#ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail
#chmod 777 /usr/sbin/sendmail  

四、安裝vpopmail
1.下載vpopmail
http://www.inter7.com/vpopmail/vpopmail-5.2.1.tar.gz
2.建立目錄
#mkdir /home/vpopmail
#mkdir /home/vpopmail/etc
3.添加用戶和組
#groupadd vchkpw
#useradd -g vchkpw vpopmail
4.添加mysql的vpopmail用戶,用於操作vpopmail資料庫
#mysqladmin -u root password ****        設置mysql的root密碼。
#mysql -u root -p
mysql>;create database vpopmail;
mysql>;grant all on vpopmail.* to vpopmail@localhost identified by "密碼";
5.編譯安裝vpopmail
#tar zxvf vpopmail-5.2.1.tar.gz
#cd vpopmail-5.2.1
#vi vmysql.h  
=========================== vmysql.h ==============================
#define MYSQL_UPDATE_SERVER "localhost"  
#define MYSQL_UPDATE_USER "vpopmail"
#define MYSQL_UPDATE_PASSWD "****" (改成你設置的密碼)  

#define MYSQL_READ_SERVER "localhost"  
#define MYSQL_READ_USER "vpopmail"  
#define MYSQL_READ_PASSWD "****" (改成你設置的密碼)  
==========================================================
6.創建tcp.smtp
# vi /home/vpopmail/etc/tcp.smtp  
==================== tcp.smtp ============================
127.0.0.1:allow,RELAYCLIENT=""  
:allow
==========================================================

#cd /home/vpopmail/etc
#tcprules tcp.smtp.cdb tcp.smtp.tmp < tcp.smtp
7.進行編譯:  
# ./configure  
--prefix=/home/vpopmail  
--enable-mysql=y
--enable-incdir=/usr/include/mysql  
--enable-libdir=/usr/lib/mysql  
--enable-default-domain=domain.com  
--enable-passwd=n
--enable-defaultquota=52428800s   (10485760:10MB,20971520:20MB,52428800s:50MB)  
--enable-tcprules-prog=/usr/local/bin/tcprules  
--enable-tcpserver-file=/home/vpopmail/etc/tcp.smtp
--enable-vpopuser=vpopmail  
--enable-vpopgroup=vchkpw   
--enable-ip-alias-domains=n  
# make  
# make install-strip  
8.創建虛擬域  
# cd /home/vpopmail/bin  
# /home/vpopmail/bin/vadddomain   域名 密碼
# /home/vpopmail/bin/vadduser     用戶名 密碼 (用戶名要帶域名,如demo@demo.com)  
刪除創建域的命令是:./vdeldomain  域名

五、設置smtp-auth
1.修改vchkpw的屬性
#chmod 4755 vchkpw
#chown root.root vchkpw
2.下載安裝cmd5checkpw
wget http://members.elysium.pl/brush/cmd5checkpw/dist/cmd5checkpw-0.22.tar.gz
#tar zxvf cmd5checkpw-0.22.tar.gz
#cd cmd5checkpw-0.22
#make
#make install

六、生成qmail的啟動腳本
#cp /var/qmail/boot/home /var/qmail/rc  
# vi /var/qmail/rc     //對rc文件進行修改,以決定投送方式:  
================= rc =========================
#!/bin/sh  

# Using splogger to send the log through syslog.  
# Using dot-forward to support sendmail-style ~/.forward files.  
# Using qmail-local to deliver messages to ~/Mailbox by default.  

exec env - PATH="/var/qmail/bin:$PATH" qmail-start ./Maildir/ splogger qmail  &
================== rc ==========================
#vi /var/qmail/smtp
=================== smtp ========================
#!/bin/sh

QMAILDUID=qmaild
NOFILESGID=nofiles

/usr/local/bin/tcpserver -H -R -l 0 -t 1 -v -p -x /home/vpopmail/etc/tcp.smtp.cdb -u $QMAILDUID -g $NOFILESGID 0 smtp /var/qmail/bin/qmail-smtpd domain.com /home/vpopmail/bin/vchkpw /bin/true /bin/cmd5checkpw /bin/true 2>;&1 | /var/qmail/bin/splogger smtpd 3 &
=================== smtp ============================
#vi /var/qmail/pop3       //編輯pop3服務的啟動腳本
====================== pop3 =========================
#!/bin/sh

/usr/local/bin/tcpserver -H -R 0 pop3 /var/qmail/bin/qmail-popup domain.com /home/vpopmail/bin/vchkpw /var/qmail/bin/qmail-pop3d Maildir &
======================= pop3==============================
#chmod 755 /var/qmail/rc
#chmod 755 /var/qmail/smtp
#chmod 755 /var/qmail/pop3

七、運行qmail並測試
#/var/qmail/rc
#/var/qmail/smtp
# /var/qmail/pop3
#ps aux | grep "qmail"
查看POP3和SMTP是否工作
# telnet 192.168.0.1 110
# telnet 192.168.0.1 25
注意在outlook中設置郵件帳號時,用戶名后要加上域名,如llzqq@domain.com。如果qmail出現問題,可查看mysql中的vpopmail資料庫,/var/log下的mysqld和maillog日誌記錄。

八、安裝並運行igenus
1.下載最新的安裝包:igenus_2_20030516_snap.tgz
#tar zxvf igenus_2_20030516_snap.tgz -C /var/www/html
2.建temp文件夾  
cd /var/www/html/igenus  
mkdir temp  
chmod -R 0755 temp  
chown -R vpopmail:vchkpw temp  
在httpd.conf中設置許可權不允許訪問temp目錄。
<Directory "/var/www/html/webmail/temp">;
deny from all
</Directory>;

3.修改httpd.conf
#vi /etc/httpd/conf/httpd.conf
User Apache
Group Apache
修改為:
User vpopmail
Group vchkpw
為了解決APACHE的默認語言問題添加這個:
AddDefaultCharset GB2312
#/etc/rc.d/init.d/httpd restart
4.解決個別郵箱拒收郵件的問題(如新浪網)
修改郵件簽名信息
#vi /var/www/html/igenus/config/config_inc.php
$CFG_BASEPATH = "/var/www/html/igenus";
$CFG_MYSQL_HOST = 'localhost';
$CFG_MYSQL_USER = 'vpopmail';
$CFG_MYSQL_PASS = '******';    改成你的密碼
$CFG_MYSQL_DB = 'vpopmail';
$CFG_TEMP = $CFG_BASEPATh."/temp";
刪除其中的
「iGENUS is a free webmail interface, NO fee, FREE download」
修改其中的http://www.igenus.org為http://domain.com
#vi /var/qmail/control/helohost
=============== helohost ====================
domain.com
=============== helohost ====================
#chmod 755 /var/qmail/control/helohost
如果你用的郵件伺服器是postfix就這樣處理
postconf -e "smtp_helo_name = 我的郵件伺服器的域名(A記錄)"  
如果你用的郵件伺服器是sendmail就這樣處理
vi /etc/sendmail.cf
Cw我的郵件伺服器的域名(A記錄)  

5.修正郵箱無退信問題
# rm -f /usr/sbin/sendmail    ##如果你已經卸載了sendmail可省略這步
# cd /usr/sbin
# ln -s /var/qmail/bin/sendmail
如果用qmailadmin管理郵箱則這樣處理
進入qmailadmin -->;主菜單「郵件賬號」-->;Set no default catch all account 就OK了。這時網頁上面的CatchAll應該顯示為Bounced。
6.修改config_inc.php文件  
# cd /var/www/html/igenus/config  
# vi config_inc.php  
=============== config_inc.php ====================
$CFG_BASEPATH = "/var/www/html/igenus";  

$CFG_MYSQL_HOST = 'localhost';  
$CFG_MYSQL_USER = 'vpopmail';  
$CFG_MYSQL_PASS = '****';     這裡改成你的密碼  
$CFG_MYSQL_DB = 'vpopmail';  

$CFG_TEMP = $CFG_BASEPATh."/temp";  
==============================================
7.重新編製Mysql資料庫表格  
#mysql -u root -p  
mysql>;use vpopmail;  
mysql>;alter table vpopmail drop primary key;  
mysql>;alter table vpopmail add column pw_id int(5) NOT NULL primary key auto_increment;  
mysql>;create table address (
id int(11) unsigned NOT NULL auto_increment,
pw_id int(5) unsigned NOT NULL default '0',
name varchar(64) NOT NULL default '',
email varchar(128) NOT NULL default '',
UNIQUE KEY id (id),
KEY pw_id (pw_id)
) TYPE=MyISAM;
8.如果需要,用vadddomain和vadduser添加新域名和新用戶
9.Qmail限制附件的大小
在/var/qmail/control/databytes 文件中設置附件的大小,可以實現對qmail附件大小的限制,一般安裝完成後,這個文件是沒有的,你可以自己創建。
smtp方式是以qmail的databytes作限制的
創建databytes並設置郵件最大為4m
# echo 4000000 >;/var/qmail/control/databyte
10.限制單域的郵箱數量
vi /home/vpopmail/domains/domain.com/.qmailadmin-limits
===============.qmailadmin-limits ====================
maxpopaccounts 200
default_quota 52428800s
===============.qmailadmin-limits ====================
chmod 700 /home/vpopmail/domains/domain.com/.qmailadmin-limits
chwod vpopmail:vchkpw /home/vpopmail/domains/domain.com/.qmailadmin-limits
這樣就把郵箱總數限制在200個,每個郵箱為50M了
11.用qmail封mailfrom
vi/var/qmail/control/badmailfrom
這個控制文件實現拒收郵件功能的,每一個地址要單獨一行。而且,不用重起qmail就能生效。例如:
peng@96633.net -----限制一個特定的用戶
@sina.com -----限制整個域中的郵件
12.設置igenus 定義允許上傳下載的郵件的大小
# vi /etc/php.ini
max_execution_time = 60
memory_limit = 16M  
post_max_size = 4M
upload_max_filesize = 4M
file_uploads = On
session.auto_start = 1
register_globals = On
session.bug_compat_42 = 1
session.bug_compat_warn = 0
# vi /etc/httpd/conf.d/php.conf
<Files *.php>;
    SetOutputFilter PHP
    SetInputFilter PHP
    LimitRequestBody 4242880
</Files>;

九、編輯qmail自啟動腳本
#vi /etc/rc.d/init.d/qmail  
===================== qmail ======================  
#! /bin/sh  
# chkconfig: 2545 90 90  
# description: qmail (include smtp and pop3) auto start/stop scripts.  
. /etc/rc.d/init.d/functions  
case "$1" in  
start)  
echo -n "start qmail:"  
/var/qmail/rc &  
echo "."  
echo -n "start smtp service:"  
/var/qmail/smtp  
echo "."  
echo -n "start pop3 service:"  
/var/qmail/pop3  
echo "."  
;;  
stop)  
echo "stop qmail:"  
killproc qmail-send  
killproc qmail-clean  
killproc qmail-rspawn  
killproc qmail-lspawn  
killproc splogger  
killproc tcpserver  
;;  
*)  
exit 1  
;;  
esac  
exit 0  
==============================================  
#chmod 755 /etc/rc.d/init.d/qmail  
#chkconfig --add qmail  

十、安裝autorespond

#tar xzvf autorespond-2.0.2.tar.gz
#cd autorespond-2.0.2
#vi Makefile
將其中的INSTALL_DIR =修改為 /var/qmail/bin
#make  
#make install  
#cp autorespond /usr/local/bin

十一、安裝qmailadmin-1.0.6.tar.gz
tar xzvf qmailadmin-1.0.6.tar.gz
cd qmailadmin-1.0.6
./configure --enable-cgibindir=/var/www/cgi-bin --enable-htmldir=/var/www/html --disable-ezmlmdir

make  
make install-strip

再一次執行:
chmod -R 0755 /var/www/html/igenus
chmod -R 0755 /var/www/html/igenus/temp
chmod -R 0755 /var/www/html/images
chown -R vpopmail:vchkpw /var/www/html/igenus
chown -R vpopmail:vchkpw /var/www/html/igenus/temp
chown -R vpopmail:vchkpw /var/www/html/images

漢化qmailadmin
首先刪除qmailadmin安裝的菜單文件
rm –f /usr/local/share/qmailadmin/html/en
rm –f /usr/local/share/qmailadmin/html/en-us
生成自己的簡體中文菜單文件/usr/local/share/qmailadmin/html/en
vi /usr/local/share/qmailadmin/html/en

000 gb2312
001 主菜單
002 郵件帳號
003 添加郵件機器人:
004 郵件機器人的名字:
005 發送拷貝到郵件地址:
006 標題:
007 添加轉發帳號:
008 轉發到郵件地址:
009 本地郵件用戶名:
010 要轉發的郵件地址的格式是:user@domain.com.
本地郵件用戶的格式是: popaccount
例如,
如果轉發 本地用戶: sales到郵件地址: joe@domain.com
那麼所有發到sales用戶的郵件都將轉發到 joe@domain.com這個郵件地址中
011 Add List Moderator
012 Add Moderator to mailing list
013 郵件地址:
014 添加新的用戶到郵件類別
015 創建新的郵件列表
016 郵件列表的名字
017 郵件列表所有者的郵件地址:
018 Archived
019 Not archived
020 Block archive. Only moderators are allowed to access the archive.
021 Archive access is open to anyone or subscribers only, depending on the Guard setting.
022 No digest. Do not set up the digest list.
023 Prefix. Set up the list so that the outgoing subject will be prefixed with the list name.
024 No prefix.
025 Guard archive. Archive access requests from unrecognised SENDERs will be rejected.
026 Do not guard archive. Archive access request from any SENDERs will be serviced.
027 Subscriptions do not require confirmation.
028 Subscription requires confirmation by reply to a message sent to the subscription address.
029 Indexed for WWW archive access.
030 The list is created without WWW archive index
031 Unsubscribe does not require confirmation.
032 Unsubscribe requires confirmation by a reply to a message sent to the subscription address.
033 List subscribers. Remote administrators can request a subscriber list, and search the subscriber log.
034 The subscriber list cannot be obtained.
035 Message moderation.
036 Message posting is not moderated.
037 Posts from addresses other than moderators are rejected. This is applicable to message moderated lists only.
038 Others not rejected. For moderated lists, all posts are forwarded to the moderators. The switch has effects only on message moderated lists.
039 Respond to adminstrative requests and allow archive retrieval.
040 Allow only digest creation, remote adminstration, and archive retrieval by remote administrators, (if the list is configured with this options).
041 Allow remote administrators to edit files in text directory
042 Text file editing is not allowed
043 ReQuest address is serviced
044 Do not process messages sent to the request address
045 Enables remote administration
046 No remote administration.
047 Subscription moderation.
048 Subscriptions are not moderated.
049 Trailer
050 No trailer
051 User posts only
052 Do not restrict posts based on SENDER address
053 允許資料庫支持
054 主機名
055 埠
056 用戶名
057 密碼
058 資料庫
059 表
060 添加
061 郵件帳號
062 CatchAll:
063 說明
064 修改
用戶
065 刪除
帳號
066 CatchAll
帳號
067 創建新的郵件帳號
068 帳號別名
069 別名
070 郵件帳號
071 修改
072 刪除
073 創建新的別名
074 Forward Accounts
075 轉發
076 創建新的轉發
077 郵件機器人
078 郵件機器人
079 新的郵件機器人
080 郵件列表
081 列表
082 打開.qmail-default時出錯
083 添加
訂閱人
084 刪除
訂閱人
085 列出
訂閱人
086 添加
Moderator
087 刪除
Moderator
088 列出
Moderators
089 新的郵件列表
090 創建郵件帳號
091 密碼 (again):
092 真實姓名
093 列表名
094 提交用戶
095 提交新用戶到下列郵件列表
096 刪除別名
097 確認刪除
098 刪除郵件機器人
099 資料庫設置
100 刪除轉發
101 刪除郵件列表
102 刪除用戶
103 轉發郵件
104 是的, 將它轉發到:
105 修改郵件機器人
106 名字
107 說明
108 創建新的郵件地址
109 修改用戶
110 新的密碼
111 修改用戶
112 管理員帳號
113 域名
114 登錄
115 Redirects for user
116 Current redirects
117 Add/Replace redirect email
118 Delete rediect
119 添加成功
120 無法添加
121 別名
122 轉發
123 Show redirect
124 快捷鏈接
125 創建新的郵件帳號
126 創建新的別名
127 創建新的轉發
128 創建新的郵件機器人
129 創建新的郵件列表
130 CatchAll: Bounced
131 沒有用戶可供瀏覽,請返回到上一頁
132 默認
133 索引:
134 Set no default catch all account
135 上一頁
136 刷新
137 下一頁
138 Type in password
139 郵件用戶的密碼更改成功。
140 密碼修改失敗。
141 用刪除成功。
142 沒有認證
143 目錄許可權錯誤
144 文件許可權錯誤
145 無效用戶內部錯誤
146 Cannot Do redirect
147 Redirect Now
148 無效郵件地址
149 Cannot Delete Last Entry
150 文件錯誤
151 Line Deleted Succesfully
152 轉發添加成功
153 用戶名不存在
154 別名添加成功
155 Invalid Action
156 達到最大的別名數目限制
157 達到最大的轉發數目限制
158 達到最大郵件機器人數目限制
159 Invalid DotQmail Type: adddotqmail()
160 別名無效
161 Did not add alias. POP Account must be an existing POP Account.
162 郵件用戶名無效
163 本地用戶名無效
164 Invalid Alias Type : adddotqmailnow()
165 添加郵件用戶的別名失敗
166 添加郵件用戶的別名成功
167 刪除用戶的別名/轉發出錯。
168 添加用戶的別名/轉發成功。
169 Error deleting redirect/forward for POP Account
170 Redirect/forward for POP Account deleted successfully
171 Error: could not change to directory
172 Only one person can log in as system postmaster at one time. Someone else has logged in. Please only have one login at a time.
173 登錄過期,請重新登錄
174 無效的郵件機器人名
175 用戶名已存在
176 Please fill in Mail Robot name
177 Invalid Owner Email Address
178 請輸入標題
179 Please type in something to send
180 郵件機器人添加成功
181 無法刪除郵件機器人
182 郵件機器人刪除成功
183 郵件機器人修改成功
184 達到最大的郵件列表數
185 無法刪除郵件列表數
186 郵件列表刪除成功
187 郵件列表添加成功
188 無效的郵件列表名
189 郵件列表中郵件地址一覽
190 End of list
191 郵件列表中moderator用戶的郵件地址一覽
192 返回主菜單
193 添加到主菜單
194 Email address added as a moderator to mailing list
195 從郵件列表中刪除訂閱人
196 從郵件列表中刪除moderator
197 removed as a moderator for mailing list
198 登錄無效
199 達到最大的郵件用戶數目
200 密碼不匹配,請重新輸入
201 內存耗盡
202 Where the parameters are:
203 從郵件列表中移除
204 Go user
205 禁止 轉發/假期(Vacation)
206 Set remote catch all account
207 Set Remote CatchAll
208 Remote CatchAll Address:
209 允許轉發
210 允許保存拷貝和轉發
211 轉發郵件到:
212 允許假期(Vacaction)
213 Vacation 標題:
214 Vacation 信息:
215 必須提供轉發地址
216 必須提供標題
217 刷新主菜單
218 退出
219 Moderators列表
220 Moderator
地址
221 訂閱人列表
222 提交
地址
223 用戶不存在
224 (點擊修改)
225 修改郵件列表
226 郵件列表修改成功
227 診斷
228 總數:
229 不限制
230 訂閱人總數:
231 沒有列表可供顯示
232 沒有別名和轉發可供顯示
233 沒有郵件機器人可供顯示

生成自己的簡體中文菜單文件/usr/local/share/qmailadmin/html/en-us
cp /usr/local/share/qmailadmin/html/en /usr/local/share/qmailadmin/html/en-us

生成admin表
mysql>;use vpopmail;
mysql>;CREATE TABLE `admin` (
`id` tinyint(3) unsigned NOT NULL auto_increment,
`domain` varchar(128) NOT NULL default '',
`quota` smallint(5) unsigned NOT NULL default '0',
`total` smallint(5) unsigned NOT NULL default '0',
`createtime` timestamp(14) NOT NULL,
`login` char(1) NOT NULL default '',
`cur_total` smallint(5) NOT NULL default '0',
`cur_quota` smallint(5) NOT NULL default '0',
PRIMARY KEY (`id`),
UNIQUE KEY `domain` (`domain`)
) TYPE=MyISAM PACK_KEYS=1 AUTO_INCREMENT=1 ;

十二、建立QMAIL防火牆FOR ADSL。
echo 1 >;/proc/sys/net/ipv4/ip_forward
/sbin/iptables -F INPUT
/sbin/iptables -F FORWARD

### enable client to vist the web-server on internet
/sbin/iptables -A OUTPUT -o ppp0 -p tcp --sport 1024:65535 -d any/0 --dport 80 -j ACCEPT
/sbin/iptables -A INPUT -i ppp0 -p tcp ! --syn -s any/0 --sport 80 --dport 1024:65535 -j ACCEPT

### SET IP-MASQUERADE
/sbin/iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

### ip packets limit
/sbin/iptables -A FORWARD -f -m limit --limit 10/s --limit-burst 10 -j ACCEPT
/sbin/iptables -A FORWARD -p icmp -m limit --limit 1/s --limit-burst 3 -j ACCEPT
/sbin/iptables -A INPUT -i ppp0 -p icmp -j DROP

### enable some internet-service on intranet for the clients on internet
/sbin/iptables -A INPUT -p tcp --dport 80 -j ACCEPT

### open some port for ftp-users to use passive mode
/sbin/iptables -A INPUT -i ppp0 -p tcp --dport 25 -j ACCEPT
/sbin/iptables -A INPUT -i ppp0 -p tcp --dport 110 -j ACCEPT
### disable any port you don't want to be visited
/sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -A INPUT -i ppp0 -j DROP

十三、補充說明
如果你按照上面的步驟進行了安裝,你還需要對一些PHP頁面進行修改以便適合你的應用,
可使用VI直接打開修改。我這裡就不在一一列舉了,另外在redhat as 3.0中安裝後會出現郵箱佔用為負的問題,這是由於PHP的版本太高所制,可以試著用底一點的版本,或者在redhat 9.0上安裝.
關於上面提到的軟體包也可以從我這裡下載:ftp://test:123456@nero.3322.org/

後來加的補充:

本文說明:
解決在默認安裝的RH AS 3.0上安裝QMAIL+IGENUS后郵箱佔用出現負數的問題。

解決方法:
重新編譯安裝php到一個新版本,本文用的是php-4.3.4

注意事項:
一定要在完整的安裝了qmail后,再進行php的安裝,否則會出現mail函數沒定義的問題而無法正常使用。

下面是PHP的安裝編譯過程:

1.        卸載系統自帶的PHP組件(如有必要請使用」--nodeps」參數):

# rpm –e php-mysql
# rpm –e php-devel
# rpm –e php

2.        安裝PHP-4.2.4

# tar –zxvf php-4.3.4.tar.gz
# cd php-4.3.4
# ./configure
--prefix=/usr/local/php
--with-charset=gb2312
--with-mysql
--with-mail
--with-apxs2=/usr/sbin/apxs
--enable-track-vars
--enable-force-cgi-redirect
--enable-pic
--enable-inline-optimiation
--enable-memory-limit
--enable-bcmath
# make
# make install

# cp php.ini-dist /usr/local/php/lib/php.ini
# vi /usr/local/php/lib/php.ini

register_globals = On
memory_limit = 16M
post_max_size = 6M
upload_max_filesize = 6M

3.        配置一下httpd.conf

DirectoryIndex index.html index.html.var index.php
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
AddDefaultCharset GB2312
ExtendedStatus On
ServerTokens Prod
ServerSignature Email

4.限制PHP請求的數據大小,在httpd.conf中加上:

<Files *.php>;  
SetOutputFilter PHP  
SetInputFilter PHP  
LimitRequestBody 5640000  
</Files>;

5.        后測試一下php是否安裝成功:

# vi /var/www/html/test.php

<?php phpinfo(); ?>;

6.在瀏覽器中測試:

http://192.168.0.1/test.php
《解決方案》

在rhas3.0上建立一個完整的郵件系統(內含四部分)修正版 V

建立qmail伺服器的防病毒系統

所需軟體:
maildrop-1.5.2.20030423.tar.gz
perl-Time-HiRes-1.38-3.i386.rpm
clamav-0.65.tar.gz
qmail-scanner-1.20.tgz

安裝maildrop:
tar zxvf maildrop-1.5.2.20030423.tar.gz
cd maildrop-1.5.2.20030423
./configure
make
make install-strip
make install-man
安裝 perl-Time-HiRes-1.38-3.i386.rpm
rpm -ivh perl-Time-HiRes-1.38-3.i386.rpm

安裝clamav-0.65.tar.gz
groupadd clamav
useradd –g clamav –s /bin/false clamav
tar zxvf clamav-0.65.tar.gz
cd clamav-0.65
./configure
make check
make install

更新病毒庫
運行freshclam
把freshclam加入crontab 定時更新病毒庫,
vi /usr/local/etc/clamav.conf
註釋掉Example
執行clamscan
執行clamd
然後執行clamdscan

安裝qmail-scanner-1.20.tgz
groupadd qscand
useradd -g qscand -s /bin/false qscand
tar zxvf qmail-scanner-1.20.tgz
cd qmail-scanner-1.20
./configure --qmail-queue-binary /var/qmail/bin/qmail-queue --admin postmaster
--domain nero.3322.org --notify sender,admin --local-domains nero.3322.org --lang en_GB --debug yes --unzip yes --scanners clamscan --install
在編譯過程中需要安裝perl-DB_File-x.x.x.rpm,在光碟中可找到。
chown qscand:qscand /var/qmail/bin/qmail-scanner-queue.pl
chmod 4755 /var/qmail/bin/qmail-scanner-queue.pl
然後用一個普通用戶登陸,執行/var/qmail/bin/qmail-scanner-queue.pl -z
如果沒有Can't do setuid出現,恭喜你,如果有
回到安裝文件目錄,有個contrib目錄,
make
make install

附加步驟:
chown qscand:qscand /var/qmail/bin/qmail-scanner-queue
chmod 4755 /var/qmail/bin/qmail-scanner-queue
chmod 0755 /var/qmail/bin/qmail-scanner-queue.pl

然後用一個普通用戶登陸,執行
/var/qmail/bin/qmail-scanner-queue -z
/var/qmail/bin/qmail-scanner-queue -g
修改環境變數
1.在你的qmail啟動腳本加入
QMAILQUEUE=/var/qmail/bin/qmail-scanner-queue.pl
如果作了附加步驟用下面的
QMAILQUEUE=/var/qmail/bin/qmail-scanner-queue
export QMAILQUEUE
2.修改qmail-scanner-queue.pl中的
my $clamscan_options="-r --disable-summary --max-recursion=10 --max-space=1000000";為
my $clamscan_options="-r --mbox --disable-summary --max-recursion=10 --max-space=1000000";

重起qmail 測試
這裡有測試程序
/software/qmail-scanner-1.20/contrib/test_installation.sh

主要的排錯監測日誌
/var/spool/qmailscan/quarantine.log
/var/spool/qmailscan/qmail-queue.log
/var/log/clamd.log
/var/log/maillog
《解決方案》

在rhas3.0上建立一個完整的郵件系統(內含四部分)修正版 V

給qmail + vpopmail + igenus郵件伺服器添加新功能

1.註冊新用戶和找回密碼
建立資料庫
mysql -u root -p
mysql>; use vpopmail;
mysql>; CREATE TABLE password (
       id int(11) unsigned NOT NULL auto_increment,
       pw_name varchar(32) NOT NULL default '',
       pw_domain varchar(64) NOT NULL default '',
       problem varchar(32) NOT NULL default '',
       answer varchar(32) NOT NULL default '',
       PRIMARY KEY (id)
       ) TYPE=MyISAM PACK_KEYS=1;

安裝軟體包 password.rar其中有五個文件
signup.php,submit.php是註冊用的
getpassword.php,getpassword2.php,getpassword3.php是找回密碼用的.
中間有關默認域名的地方.自行修改為自己的默認域名.
如果igenus安裝到/var/www/html/igenus的話,就把這五個文件解壓縮到/var/www/html目錄下,然後在首頁的index.php文件中增加相應的鏈接就可以了.


2.自動轉發
把發往自己郵箱的郵件定向到其他郵箱
mysql>; use vpopmail;  
mysql>; CREATE TABLE forword (  
       id int(11) unsigned NOT NULL auto_increment,  
       pw_id int(5) NOT NULL default '0',  
       email varchar(64) NOT NULL default '',  
       success int(1) NOT NULL default '0',  
       save int(1) NOT NULL default '0',  
       PRIMARY KEY (id)  
       ) TYPE=MyISAM PACK_KEYS=1;


3.個人資料
mysql>; use vpopmail;  
mysql>; CREATE TABLE personal (  
       id int(11) unsigned NOT NULL auto_increment,  
       pw_id int(5) NOT NULL default '0',  
       truename varchar(10) NOT NULL default '',  
       fax varchar(20) NOT NULL default '',  
       telephone varchar(15) NOT NULL default '',  
       sex int(1) NOT NULL default '0',  
       year int(4) NOT NULL default '',  
       month int(2)NOT NULL default '',  
       day int(2)NOT NULL default '',  
       education varchar(4) NOT NULL default '',  
       marital int(1) NOT NULL default '',  
       occupation varchar(15) NOT NULL default '',  
       companyname varchar(30) NOT NULL default '',  
       province varchar(6) NOT NULL default '',  
       PRIMARY KEY (id)  
) TYPE=MyISAM PACK_KEYS=1;  

4.通告欄
只有域管理員可以發給該域的所有用戶通告,而該域的所有用戶只可以查看通告
mysql>; use vpopmail;
mysql>; CREATE TABLE board (
       id int(11) unsigned NOT NULL auto_increment,
       num int(5) NOT NULL default '0',
       title varchar(50) NOT NULL default '',
       content varchar(255) NOT NULL default '',
       host varchar(50) NOT NULL default '',
       allhost int(1) NOT NULL default '0',
       PRIMARY KEY (id)
) TYPE=MyISAM PACK_KEYS=1;

5.收藏夾
mysql>;use vpopmail;
mysql>;CREATE TABLE stow (
id int(11) unsigned NOT NULL auto_increment,
pw_id int(5) NOT NULL default '0',
name varchar(64) NOT NULL default '',
http varchar(128) NOT NULL default '',
memo varchar(255) NOT NULL default '',
PRIMARY KEY (id)
) TYPE=MyISAM PACK_KEYS=1;
6.名片夾
mysql>;use vpopmail;
mysql>;CREATE TABLE card (
id int(11) unsigned NOT NULL auto_increment,
pw_id int(5) NOT NULL default '0',
addrname varchar(10) NOT NULL default '',
companyname varchar(30) NOT NULL default '',
address varchar(255) NOT NULL default '',
job varchar(255) NOT NULL default '',
telephone varchar(20) NOT NULL default '',
mobile varchar(15) NOT NULL default '',
email varchar(50) NOT NULL default '',
bearing varchar(4) NOT NULL default '',
note varchar(255) NOT NULL default '',
PRIMARY KEY (id)
) TYPE=MyISAM PACK_KEYS=1;
《解決方案》

在rhas3.0上建立一個完整的郵件系統(內含四部分)修正版 V

Linux+adsl+qdns

一、安裝撥號軟體包
  為了以後的防火牆應用我安裝了兩塊網卡要確保其工作正常:
  # ifconfig eth0           eth0接內網
    # ifconfig eth1           eth1接ADSL
  刪除默認網關:
  在文件 /etc/sysconfig/network 中刪除 GATEWAY= 這一行,然後執行:
   # service network restart
  安裝pppd軟體包。
  如果存在文件 /usr/sbin/pppd,則說明已經安裝了pppd;
  如果未安裝,從RedHatLinux安裝光碟上可找到這個軟體包。
    # rpm –ivh rp-pppoe-3.5.2.i386.rpm

二、配置PPPOE客戶端軟體
  adsl安裝很簡單我就不多說了
    # adsl-setup
      安裝完軟體包后配置/etc/sysconfig/network-scripts/ifcfg-ppp0
      # vi /etc/sysconfig/network-scripts/ifcfg-ppp0,修改
    PPPOE-TIMEOUT=0
      CONECT-TIMEOUT=0
      # cp /etc/sysconfig/network-scripts/ifcfg-
       ppp0 /etc/ppp/pppoe.conf


三、安裝設置動態域名QDNS
      登錄www.3322.org網站,註冊一個用戶,申請一個動態域名
    domain.3322.org,
    並下載linux客戶端軟體:ez-ipupdate-3.0.10-linux-i386.tgz
      安裝軟體:
    # tar zxvf ez-ipupdate-3.0.10-linux-i386.tgz
      # mv ez-ipupdate-3.0.10-linux-i386 /usr/local/ezip
      # chmod 755 /usr/local/ezip/ez-ipupdate
      # chmod 755 /usr/local/ezip/qdns.conf
      # cp /usr/local/ezip/qdns.conf /usr/local/bin
      # cp /usr/local/ezip/ez-ipupdate /usr/local/bin
      編輯/usr/local/ezip/qdns.conf文件:
    # vi /usr/local/ezip/qdns.conf
      service-type=qdns
      user=your use rname:your password
      host=domain.3322.org
      interface=ppp0
      max-interval=2073600
      cache-file=/tmp/ez-ipupdate.cache
      將當前ip更新到我們申請的域名:
    # /usr/local/ezip/ez-ipupdate –c qdns.conf
     系統會提示數據更新成功。
    實現撥號連接建立后自動更新域名:
    修改/etc/ppp/ip-up腳本
    # vi /etc/ppp/ip-up
      在exit 0前增加一行:
    /usr/local/ezip/ez-ipupdate -c /usr/local/ezip/qdns.conf
     設置每隔五分鐘自動同步一下你的域名:
   # crontab -e然後加入下面一行:
   0-59/50-59/5 * * * * /usr/local/bin/ez-ipupdate -
     c /usr/local/bin/qdns.conf

四、測試
  # adsl-start
  # adsl-status
  在輸出中應該含有關於 ppp0 的信息,包括從dhcp得到的IP 地址。
  # ping domain.3322.org
  如果解析出正確的ip,說明撥號連接已經建立並且並且能正確的解析動
    態域名。
《解決方案》

在rhas3.0上建立一個完整的郵件系統(內含四部分)修正版 V

寫的很棒,頂一個。
《解決方案》

在rhas3.0上建立一個完整的郵件系統(內含四部分)修正版 V

真的很棒!收了!!!!!
(我回去把SENDMAIL換掉!)
《解決方案》

在rhas3.0上建立一個完整的郵件系統(內含四部分)修正版 V

good, 本站收錄
《解決方案》

在rhas3.0上建立一個完整的郵件系統(內含四部分)修正版 V

為了方便安裝我在安裝Redhat3.0時選了apache、php、mysql,注意mysql-devel開發包一定要裝上

二、安裝ucspi-tcp-0.88
1.這是由於redhat9.0的glibc的版本有問題,必須有下列軟體及補丁才能編譯

請問樓主,標題是說在3。0下,到底是在3。0還是在RH9下安裝啊?
我都暈了!
《解決方案》

在rhas3.0上建立一個完整的郵件系統(內含四部分)修正版 V

我也看到了,究竟是rh9,還是as3??
《解決方案》

在rhas3.0上建立一個完整的郵件系統(內含四部分)修正版 V

redhat 9.0和redhat as 3.0的glibc都有問題,都得用補丁。



[火星人 via ] 在rhas3.0上建立一個完整的郵件系統(內含四部分)修正版 V已經有125次圍觀

http://www.coctec.com/docs/service/show-post-22340.html