分享
 
 
 

动手干吧--跟我学构建一个Linux网络平台(二)

王朝system·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

内部域名服务

内部域名服务主要提供对域mycompany.vvv的解析,以及内部IP地址的反向解析。同时也向内部用户提供通常的DNS服务(对Internet域名的解析)。由于我们这里假设的域名无需局域网外部的用户访问,只提供给内部用户使用,因此不需要在internic注册,但该域名能够为内部网络用户使用的一个前提是,这些用户必须将该服务器(这里指的是192.168.0.3)设置成第一个域名服务器。

按照我们前面介绍的方式安装完的Linux,缺省情况下没有启动域名服务,你可以使用ntsysv命令,将192.168.0.3的域名服务设置成自启动。找到named项,并在其前面标注一个*号。重起服务器或运行/etc/rc.d/init.d/named start后,域名服务启动。

域名服务所涉及到的配置文件主要包括/etc/named.conf和/var/named目录下的文件。在/etc/name.conf中注明了该域名服务器所需解析的域,以及每个域所对应的配置文件。

缺省的情况下,Redhat 6.2将域名服务配置成为一个Caching only域名服务器,它可以为局域网的用户提供Internet域名的解析服务,我们还希望它可成为mycompany.vvv的主域名服务器,同时还应该提供对子网192.168.0.0/255.255.255.0的反向解析。这里反向解析服务可以将IP地址变换成域名,如果没有配置好反向解析服务,可能会造成诸如telnet,FTP连接到服务器时耗时很长的问题。修改后的/etc/named.conf如下:

options {

directory "/var/named";

};

zone "." {

type hint;

file "named.ca";

};

zone "mycompany.vvv"{

type master;

file "named.mycompany";

};

zone "0.0.127.in-addr.arpa"{

type master;

file "named.local";

};

zone "0.168.192.in-addr.arpa"{

type master;

file "named.192.168.0";

};

options {directory "/var/named";}指明了所有域名数据文件的存储目录,每一个zone表示一个域,而其对应的file 字段所注明的文件则表示了该域的数据文件。注意反向域名zone的表示方式,就是子网地址的反序表示,在这里/var/named/named.mycompany和/var/named/named.192.168.0是需要我们新建的主域名文件和子网文件。这两个文件的内容如下:

/var/named/named.mycompany

@ IN SOA ns.mycompany.vvv.

admin.mycompany.vvv. (

2000110601 ; serial

28800 ; refresh

14400 ; retry

3600000 ; expire

86400 ; default_ttl

)

@ IN NS ns.mycompany.vvv.

@ IN MX 10 ns.mycompany.vvv.

ns IN A 192.168.0.3

mycompany.vvv. IN A 192.168.0.4

gw IN A 192.168.0.1

fp IN A 192.168.0.2

www IN A 192.168.0.4

database IN A 192.168.0.5

tom IN A 192.168.0.11

alex IN A 192.168.0.13

mail IN CNAME ns

请注意文件中的完整域名后面的“.”,没有这个点的名字所表示的是省略了完整域名中的“.mycompany.vvv”部分。第一行中的“admin.mycompany.vvv.”是管理员的邮箱,没有“@”符号。第八行说明了该域的主域名服务器,第九行说明了该域的邮件服务器,“10”表示邮件服务器的相对优先级,数字越小表示邮件就越先交给它处理,这里我们因为负载不大的原因将DNS服务和E-mail服务放在同一台服务器上,所以它仍然是“ns.mycompany.vvv.”。之后各行说明了每个名字所对应的IP地址,其中“mycompany.vvv.”由于最后有个“.”,它所表示的意思就与其他几个不同,它表示完整域名为“mycompany.vvv”的主机的IP地址为“192.168.0.4”,在后面我们也看到主机www.mycompany.vvv的IP地址也是“192.168.0.4”,同一台机器可以有不同的名字,这也是虚拟主机上常见的情况。最后一行的CNAME表示ns.mycompany.vvv还有一个名字叫做mail.mycompany.vvv。

/var/named/named.192.168.0

@ IN SOA ns.mycompany.vvv. admin.mycompany.vvv. (

2000110601 ; serial

28800 ; refresh

14400 ; retry

3600000 ; expire

86400 ; default_ttl

)

@ IN NS ns.mycompany.vvv.

1 IN PTR gw.mycompany.vvv.

2 IN PTR fp.mycompany.vvv.

3 IN PTR ns.mycompany.vvv.

4 IN PTR www.mycompany.vvv.

5 IN PTR database.mycompany.vvv.

11 IN PTR tom.mycompany.vvv.

13 IN PTR alex.mycompany.vvv.

这个文件也很好理解,从第9行开始所表示的就是IP地址到完整域名的对应关系。

你可以使用pico这个工具来编写这两个文件,如pico /var/named/named.192.168.0。一旦完成这两个文件,你就可以重新启动域名服务,以使改动生效。以后每次更改域名数据文件,都应该重启域名服务进程。其方法是:/etc/rc.d/init.d/named restart。之后你可以ping 一下这些主机的域名,看看是否正确,如ping www.mycompany.vvv看看IP地址是否为192.168.0.4,如果网关已经设置正确,你还可以ping一下Internet上的域名,看看Caching only域名服务是否工作正常。

内部邮件系统

当需要在企业内部进行邮件交换时,我们会用到Linux下的邮件系统。Redhat 6.2所附的邮件系统为sendmail,但为了能够获得更高的安全性和易用性,我们这里将讨论qmail这套mail服务器软件的安装和设置,同时也介绍如何让它支持虚拟主机和Web管理。qmail曾经支撑国内最大的Webmail系统,所以它的性能对于中小型企业来讲应该是完全足够的了。

所需要的软件:(下载地址)

qmail-1.03.tar.gz

ftp://ftp.ntnu.no/pub/unix/mail/qmail/qmail-1.03.tar.gz

vpopmail-4.8.9.tar.gz

http://www.vpopmail.cx/vpopmail-4.8.9.tar.gz

qmailadmin-0.35.tar.gz

http://www.vpopmail.cx/qmailadmin-0.3.5.tar.gz

ezmlm-0.53.tar.gz

http://www.ezmlm.org/pub/patches/ezmlm-0.5.3.tar.gz

autorespond-1.0.0.tar.gz

http://www.vpopmail.cx/autorespond-1.0.0.tar.gz

ucspi-tcp-0.88.tar.gz

首先我们可以将这些软件copy到一个临时目录中如/usr/local/src。并在该目录中将它们解压缩:

# tar xzf qmail-1.03.tar.gz

# tar xzf vpopmail-4.8.9.tar.gz

# tar xzf qmailadmin-0.35.tar.gz

# tar xzf ezmlm-0.53.tar.gz

# tar xzf autorespond-1.0.0.tar.gz

# tar xzf ucspi-tcp-0.88.tar.gz

1.建立qmail目录:

# mkdir /var/qmail

2.增加qmail运行所需要的组和用户:

# /usr/sbin/groupadd nofiles

# /usr/sbin/useradd -g nofiles -d /var/qmail/alias alias

# /usr/sbin/useradd -g nofiles -d /var/qmail qmaild

# /usr/sbin/useradd -g nofiles -d /var/qmail qmaill

# /usr/sbin/useradd -g nofiles -d /var/qmail qmailp

# /usr/sbin/groupadd qmail

# /usr/sbin/useradd -g qmail -d /var/qmail qmailq

# /usr/sbin/useradd -g qmail -d /var/qmail qmailr

# /usr/sbin/useradd -g qmail -d /var/qmail qmails

3.在目录/usr/local/src/qmail-1.03中编译安装qmail:

# make setup check

4.设置E-mail服务器的服务域信息:

# ./config-fast ns.mycompany.vvv

5.为了能够收到postmaster@ns.mycompany.vvv、mailer-daemon@ns.mycompany.vvv、root@ns.mycompany.vvv特殊账号的信件,并将它们统一到一起,可以进行如下操作:

# (cd ~alias; touch .qmail-postmaster .qmail-mailer-daemon .qmail-root)

# chmod 644 ~alias/.qmail*

6.确定并修改qmail的启动脚本,同时我们使用qmail的maildir机制来存储信件:

# cp /var/qmail/boot/home /var/qmail/rc

# pico /var/qmail/rc

将其中的qmail-start ./Mailbox splogger qmail

改为qmail-start ./Maildir/ splogger qmail

7.删除系统中的sendmail,为了兼容一些要使用sendmail的程序,可以连接qmail的sendmail模拟程序到原来sendmail程序的位置:

# chmod 0 /usr/lib/sendmail

# chmod 0 /usr/sbin/sendmail

# mv /usr/lib/sendmail /usr/lib/sendmail.bak

# mv /usr/sbin/sendmail /usr/sbin/sendmail.bak

# ln -s /var/qmail/bin/sendmail /usr/lib/sendmail

# ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail

8.将qmail的启动命令加入到系统的启动脚本中,让系统可以在每次启动时自动启动qmail服务:

加csh -cf /var/qmail/rc &

到 /etc/rc.d/rc.local

9.修改inet.conf,以便可以用qmail发信。增加下面的内容到inet.conf:

smtp stream tcp nowait qmaild /var/qmail/bin/tcp-env tcp-env /var/qmail/bin/qmail-smtpd

至此qmail本身已经完成安装,但目前它所能处理的邮件型为tom@ns.mycompany.vvv,我们希望它可以处理诸如tom@mycompany.vvv或tom@sell.mycompany.vvv等多个域名后缀的邮件,这就需要qmail支持虚拟主机。同时,我们还可以为它增加邮件列表、自动回复等功能,并可以通过Web界面进行管理,也能使用户可以通过Web进行更改自己的密码的操作。

1.安装tcpserver进行连接安全管理。在目录/usr/local/src/ucspi-tcp-0.88下运行如下命令:

# make

# make setup check

2.要让qmail服务器作为客户端的发送邮件服务器(SMTP),需要指定qmail可以提供邮件转发服务的IP地址段,这里假设我们允许qmail服务器本身及192.168.0.0/255.255.255.0的用户可以使用它进行邮件发送,需要做如下操作:

# echo "127.0.0.:allow,RELAYCLIENT=""" > /etc/tcp.smtp

# echo "192.168.0.:allow,RELAYCLIENT=""" >> /etc/

tcp.smtp

# /usr/local/bin/tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp

3.安装邮件列表管理软件(ezmlm),在/usr/local/src/ezmlm-0.53下面运行:

# make

# make man

# make setup

4.安装E-mail自动回复插件,增加该插件后用户可以设置邮箱的自动回复功能。在/usr/local/src/autorespond-1.0.0中运行如下命令:

# gcc -Wall -o autorespond autorespond.c

# cp autorespond /usr/local/bin/

5.为使qmail支持多个虚拟域的邮件服务,需要安装vpopmail,在/usr/local/src/vpopmail-4.8.9中运行如下命令:

# /usr/sbin/groupadd vchkpw

# /usr/sbin/useradd -g vchkpw vpopmail

# ./configure --enable-roaming-users=y

# make

# su

# make install-strip

其中--enable-roaming-users是vpopmail的一个在互联网上很有用的功能,它可以使qmail服务器只给在该服务上有账号的用户提供SMTP的邮件发送服务,通过拨号上网的用户IP地址每次都有可能不一样,这样就不能通过IP地址来控制可以使用SMTP服务的用户,如果完全开放,

就可能会有非授权用户利用它来发送spam邮件。--enable-roaming-users=y设置之后,拨号用户需要首先通过pop3收取信件,通过pop3的验证后,系统就将用户目前的IP地址列入可以提供发送邮件服务的列表中。在一段时间之内用户可以使用它发送邮件,超过一定的时间,该IP失效,除非重新通过pop3认证,否则qmail就不会为该IP提供SMTP服务。如果设置了--enable-roaming-users=y,你还需要编辑root的crontab,使用命令:

# crontab -e

内容如下:

PATH=/sbin:/bin:/usr/sbin:/usr/bin

MAILTO=admin@mycompany.vvv

10,25,40,55 * * * * /home/vpopmail/bin/clearopensmtp 2>&1 > /dev/null

它的意思是说每小时的第10、第25、第40和第55分钟执行clearopensmtp命令。

Vpopmail的基本用法如下:

增加域mycompany.vvv,系统会询问postmaster@mycompany.vvv这个管理账号的密码。

/home/vpopmail/bin/vadddomain mycompany.vvv

增加用户tom@mycompany.vvv

/home/vpopmail/bin/vadduser tom@mycompany.vvv

删除用户tom@mycompany.vvv

/home/vpopmail/bin/vdeluser tom@mycompany.vvv

删除域mycompany.vvv

/home/vpopmail/bin/vdeldomain mycompany.vvv

更改tom@mycompany.vvv的密码

/home/vpopmail/bin/vpasswd tom@mycompany.vvv

6.在系统的启动脚本/etc/rc.d/rc.local中添加如下的内容,使用tcpserver来管理qmail的SMTP和POP服务:

env - PATH="/var/qmail/bin:/usr/local/bin"

tcpserver -H -R -x /etc/tcp.smtp.cdb -c20 -u503 -g503 0 smtp

/var/qmail/bin/qmail-smtpd 2>&1 > /dev/null &

env - PATH="/var/qmail/bin:/usr/local/bin"

tcpserver 0 pop3 /var/qmail/bin/qmail-popup ns.mycompany.vvv

/home/vpopmail/bin/vchkpw /var/qmail/bin/qmail-pop3d Maildir &

上表中请注意绿色部分,“-u503 -g503”中的数字应该和/etc/passwd中的alias的用户id和组id一致,这里的/etc/passwd文件的相关部分如下:

alias:x:503:503::/var/qmail/alias:/bin/bash

qmaild:x:504:503::/var/qmail:/bin/bash

qmaill:x:505:503::/var/qmail:/bin/bash

qmailp:x:506:503::/var/qmail:/bin/bash

qmailq:x:507:504::/var/qmail:/bin/bash

qmailr:x:508:504::/var/qmail:/bin/bash

qmails:x:509:504::/var/qmail:/bin/bash

请确保“pop3”这个服务名称在/etc/services中有对应的项。“ns.mycompany.vvv”就是服务器的完整域名,请根据你网络的情况修改。

7.最后安装一个Web管理界面,可以让管理员和用户自己管理域或自己的邮箱。在目录/usr/local/src/qmailadmin-0.35下运行如下命令:

# ./configure --enable-cgibindir=/home/httpd/cgi-bin --enable-vpopuser=vpopmail --with-htmllibdir=/usr/loc

[1] [2] 下一页

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有