当前位置:Linux教程 - Linux - LinuxAid 网站配置实例<四>

LinuxAid 网站配置实例<四>

6.域名(DNS)服务器的安装与调试
说明我们将要配置的DNS服务器满足两个域名的要求,我们的IP地址为202.99.11.120由202.99.11.120服务器将域名linuxaid.com.cn和linuxaid.com.cn指向我们的服务器
下载域名服务器软件包
从http://www.isc.org 下载bind-8.2.2.p15-src.tar.gz。
下载的软件包放置于/usr/local/src。
解压缩软件包
# cd /usr/local/src #第1步
# mkdir bind #第2步
# tar zxvf bind-8.2.2p15-src.tar.gz --directory=/usr/local/src/bind #第3步
编译并安装Bind
# cd /usr/local/src/bind/src #进入存放BIND源码的目录
# make stdlinks #第1步
# make clean #第2步
# make depend #第3步
# make all #第4步
# make install #第5步
配置Bind运行参数
1、使用vi创建/etc/named.conf,其内容为(#号后为注释可不输入):

options{
directory "/var/named"; #设置DNS数据的目录,用于存放域名数据
};
zone "." { #提示用数据文件
type hint;
file "root.cache";
};

zone "localhost" { #指定localhost解释文件
type master; #类型为"主要"
file "localhost"; #对应的文件名为 localhost
};

zone "0.0.127.in-addr.arpa" { #IP反向解释
type master;
file "127.0.0"; #对应的文件名为127.0.0
};

zone "linuxaid.com.cn" { #指定linuxaid.com.cn的解释文件
type master;
file "linuxaid.com.cn"; #对应的文件名为linuxaid.com.cn
};

zone "linuxaid.net.cn" {
type master;
file "linuxaid.net.cn";
};
#说明,如果要添加其它的域,可以复制上面的数据修改而成
zone "11.99.202.in-addr.arpa" { #202.99.11.0段IP反向解释
type master;
file "202.99.11";
};

2、按照以下的步骤创建/var/named及其内容

# mkdir /var/named
# cp /usr/local/src/bind/src/conf/workstation/root.cache /var/named

使用vi创建/var/named/localhost其内容为(;号后面为注释内容可不输入,下同):

$TTL 3600 ;设置缺省存活时间为一小时,下同
@ IN SOA localhost. root.localhost. (
2000092837 ;序号
10800 ;刷新时间,单位秒,下同
3600 ;重试时间
604800 ;过期时间
10800 ;生存时间
)
IN NS localhost. ;指定此域的域名服务器为 loadlhost
IN A 127.0.0.1 ;指定定此域的IP地址为127.0.0.1

创建/var/named/127.0.0,内容为:

$TTL 3600
@ IN SOA localhost. root.localhost. (
2000092814 ;Serial number
10800 ;Refresh time
3600 ;Retry time
604800 ;Expire after a week
10800 ;Time to live
)
IN NS localhost. ;指定此域的域名服务器为 localhost
1 IN PTR localhost. ;IP地址127.0.0.1的域名为 localhost

创建/var/named/linuxaid.com.cn,内容为:

$TTL 3600
@ IN SOA ns.linuxaid.com.cn. root.ns.linuxaid.com.cn. (
2000092854 ;Serial Number
10800 ;Refresh time
3600 ;Retry time
604800 ;Expire after a week
10800 ;Time to live
)
IN NS ns.linuxaid.com.
IN MX 9 202.99.11.120
ns IN A 202.99.11.120
www IN CNAME ns

创建/var/named/linuxaid.net.cn,内容为:

$TTL 3600
@ IN SOA ns.linuxaid.com.cn. root.ns.linuxaid.com.cn. (
2000092854 ;Serial Number
10800 ;Refresh time
3600 ;Retry time
604800 ;Expire after a week
10800 ;Time to live
)
IN NS ns.linuxaid.com.cn.
IN MX 9 202.99.11.120
www IN A 202.99.11.120

创建202.99.11,内容为:

$TTL 3600
@ IN SOA ns.linuxaid.com.cn. root.ns.linuxaid.com.cn. (
2000092858 ;Serial Number
10800 ;Refresh Time
3600 ;Retry time
604800 ;Expire after a week
10800 ;Time to live
)
IN NS ns.linuxaid.com.cn.
8 IN PTR ns.linuxaid.com.cn
测试域名服务器
在确认所有的数据的正确输入之后,我们就要开始测试域名服务器了。
1、使用以下的命令启动域名服务器named:

# ndc start

如果出现以下的提示,则证明域名服务器已经在后台运行。

# new pid is 23008

如果出现其它的提示,请您检查您所输入的数据是否正确。
2、修改系统域名参数
修改/etc/resolv.conf。
则添加一行 nameserver 127.0.0.1,指定本地计算机的缺省域名服务器为127.0.0.1
3、使用nslookup测试域名服务器
在命令行打入下面的命令,如果得到的提示信息不同,则请检查您的配置文件是否正确(其中#号后的部分为笔者添加的注释,正常情况下域名服务器不会返回这部分内容)。
# nslookup
Default Server: localhost #缺省域名服务器的名称为 localhost 即本机
Address: 127.0.0.1 #缺省域名服务器的IP地址

#查询www.linuxaid.com.cn对应的IP地址
>www.linuxaid.com.cn #查询www.linuxaid.com.cn的IP地址
Server: localhost
Address: 127.0.0.1

Name: ns.linuxaid.com.cn #域名服务器返回www.linuxaid.com.cn的真实
#名称为ns.linuxaid.com.cn
Address: 202.99.11.120 #www.linuxaid.com.cn对应的IP地址
Aliases: www.linuxaid.com.cn #域名服务器返回www.linuxaid.com.cn是
#ns.linuxaid.com.cn 的别名(CNAME)

>www.linuxaid.net.cn #查询www.linuxaid.net.cn
Server: localhost
Address: 127.0.0.1

Name: www.linuxaid.net.cn #域名服务器返回www.linuxaid.net.cn真实域名
Address: 202.99.11.120 #www.linuxaid.net.cn对应的IP地址
#进行反向测试,查询202.99.11.120对应的域名
>202.99.11.120
Server: localhost
Address: 127.0.0.1

Name: ns.linuxaid.com.cn
Address: 202.99.11.120

>exit
#
如果测试的结果与显示的一致,说明您的域名服务器已经正确的安装。如果出现错误,您可以尝试使用 tail /var/log/messages 查看错误信息并进行相应的修改。
如果问题还不得以解决,请与我们的技术支持论坛联系。

7.邮件传递服务器(MTA)的安装
7.1.下载软件包
从www.postfix.org下载postfix-19991231-pl09并放置于/usr/local/src
7.2.将下载的软件包解压缩
# cd /usr/local/src
# tar zxvf postfix-19991231-pl09.tar.gz
7.3. 编译并安装Postfix
首先,必须保证系统中没有安装sendmail。如果不能确定是否有安装的话,可以使用:
# rpm -qa | grep "sendmail"
如果没有任何的输出证明系统中没有安装sendmail,如果有的话,请使用rpm -e将列出的软件包都删除了。例子:
rpm -e sendmail-8.8.7-17 -nodeps
就可将sendmail软件包删除。
在删除完sendmail之后使用vi修改/etc/passwd将
daemon:*:2:2:daemon:/sbin:
改为:
daemon:*:2:12:daemon:/sbin:
再使用
# mkdir /usr/local/servers(如果此目录已经存在就没有必要了)
# useradd postfix -d /usr/local/servers/postfix
就可以开始安装Postfix了:
# cd /usr/local/src/postfix-19991231-pl09
# make -f Makefile.init makefiles
''CCARGS=-DHAS_MYSQL -I/usr/local/servers/mysql/include/mysql''
''AUXLIBS=/usr/local/servers/mysql/lib/mysql/libmysqlclient.a -lm''
# make
# sh INSTALL.sh
在install_root: [/]处打回车接受默认值
在tempdir: [/usr/local/src/postfix-19991231-pl09]处输入:
/usr/local/servers/postfix/tmp
在config_directory: [/etc/postfix]处接受默认值/etc/postfix(此处不可修改)
在daemon_directory: [/usr/libexec/postfix]处输入
/usr/local/servers/postfix/libexec
在command_directory: [/usr/sbin]处输入
/usr/local/servers/postfix/sbin
在queue_directory: [/var/spool/postfix]处输入
/usr/local/servers/postfix/spool
在sendmail_path: [/usr/sbin/sendmail]处打回车接受默认值
在newaliases_path: [/usr/bin/newaliases]处打回车接受默认值
在mailq_path: [/usr/bin/mailq]处打回车接受默认值
在mail_owner: [postfix]处打回车接受默认值
在setgid: [no]处打回车接受默认值
在manpages: [/usr/local/man]处输入
/usr/local/servers/postfix/man
至此Postfix的安装程序会自动的将编译之后的代码安装至我们指定的目录中。

7.4.设置Postfix基本参数
使用 vi 打开 /etc/postfix/main.cf 并进行以下的修改:
myhostname=www.linuxaid.com.cn
mydomain=linuxaid.com.cn
myorigin=$mydomain
alias_maps=hash:/etc/postfix/aliases

7.5.初始化Postfix环境并启动Postfix
# cd /etc/postfix
# /usr/local/servers/postfix/sbin/postalias aliases
# /usr/local/servers/postfix/sbin/postfix start
命令运行完毕之后,使用以下命令:
# tail /var/log/maillog
得到的结果最后一行应该与以下的内容相类似:
Nov 10 09:24:23 mailserver postfix/master[6255]: daemon started
如果出现其它的错误信息,请您检查安装的步骤是否正确。

8.POP3/IMAP服务器的安装
做为与Postfix搭配的POP3/IMAP服务器,我选择了CYRUS。

8.1.下载软件包
从http://asg.web.cmu.edu/cyrus/下载cyrus-imap-1.6.24和cyrus-sasl-1.5.24并放置于/usr/local/src

8.2.将下载的软件包解压缩
# cd /usr/local/src
# tar zxvf cyrus-sasl-1.5.24.tar.gz
# tar zxvf cyrus-imapd-1.6.24.tar.gz

8.3.编译并安装POP3/IMAP服务器(MDA)
添加一个新的用户cyrus,并设置其组为mail,并使用passwd设置其口令

# /usr/sbin/useradd cyrus -g mail
# cd /usr/local/src/cyrus-sasl-1.5.24
# ./configure --with-pwcheck=pwcheck

修改/usr/local/src/cyrus-sasl-1.5.24/config.h
将PWCHECKDIR定义为

#define PWCHECKDIR "/var/pwcheck"

如果PWCHECKDIR已经是/var/pwcheck则无需修改。完成之后继续编译过程

# make
# make install

修改/etc/ld.so.conf,添加以下一行:

/usr/local/lib

存盘退出之后运行:

# /sbin/ldconfig

如果/etc/ld.so.conf中已经存在则不需要添加
安装完sasl之后,可以开始安装imapd

# cd /usr/local/src/cyrus-imapd-1.6.24
# ./configure --with-krb=no
# make
# make install

8.4.设置初始化环境和参数
# cd /var
# mkdir imap
# chown cyrus.mail imap
# chmod 750
# cd /var/spool
# mkdir imap
# chown cyrus.mail imap
# chmod 750
# mkdir /var/pwcheck
# chown cyrus.mail /var/pwcheck
# chmod 700 /var/pwcheck

使用vi创建/etc/imapd.conf内容为:

configdirectory: /var/imap
partition-default: /var/spool/imap
admins: cyrus
srvtab: /var/imap/srvtab
sasl_pwcheck_method: pwcheck

存盘退出,使用以下的命令创建相应目录:

# cd /usr/local/src/cyrus-sasl-1.5.24/tools
# su cyrus
$ ./mkimap
$ exit

相应的工具会自动的创建cyrus邮件服务器所需的目录
修改/etc/inetd.conf使POP3/IMAP邮件服务器有效,使用vi打开/etc/inetd.conf添加:

imap stream tcp nowait cyrus /usr/cyrus/bin/imapd imapd
pop-3 stream tcp nowait cyrus /usr/cyrus/bin/pop3d pop3d

并使用

# killall -HUP inetd

重新启动inetd。
启动pwcheck服务器,为MDA提供身份验证

# /usr/local/sbin/pwcheck

使用以下的命令分别测试POP3和IMAP服务器
POP3服务器
#telnet localhost 110
Trying 127.0.0.1...
Connected to localhost.
Escape character is ''^]''.
+OK mailserver Cyrus POP3 v1.6.24 server ready
如果显示的信息与上面的不全部相同,请检查安装过程是否有问题。
输入
QUIT(回车)
即可退出。

IMAP服务器
#telnet localhost 143
Trying 127.0.0.1...
Connected to localhost.
Escape character is ''^]''.
* OK mailserver Cyrus IMAP4 v1.6.24 server ready
如果显示的信息与上面的不全部相同,请检查安装过程是否有问题。
输入
. logout(回车)
即可退出。

8.5.联接MTA与MDA
修改/etc/postfix/main.cf,添加以下的内容:

mailbox_transport = cyrus

修改/etc/master.cf,将cyrus部分改为以下的内容(全部在一行内):

cyrus unix -n n - - pipe flags=R user=cyrus:mail argv=/usr/cyrus/bin/deliver -a ${user} -e -q -m ${extension} ${user}

存盘退出之后,使用以下的命令刷新Postfix的数据,整个安装过程完成:

# /usr/local/servers/postfix/sbin/postfix reload

用户管理
我们使用系统帐号来做为身份验证的依据,所以在添加用户时要分两步,一是添加系统帐号,另外就是添加用户的邮箱。以下的例子说明添加用户的步骤:

# useradd newuser
# /usr/local/bin/cyradm -u cyrus localhost
(需要输入cyrus的密码)
先为cyrus创建一个邮箱,这是必须的
# cm user.cyrus(第一次时需要,以后不用)
# cm user.newuser

即可。