歡迎您光臨本站 註冊首頁

在rhas3.0上建立一個完整的郵件系統

←手機掃碼閱讀     火星人 @ 2014-03-12 , reply:0
   rhas3.0 + qmail + mysql + smtp + vpopmail + igenus + qmailadmin

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

二、安裝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目錄。

deny from all


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
# 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

SetOutputFilter PHP
SetInputFilter PHP
LimitRequestBody 4242880


九、編輯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/images
chown -R vpopmail:vchkpw /var/www/html/igenus
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直接打開修改。我這裡就不在一一列舉了。
關於上面提到的軟體包也可以從我這裡下載:ftp://test:123456@nero.3322.org/qmail
測試郵箱:http://nero.3322.org/igenus
管理郵箱:http://domain.com/cgi-bin/qmailadmin

【發表回復】【查看論壇原帖】【添加到收藏夾】【關閉】
llzqq 回復於:2004-02-28 07:42:22
建立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

llzqq 回復於:2004-02-28 07:43:18
給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;

llzqq 回復於:2004-02-28 08:00:05
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上建立一個完整的郵件系統已經有906次圍觀

http://coctec.com/docs/linux/show-post-67701.html