📄 1386.html
字号:
vqsignup-0.5.tar.gz web方式用户注册<br>
vqregister-2.6.tar.gz web方式用户注册(可选)<br>
rblsmtpd-0.70.tar.gz 反垃圾邮件程序<br>
以上所列软件可以构建一个基本的支持多域及上百万用户的E-mail服务器。其实还有很多的qmail扩展程序,比如qmail与ldap的集成,扫病毒程序等等。利用丰富的第三方扩展软件,可以构建出功能更为强大的邮件服务器!<br>
下面正式开始我的qmail学习笔记! :)<br>
<br>
<br>
<br>
二:构建最基本的基于系统帐户的qmail服务器<br>
由于是学习目的,所以我会首先构建最基本的qmail系统,邮件帐号没有与系统帐号分离,没有多余的功能。成功后再一步一步循序渐进的扩展qmail的功能。<br>
<br>
1)实现DNS服务,使DNS中有邮件服务器的正确的MX记录。<br>
<br>
#cp bind-8.2.4.tar.gz /usr/local/src (假定所有的程序包都拷贝到/usr/local/src下)<br>
#tar xvfz bind-8.2.4.tar.gz<br>
#cd bind-8.2.4<br>
#make<br>
#make install<br>
编译安装完成后<br>
#vi /etc/named.conf<br>
文件内容如下:<br>
options {<br>
directory "/var/named";<br>
};<br>
zone "dream.com"{<br>
type master;<br>
file "dream.com";<br>
};<br>
zone "0.0.127.in-addr.arpa"{<br>
type master;<br>
file "named.local";<br>
};<br>
zone "1.168.192.in-addr.arpa"{<br>
type master;<br>
file "192.168.1";<br>
};<br>
由于只是在内部局域网内测试所以没有加上根域信息"."<br>
创建/var/named目录<br>
#mkdir /var/named<br>
分别创建dream.com、named.local、192.168.1三个文件<br>
#cd /var/named<br>
#vi dream.com 内容如下:<br>
$TTL 86400<br>
@ IN SOA www.dream.com. root.www.dream.com. (<br>
2003062301 ; serial<br>
28800 ; refresh<br>
14400 ; retry<br>
3600000 ; expire<br>
86400 ; default_ttl<br>
)<br>
IN NS www.dream.com.<br>
IN MX 5 mail.dream.com.<br>
IN MX 10 mail2.dream.com.<br>
www IN A 192.168.1.1<br>
mail IN A 192.168.1.2<br>
mail2 IN A 192.168.1.3<br>
ftp IN CNAME www<br>
<br>
#vi 192.168.1 内容如下:<br>
$TTL 86400<br>
@ IN SOA www.dream.com. root.www.dream.com. (<br>
2003062302 ; serial<br>
28800 ; refresh<br>
14400 ; retry<br>
3600000 ; expire<br>
86400 ; default_ttl<br>
)<br>
IN NS www.dream.com.<br>
1 IN PTR www.dream.com.<br>
2 IN PTR mail.dream.com.<br>
3 IN PTR mail2.dream.com.<br>
<br>
#vi named.local 内容如下:<br>
$TTL 86400<br>
@ IN SOA www.dream.com. root.www.dream.com. (<br>
2003062303 ; serial<br>
28800 ; refresh<br>
14400 ; retry<br>
3600000 ; expire<br>
86400 ; default_ttl<br>
)<br>
IN NS www.dream.com.<br>
1 IN PTR localhost.<br>
<br>
#vi /etc/hosts<br>
127.0.0.1 localhost.localdomain localhost<br>
192.168.1.1 www.dream.com www<br>
192.168.1.2 mail.dream.com mail<br>
192.168.1.3 mail2.dream.com mail2<br>
<br>
注:192.168.1.3为局域网另一台运行E-mail服务(Imail)的Windows 2000服务器,用其和linux平台下的E-mail服务器做测试用)<br>
<br>
<br>
#vi /etc/host.conf<br>
order hosts,bind<br>
multi on<br>
<br>
#vi /etc/resolv.conf<br>
search dream.com<br>
nameserver 192.168.1.1<br>
<br>
启动运行DNS服务器:<br>
#ndc start<br>
<br>
测试DNS服务器:<br>
#nslookup<br>
>set type=mx<br>
>dream.com<br>
Server: 192.168.1.1<br>
Address: 192.168.1.1#53<br>
<br>
<br>
dream.com mail exchange=5 mail.dream.com<br>
dream.com mail exchange=10 mail2.dream.com<br>
<br>
DNS 服务已设置完毕,接下来我们要开始我们真正的qmail学习历程啦!<br>
<br>
2)安装qmail<br>
在安装qmail之前要运行ntsys命令关闭sendmail服务,再用rpm -e --nodeps sendmail卸载掉sendmail<br>
<br>
#tar xvfz qmail-1.03.tar.gz<br>
创建qmail安装目录<br>
#mkdir /var/qmail<br>
建立qmail相应的组及用户<br>
#groupadd nofiles<br>
#useradd -g nofiles -d /var/qmail/alias alias<br>
#useradd -g nofiles -d /var/qmail qmaild<br>
#useradd -g nofiles -d /var/qmail qmaill<br>
#useradd -g nofiles -d /var/qmail qmailp<br>
#groupadd qmail<br>
#useradd -g qmail -d /var/qmail qmailq<br>
#useradd -g qmail -d /var/qmail qmailr<br>
#useradd -g qmail -d /var/qmail qmails<br>
编译qmail前先对qmail打补丁<br>
#patch -p0 <qmail-103.patch<br>
#cd qmail-1.03<br>
#make setup check<br>
#./config<br>
如果域名解析没有问题的话应该可以看到安装成功的信息<br>
也可以运行config-fast脚本不进行这一步<br>
#./config mail.dream.com<br>
对某些不能接收邮件的系统帐户添加别名<br>
#cd /var/qmail/alias<br>
#echo admin > .qmail-root<br>
#echo ezboy > .qmail-postmaster<br>
#echo ezboy > .qmail-mailer-daemon<br>
#chmod 644 /var/qmail/alias/.qmail*<br>
<br>
3)创建qmail启动脚本<br>
#cp /var/qmail/boot/home /var/qmail/rc<br>
#vi /var/qmail/rc<br>
将其中的“./Mailbox”改为“./Maildir/“<br>
启动qmail只用输入:<br>
#csh -cf /var/qmail/rc &<br>
"&"表明在后台执行<br>
<br>
4)启动SMTP和POP3服务<br>
首先注释掉/etc/inetd.conf文件中有关SMTP和POP3的行,然后加上:<br>
smtp stream tcp nowait qmaild /var/qmail/bin/tcp-env <br>
tcp-env /var/qmail/bin/qmail-smtpd<br>
注意""不用输入,它代表前后的内容为一行内容(整行输入)<br>
确认一下/etc/services文件中有下面这一行<br>
pop3 110/tcp pop-3<br>
启动pop前要先安装一个口令验证程序 checkpassword<br>
#cd /usr/local/src<br>
#tar xvfz checkpassword-0.90.tar.gz<br>
#make setup check<br>
此程序安装到/bin目录下<br>
然后在/etc/inetd.conf下加入:<br>
pop3 stream tcp nowait root /var/qmail/bin/qmail-popup qmail-popup mail.dream.com /bin/checkpassword /var/qmail/bin/qmail-pop3d Maildir<br>
切记整行输入!!!<br>
<br>
5)创建邮件用户<br>
#useradd test<br>
#passwd test<br>
#su test<br>
$/var/qmail/bin/maildirmake Maildir<br>
$echo ./Maildir/ > .qmail<br>
<br>
6)测试POP3及SMTP服务启动与否<br>
#telnet 127.0.0.1 110<br>
Trying 127.0.0.1 ......<br>
Connected to 127.0.0.1<br>
Escape character is '^]'<br>
+OK 15616.992832685@mail.dream.com<br>
user test<br>
+OK<br>
pass test的密码<br>
+OK<br>
如果看到以上内容说明POP3服务已经启动<br>
#telnet 127.0.0.1 25<br>
Trying 127.0.0.1 ......<br>
Connected to 127.0.0.1<br>
Escape character is '^]'<br>
220 mail.dream.com ESMTP<br>
Helo mail.dream.com<br>
SMTP服务也已正常启动<br>
下面用Outlook Express等邮件客户端来测试。<br>
小结:配置DNS时要注意书写,一般用Tab键来分隔每组字符。编辑 /etc/inetd.conf时也要注意书<br>
写时应是一整行写完。<br>
疑问:测试时邮件帐户形如user@domain.com时会提示密码错误(在本机上无错误),改为user反而<br>
可以正常收发邮件,不知何解,请高手指教!<br>
<br>
<br>
<br>
三:用ucspi中的tcpserver取代传统的inetd而获得更好的性能和安全性.<br>
仍然是在/usr/local/src目录下<br>
#tar xvfz ucspi-tcp-0.88.tar.gz<br>
#cd ucspi-tcp-0.88<br>
#make setup check<br>
安装完毕后检查/etc/inetd.conf将所有与POP3及SMTP相关的语句注释掉,然后重新启动inetd:<br>
#killall -HUP inetd<br>
在系统启动文件/etc/rc.d/rc.local中添加以下语句来启动SMTP和POP3服务:<br>
#!/bin/sh<br>
#start smtp service<br>
echo "Starting the smtp service ……"<br>
QMAILDUID=`/usr/bin/id -u qmaild`<br>
NOFILESGID=`/usr/bin/id -g qmaild`<br>
/usr/local/bin/tcpserver -H -R -c 20 <br>
-u "$QMAILDUID" -g "$NOFILESGID" 0 smtp <br>
/var/qmail/bin/qmail-smtpd 2>&1 > /dev/null &<br>
<br>
#start pop3 service<br>
echo "Starting the pop3 service ……"<br>
/usr/local/tcpserver -l 0 -H -R 0 pop-3 <br>
/var/qmail/bin/qmail-popup mail.dream.com <br>
/bin/checkpassword /var/qmail/bin/qmail-pop3d Maildir &<br>
<br>
以下是TCPSERVER的参数列表:<br>
<br>
TCPSERVER的一般参数:<br>
参数 说明<br>
-q 安静模式,不输出任何错误信息<br>
-Q 只输出错误信息(缺省)<br>
-v 详细模式,输出错误和状态信息<br>
TCPSERVER的连接参数:<br>
参数 说明<br>
-B text 在连接建立后显示text的内容<br>
-c n 最大的同步连接数目,当有n个同步连接时,将延缓对新连接请求的 响应,直到有连接结束,n必须是一个正的整数,缺省值为40<br>
-d 当主机响应慢时延缓向远端主机发送数据<br>
-D 不延缓向远端主机发送数据<br>
-g gid 接受连接时所要响应的系统用户组的ID,gid必须为正的整数<br>
-l 输出本机端口号到stdout<br>
-o 不对在连接的帧改变其IP设定<br>
-0 删除路由帧的IP设定(缺省)<br>
-u uid 接受连接时所要响应的系统用户的ID,uid必须为正的整数<br>
-x db 以数据库db所定义的规则确定是否接受远端客户的连接<br>
-X 当-x定义的数据库不存在时允许所有的连接<br>
TCPSERVER的数据收集参数:<br>
参数 说明<br>
-h 以DNS查询远端主机名<br>
-H 不以DNS查询远端主机名,为避免循环,此参数必须用于端口53<br>
-l hostname 不以DNS查询本机主机名,使用hostname作为本机主机名。为避免循 环,此参数必须用于53端口<br>
-r 从远端主机获取系统变量$TCPREMOTEINFO<br>
-R 不从远端主机获取系统变量$TCPREMOTEINFO,必须在端口53和113中使用 此参数<br>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -