歡迎您光臨本站 註冊首頁

動手干吧--跟我學構建一個Linux網路平台(二)

←手機掃碼閱讀     火星人 @ 2014-03-09 , reply:0
陳智華


內部域名服務
內部域名服務主要提供對域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/local/src/qmailadmin-0.35
make
make install

之後在客戶端使用瀏覽器訪問http://192.168.0.3/cgi-bin/qmailadmin.
使用postmaster@mycompany.vvv的密碼登錄之後,就可以對整個域進行管理.
管理員可以通過這個界面增刪用戶、別名、Forwards,設置自動回復和管理郵件列表等,使用用戶的賬號登錄可以更改自己的密碼等.


[火星人 ] 動手干吧--跟我學構建一個Linux網路平台(二)已經有474次圍觀

http://coctec.com/docs/linux/show-post-57795.html