四、主要的软件安装www.c hinaitpower.comlHZeLK 前面说过,我的习惯是,装系统的时候就安装一个内核和编译系统,得到了一个干净的系统后,再安装其他的软件就比较清晰。另一点,除非搞不到源[url=javascript:;]
代码[/url]版本,一般情况下我都会下载官方版本的源代码文件,来重新编译之。同样的,选择软件版本要根据该软件的Release Note来决定,并非越新越好。这就是为什么很多软件都是几个版本齐头并进的发展之原因。这些软件不同版本之间的安装[url=javascript:;]
方法[/url]会有少许不同,安装前一定要仔细阅读目录中的README文件和INSTALL文件,否则这些少许不同会造成不少得麻烦。下面描述的安装过程都核版本号紧密相关。另外,所有的软件都把程序文件的包拷贝到/usr/local/src目录中再解压缩,这是习惯。因为在[url=javascript:;]
Linux[/url]中习惯于把后来的软件装在/usr/local中。
www.c hinaitpower.comlHZeLK (1)安装DNS服务器www.c hinaitpower.comlHZeLK 1、从
www.isc.org下载bind 域名服务器软件。我们这里用的是bind8.3.0,bind8分支和bind9分支是并行发展的。根据自己的实际情况选择合适的bind版本。
www.c hinaitpower.comlHZeLK 2、mkdir /usr/src/bind83
www.c hinaitpower.comlHZeLK 3、下载的文件叫bind-src.tar.gz,复制到/usr/local/src/bind83目录下。
www.c hinaitpower.comlHZeLK 4、cd /usr/local/src/bind83
www.c hinaitpower.comlHZeLK 5、tar zxvf bind-src.tar.gz
www.c hinaitpower.comlHZeLK 6、cd src
www.c hinaitpower.comlHZeLK 7、make stdlinks
www.c hinaitpower.comlHZeLK 8、make clean
www.c hinaitpower.comlHZeLK 9、make depend
www.c hinaitpower.comlHZeLK 10、make all
www.c hinaitpower.comlHZeLK 11、make install
www.c hinaitpower.comlHZeLK 12、编辑配置文件:/etc/named.conf内容如下,需要更改的部分用黑体标出:
www.c hinaitpower.comlHZeLK /*
* This is a worthless, nonrunnable example of a named.conf file that has
* every conceivable syntax element in use. We use it to test the parser.
* It could also be used as a conceptual template for users of new features.
*/
/*
* C-style comments are OK
*/
// So are C++-style comments
# So are shell-style comments
// watch out for \";\" -- it\'s important!
options {
directory \"/var/named\";
// use current directory
named-xfer \"/usr/libexec/named-xfer\";
// _PATH_XFER
dump-file \"named_dump.db\";
// _PATH_DUMPFILE
pid-file \"/var/run/named.pid\";
// _PATH_PIDFILE
statistics-file \"named.stats\";
// _PATH_STATS
memstatistics-file \"named.memstats\";
// _PATH_MEMSTATS
check-names master fail;
check-names slave warn;
check-names response ignore;
host-statistics no;
deallocate-on-exit no;
// Painstakingly deallocate all
// objects when exiting instead of
// letting the OS clean up for us.
// Useful a memory leak is suspected.
// Final statistics are written to the
// memstatistics-file.
datasize default;
stacksize default;
coresize default;
files unlimited;
recursion yes;
fetch-glue yes;
fake-iquery no;
notify yes;
// send NOTIFY messages. You can set
// notify on a zone-by-zone
// basis in the \"zone\" statement
// see (below)
serial-queries 4;
// number of parallel SOA queries
// we can have outstanding for master
// zone change testing purposes
auth-nxdomain yes;
// always set AA on NXDOMAIN.
// don\'t set this to \'no\' unless
// you know what you\'re doing -- older
// servers won\'t like it.
multiple-cnames no;
// if yes, then a name my have more
// than one CNAME RR. This use
// is non-standard and is not
// recommended, but it is available
// because previous releases supported
// it and it was used by large sites
// for load balancing.
allow-query { any; };
allow-transfer { any; };
transfers-in 10;
// DEFAULT_XFERS_RUNNING, cannot be
// set > than MAX_XFERS_RUNNING (20)
transfers-per-ns 2;
// DEFAULT_XFERS_PER_NS
transfers-out 0;
// not implemented
max-transfer-time-in 120;
// MAX_XFER_TIME; the default number
// of minutes an inbound zone transfer
// may run. May be set on a per-zone
// basis.
transfer-format one-answer;
query-source address * port *;
/*
* The \"forward\" option is only meaningful if you\'ve defined
* forwarders. \"first\" gives the normal BIND
* forwarding behavior, i.e. ask the forwarders first, and if that
* doesn\'t work then do the full lookup. You can also say
* \"forward only;\" which is what used to be specified with
* \"slave\" or \"options forward-only\". \"only\" will never attempt
* a full lookup; only the forwarders will be used.
*/
forward first;
forwarders { };
// default is no forwarders
topology { localhost; localnets; };
// prefer local nameservers
listen-on port 53 { any; };
// listen for queries on port 53 on
// any interface on the system
// (i.e. all interfaces). The
// \"port 53\" is optional; if you
// don\'t specify a port, port 53
// is assumed.
/*
* Interval Timers
*/
cleaning-interval 60;
// clean the cache of expired RRs
// every \'cleaning-interval\' minutes
interface-interval 60;
// scan for new or deleted interfaces
// every \'interface-interval\' minutes
statistics-interval 60;
// log statistics every
// \'statistics-interval\' minutes
maintain-ixfr-base no;
// If yes, keep transaction log file for IXFR
max-ixfr-log-size 20;
// Not implemented, maximum size the
// IXFR transaction log file to grow
};
/*
* Control listeners, for \"ndc\". Every nameserver needs at least one.
*/
controls {
inet * port 52 allow { any; };
// a bad idea
unix \"/var/run/ndc\" perm 0600 owner 0 group 0;
// the default
};
zone \"rd.xxx.com\" in {
type master;
// what used to be called \"primary\"
file \"rd.xxx.com.db\";
check-names fail;
allow-update { none; };
allow-transfer { any; };
allow-query { any; };
// notify yes;
// send NOTIFY messages for this
// zone? The global option is used
// if \"notify\" is not specified
// here.
also-notify { };
// don\'t notify any nameservers other
// than those on the NS list for this
// zone
};
zone \"223.99.211.in-addr.arpa\" in {
type master;
// what used to be called \"secondary\"
file \"21.9.22.db\";
};
zone \"0.0.127.in-addr.arpa\" in {
type master;
file \"127.0.0.db\";
};
zone \".\" in {
type hint;
// used to be specified w/ \"cache\"
file \"named.root\";
};
logging {
/*
* All log output goes to one or more \"channels\"; you can make as
* many of them as you want.
*/
channel syslog_errors {
// this channel will send errors or
syslog user;
// or worse to syslog (user facility)
severity error;
};
category parser {
syslog_errors;
// you can log to as many channels
default_syslog;
// as you want
};
category lame-servers { null; };
// don\'t log these at all
channel moderate_debug {
severity debug 3;
// level 3 debugging to file
file \"foo\";
// foo
print-time yes;
// timestamp log entries
print-category yes;
// print category name
print-severity yes;
// print severity level
/*
* Note that debugging must have been turned on either
* on the command line or with a signal to get debugging
* output (non-debugging output will still be written to
* this channel).
*/
};
/*
* If you don\'t want to see \"zone XXXX loaded\" messages but do
* want to see any problems, you could do the following.
*/
channel no_info_messages {
syslog;
severity notice;
};
category load { no_info_messages; };
/*
* You can also define category \"default\"; it gets used when no
* \"category\" statement has been given for a category.
*/
category default {
default_syslog;
moderate_debug;
};
};
13、在/var/named/中生成/etc/named.conf中标记的文件:rd.xxx.com.db,内容如下,需要修改和调整相应部分:
;Authoriative data for rd.xxx.com
;
$TTL 3600
@ IN SOA compaq.rd.xxx.com. tandongyu.rd.xxx.com. (
20020101 ;Serial
3600 ;Refresh 1 hour
900 ;Retry 15 mins
604800 ;Expire 7 days
86400) ;Mini 24 hours
;Name server NS records
@ IN NS compaq.rd.xxx.com.
;Mail Exchange (MX) records
rd.xxx.com. IN MX 0 compaq
;Address (A) records.
localhost IN A 127.0.0.1
compaq IN A 21.9.22.9
tls65 IN A 21.9.22.8
fbsd IN A 21.9.22.7
14、在/var/named/中生成/etc/named.conf中标记的文件:21.9.22.db,内容如下,你需要修改相应部分:
www.c hinaitpower.comlHZeLK ;
;
$TTL 3600
@ IN SOA compaq.rd.xxx.com. tandongyu.rd.xxx.com. (
20020101 ;Serial
3600 ;Refresh
900 ;Retry 15 mins
604800 ;Expire 7 days
86400) ;Mini 24 hours
;NameServer (NS) records
@ IN NS compaq.rd.xxx.com.
;Address Point to Name (PTR) records
9 IN PTR compaq.rd.xxx.com.
8 IN PTR tls65.rd.xxx.com.
7 IN PTR fbsd.rd.xxx.com.
15、在/var/named/中生成/etc/named.conf中标记的文件:127.0.0.db,内容如下,你需要修改相应部分:
www.c hinaitpower.comlHZeLK ; 0.0.127.in-addr.arpa
$TTL 3600
@ IN SOA compaq.rd.xxx.com. tandongyu.rd.xxx.com. (
20020101;serial
3600 ;refresh
1800 ;retry
604800 ;expiration
3600 ) ;minimum
IN NS compaq.rd.xxx.com.
1 IN PTR localhost.
16、在/var/named/中生成/etc/named.conf中标记的文件:named.root,内容大致如下。该文件标记了14个域名服务器。可以从ftp.rs.internic.net获得该文件的最新样本:named.hosts,然后改名成你需要的名字,比如:named.root
www.c hinaitpower.comlHZeLK ; This file holds the information on root name servers needed to
; initialize cache of [url=javascript:;]
Internet[/url] domain name servers
; (e.g. reference this file in the \"cache . \"
; configuration file of BIND domain name servers).
;
; This file is made available by InterNIC registration services
; under anonymous FTP as
; file /domain/named.root
; on server FTP.RS.INTERNIC.NET
; -OR- under Gopher at RS.INTERNIC.NET
; under menu InterNIC Registration Services (NSI)
; submenu InterNIC Registration Archives
; file named.root
;
; last update: Aug 22, 1997
; related version of root zone: 1997082200
;
;
; formerly NS.INTERNIC.NET
;
. 3600000 IN NS A.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4
;
; formerly NS1.ISI.EDU
;
. 3600000 NS B.ROOT-SERVERS.NET.
B.ROOT-SERVERS.NET. 3600000 A 128.9.0.107
;
; formerly C.PSI.NET
;
. 3600000 NS C.ROOT-SERVERS.NET.
C.ROOT-SERVERS.NET. 3600000 A 192.33.4.12
;
; formerly TERP.UMD.EDU
;
. 3600000 NS D.ROOT-SERVERS.NET.
D.ROOT-SERVERS.NET. 3600000 A 128.8.10.90
;
; formerly NS.NASA.GOV
;
. 3600000 NS E.ROOT-SERVERS.NET.
E.ROOT-SERVERS.NET. 3600000 A 192.203.230.10
;
; formerly NS.ISC.ORG
;
. 3600000 NS F.ROOT-SERVERS.NET.
F.ROOT-SERVERS.NET. 3600000 A 192.5.5.241
;
; formerly NS.NIC.DDN.MIL
;
. 3600000 NS G.ROOT-SERVERS.NET.
G.ROOT-SERVERS.NET. 3600000 A 192.112.36.4
;
; formerly AOS.ARL.ARMY.MIL
;
. 3600000 NS H.ROOT-SERVERS.NET.
H.ROOT-SERVERS.NET. 3600000 A 128.63.2.53
;
; formerly NIC.NORDU.NET
;
. 3600000 NS I.ROOT-SERVERS.NET.
I.ROOT-SERVERS.NET. 3600000 A 192.36.148.17
;
; temporarily housed at NSI (InterNIC)
;
. 3600000 NS J.ROOT-SERVERS.NET.
J.ROOT-SERVERS.NET. 3600000 A 198.41.0.10
;
; housed in LINX, operated by RIPE NCC
;
. 3600000 NS K.ROOT-SERVERS.NET.
K.ROOT-SERVERS.NET. 3600000 A 193.0.14.129
;
; temporarily housed at ISI (IANA)
;
. 3600000 NS L.ROOT-SERVERS.NET.
L.ROOT-SERVERS.NET. 3600000 A 198.32.64.12
;
; housed in Japan, operated by WIDE
;
. 3600000 NS M.ROOT-SERVERS.NET.
M.ROOT-SERVERS.NET. 3600000 A 202.12.27.33
; End of File
17、我们还需要配置/etc/resolv.conf、/etc/hosts、/etc/hosts.conf文件以适应新的状况。
www.c hinaitpower.comlHZeLK 18、一切都结束后,用/usr/sbin/ndc start命令启动bind,同样的可用stop、restart、reload等命令参数操作。
www.c hinaitpower.comlHZeLK 19、启动后用nslookup命令(有的系统推荐使用dig命令)检验是否正确。如果出现错误,该命令将不能启动。一般的错误都是[url=javascript:;]
数据库[/url]文件或配置文件笔误所至。比如少个“.”或者文件明不正确等等。
www.c hinaitpower.comlHZeLK (2) 安装sendmail服务器www.c hinaitpower.comlHZeLK 1、从
www.sendmail.org下载最新的版本(这个snedmail倒是有必要升级为最新的版本,因为它的升级主要是安全漏洞问题)。这里说明的是用的sendmail-8.12.2.tar.gz
www.c hinaitpower.comlHZeLK 2、cd /usr/local/src/
www.c hinaitpower.comlHZeLK 3、把文件下载到:/usr/local/src中
www.c hinaitpower.comlHZeLK 4、tar zxvf sendmail-8.12.2.tar.gz
www.c hinaitpower.comlHZeLK 5、cd /usr/local/src/sendmail-8.12.2
www.c hinaitpower.comlHZeLK 6、chmod go-w / /etc /etc/mail /usr /var /var/spool /var/spool/mqueue
www.c hinaitpower.comlHZeLK 7、chown root / /etc /etc/mail /usr /var /var/spool /var/spool/mqueue
www.c hinaitpower.comlHZeLK 8、cd /usr/local/src/sendmail-8.12.2/sendmail
www.c hinaitpower.comlHZeLK 9、sh Build
www.c hinaitpower.comlHZeLK 10、cd /usr/local/src/sendmail-8.12.2/cf/cf
www.c hinaitpower.comlHZeLK 11、建立文件sendmail.mc内容如下,你可根据需要修改相应部分。
www.c hinaitpower.comlHZeLK divert(-1)
dnl This is the macro config file used to generate the /etc/sendmail.cf
dnl file. If you modify thei file you will have to regenerate the
dnl /etc/sendmail.cf by running this macro config through the m4
dnl preprocessor:
dnl m4 /etc/sendmail.mc > /etc/sendmail.cf
dnl You will need to have the Sendmail-cf pacage installed for this to work.
include(`/usr/local/src/sendmail-8.12.2/cf\')
define(`confDEF_USER_ID\',`8:12\')
OSTYPE(`linux\')
undefine(`UUCP_RELAY\')
undefine(`BITNET_RELAY\')
define(`confTO_CONNECT\', `1m\')
define(`confTRY_NULL_MX_LIST\',true)
define(`confDONT_PROBE_INTERFACES\',true)
define(`PROCMAIL_MAILER_PATH\',`/usr/bin/procmail\')
define(`SMART_HOST\',compaq.rd.xxx.com)
12、sh Build install-cf
www.c hinaitpower.comlHZeLK 13、groupadd smmsp
www.c hinaitpower.comlHZeLK 14、useradd smmsp
www.c hinaitpower.comlHZeLK 15、cd cd /usr/local/src/sendmail-8.12.2/sendmail
www.c hinaitpower.comlHZeLK 16、sh Build install
www.c hinaitpower.comlHZeLK 17、cd /usr/local/src/sendmail-8.12.2/makemap
www.c hinaitpower.comlHZeLK 18、sh Build clean
www.c hinaitpower.comlHZeLK 19、sh Build all
www.c hinaitpower.comlHZeLK 20、sh Build install
www.c hinaitpower.comlHZeLK 21、cd /usr/local/src/sendmail-8.12.2/
www.c hinaitpower.comlHZeLK 22、在本域DNS主数据库文件中增加MX纪录:
www.c hinaitpower.comlHZeLK rd.xxx.com. IN MX 0 compaq
注意修改相应部分。那个0是有几个邮件集中器的时候用于标记先后顺序的。当有好几个MX的时候,建议顺序写为10、20、30…
www.c hinaitpower.comlHZeLK 23、在/etc/mail目录下创建access文件,内容类似如下:
www.c hinaitpower.comlHZeLK 127.0.0.1 RELAY
21.9.22 RELAY
211.99.221.238 RELAY
然后:makemap hash access.db
www.c hinaitpower.comlHZeLK[/color]
24、创建文件/etc/mail/local-host-names,其内容为本机的拥有的域名信息。
www.c hinaitpower.comlHZeLK rd.xxx.com
compaq.rd.xxx.com
25、创建文件/etc/mail/aliases,内容类似:
www.c hinaitpower.comlHZeLK MAILER-DAEMON: postmaster
postmaster: root
bin: root
daemon: root
nobody: root
运行newaliases创建数据库。
www.c hinaitpower.comlHZeLK 创建别名文件的意义之一在于当邮件发往域中其他邮件服务器的用户而不是mail HUB用户的时候用。
www.c hinaitpower.comlHZeLK 比如增加一条:
www.c hinaitpower.comlHZeLK atan: atan@fbsd
则导致邮件发往mail HUB的时候自动转发到
atan@fbsd.rd.xxx.comwww.c hinaitpower.comlHZeLK 26、启动sendmail: /usr/sbin/sendmail -bd -q30m
www.c hinaitpower.comlHZeLK 排错:如果有问题导致启动不了,大部分问题和DNS配置有关,可以使用nslookup检查DNS是否正常。挨个检查/etc/mail中的文件内容也是排错的好办法。另外,修改配置,不建议直接编辑sendmail.cf文件,建议使用m4宏编译工具,因为有些带有安全漏洞或过时的宏在编译的时候会有提示,这样以免造成相关安全问题。