內部域名服務
內部域名服務主要提供對域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.為了能夠收到
[email protected]、
[email protected]、
[email protected]特殊賬號的信件,並將它們統一到一起,可以進行如下操作:
# (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本身已經完成安裝,但目前它所能處理的郵件型為
[email protected],我們希望它可以處理諸如
[email protected]或
[email protected]等多個域名後綴的郵件,這就需要qmail支持虛擬主機。同時,我們還可以為它增加郵件列表、自動回復等功能,並可以通過Web界面進行管理,也能使用戶可以通過Web進行更改自己的密碼的操作。
1.安裝tcpserver進行連接安全管理。在目錄/usr/local/src/ucspi-tcp-0.88下運行如下命令:
# make
# make setup check
smtp stream tcp nowait qmaild /var/qmail/bin/tcp-env tcp-env /var/qmail/bin/qmail-smtpd
至此qmail本身已經完成安裝,但目前它所能處理的郵件型為
[email protected],我們希望它可以處理諸如
[email protected]或
[email protected]等多個域名後綴的郵件,這就需要qmail支持虛擬主機。同時,我們還可以為它增加郵件列表、自動回復等功能,並可以通過Web界面進行管理,也能使用戶可以通過Web進行更改自己的密碼的操作。
1.安裝tcpserver進行連接安全管理。在目錄/usr/local/src/ucspi-tcp-0.88下運行如下命令:
# make
# make setup check