RHCE253
RHCE253實驗(實驗(服務管理)服務管理)試驗2域名系統(tǒng)估計時間: 2個小時目標: 安裝和配置一個DNS 服務器試驗的起點: 標準的Red Hat Linux安裝介紹本次實驗指導您通過使用Berk
RHCE253實驗(實驗(服務管理)服務管理)
試驗2
域名系統(tǒng)
估計時間: 2個小時
目標: 安裝和配置一個DNS 服務器
試驗的起點: 標準的Red Hat Linux安裝
介紹
本次實驗指導您通過使用Berkeley Internet Name守護進程來配置域名服務。使用模板文件作為指導,您將 實現(xiàn)一個僅有緩存的域名服務器
配置named 作為example.com 的從域名服務器
配置named 作為主域名服務器用于轉(zhuǎn)發(fā)和IP 反查詢
在整個試驗中,您使用的機器名稱和域名將基于您使用的機器的IP 地址。如果下面的試驗出現(xiàn)了X 字樣的名稱,您應該把X 字樣的名稱替換成您的工作站的號碼(您的IP 地址的最后一個部分)。例如,如果您的工作站的IP 的地址是192.168.0.3,您應該將stationX.domainX.example.com 轉(zhuǎn)換成station3.domain3.example.com。
將數(shù)據(jù)包過濾設(shè)定為無效狀態(tài)。在本次試驗開始之前,請您確保您的主機上的所有包過濾已被關(guān)閉(顯然,在實際使用中您可以利用Linux 內(nèi)核的防火墻機制,然而我們在這里關(guān)掉它是為了減少潛在的問題)。
本次試驗中以root 身份來使用下面命令達成上面的要求:
service iptables stop
chkconfig iptables off
初始化安裝
A. 獲得必要的文件
需要bind,bind-utils 和caching-nameserver 軟件包。使用`rpm –q`來決定這些軟件包是否被安裝。如果沒有被安裝,通過輸入如下命令來安裝(以root 身份):
mkdir /mnt/server1; mount server1:/var/ftp/pub /mnt/server1
rpm –Uvh /mnt/server1/RedHat/RPMS/bind-9*
rpm –Uvh /mnt/server1/RedHat/RPMS/bind-utils*
rpm –Uvh /mnt/server1/RedHat/RPMS/caching-nameserver*
RPM 軟件包bind 包括DNS 守護進程和支持腳本,但是沒有配置和區(qū)域文件。caching-nameserver提供了一個通用的配置和區(qū)域文件。
B. 配置本地的解析器
配置您的主機使得它能夠被用來作為域名服務,而不是192.168.0.254。
注意:直到您的域名服務器被正確安裝和配置,您的機器的DNS 服務不會奏效。您也應該注意到當您的系統(tǒng)重新啟動的時候或者重新設(shè)定您的網(wǎng)絡(luò)的時候您的/etc/resolve.conf將會被改寫(除非您對您的網(wǎng)絡(luò)界面設(shè)定了在本講座中提及的P EE RDNS)
按照如下編輯您的解析器配置文件
,/etc/resolv.conf
search domainX.example.comnameserver 192.168.0.X
(記住將X 替換成您的工作站的號碼)
第一行定義了如果出現(xiàn)簡單的不符合完整域名的主機名稱時默認添加的缺省域。第二行指定了將主機192.168.0.X (您的機器) 來作為DNS 查詢的解析器。
為了簡化情況,將除了localhost 主機名稱的定義從您的主機名稱配置文件中刪除。
/etc/hosts
127.0.0.1 localhost localhost.localdomain
該步驟并不是必需的,但是可以簡化DNS 的調(diào)式。有時候安裝程序會將符合完整域名的主機名放在localhost 的這一行,這樣一來會使得您無法準確的確定您的域名服務器配置是否正確。
步驟1:配置一個僅有緩存的域名服務器
第一個配置您將建立一個僅有緩存的域名服務器。這種類型的域名服務器對于任何區(qū)域都不授權(quán)。僅有緩存的域名服務器被設(shè)定為主域名服務器。當主機名稱或者IP 地址需要被解析的時候,僅有緩存的域名服務器將查詢請求轉(zhuǎn)發(fā)到另外一臺域名服務器或者到根域名服務器來決定授權(quán)的用來解析的域名服務器。一旦解析完成,僅有緩存的域名服務器在緩存中存儲解析的信息,該解析信息有一段的生存周期。以后的查詢將會變得很快。
您已經(jīng)安裝完對于此項配置所有必須的文件。按照如下步驟來配置域名服務器:
1. 在由caching-nameserver 提供的/etc/named.conf中的“option ”區(qū)域添加下面的內(nèi)容:
for w arders {192.168.0.254; };
for w ard only;
這將導致您工作站上的僅有緩存的域名服務器轉(zhuǎn)發(fā)其不能解析的DNS 查詢到在192.168.0.254的域名服務器,并且如果超時,不與根域名服務器直接聯(lián)系。
2. 啟動named: service named start
3. 測試您的配置使用host 或者dig 來查詢一些example.com 名稱和一些真實的Internet 域名(如果您有Internet 訪問接口的話)
步驟2:配置一個從域名服務器
一個從域名服務器將為一個區(qū)域提供授權(quán)的回答,但不是區(qū)域的授權(quán)開始。您現(xiàn)在將重新配置您的域名服務器作為example.com 區(qū)域和0.168.192.in-addr.arpa 區(qū)域的從域名服務器。
1. 在您的/etc/named.conf文件中添加如下行
z one “example.com ” {
,type slave;
masters { 192.168.0.254; };
file “slave-example.com. z one ”;
};
z one “0.168.192.in-addr.arpa ” {
type slave;
masters { 192.168.0.254; };
file “slave-192.168.0. z one ”;
};
2. 重新啟動named: servcie named restart
3. 檢查slave-example.com. z one 和slave-192.168.0. z one 文件。這些文件應該包含了從位于192.168.0.254的主域名服務器傳過來的區(qū)域數(shù)據(jù)庫的副本。
確保所有的正確工作。在您開始下一個部分之前,去除您剛才在第一步中在/etc/named.conf中加入的兩個從區(qū)域。
步驟3:配置一個主域名服務器
現(xiàn)在您將配制您的域名服務器來負責對于區(qū)域“domainX.example.com ”的解析工作。您將同樣負責向?qū)姆床閰^(qū)域。將采用如下的步驟:
A. 編輯配置文件(named.conf)
B. 準備區(qū)域“domainX.example.com ”和區(qū)域“X.0.168.192.in-addr.arpa ”的數(shù)據(jù)庫文件。
C . 重新啟動域名服務器
D. 測試您的配置
為了您能夠準備您的配置文件和區(qū)域文件,我們提供了模板文件。您可以通過匿名ftp 方式從以下地址獲得: ftp://192.168.0.254/pub/namedfiles/
在如下的步驟中,記得將范例文件中中每一出出現(xiàn)的X 替換成您的工作站的號碼。
E . 主配置文件
下面是我們應該考慮的三個區(qū)域
1. “. ”(根級別)區(qū)域
“. ”區(qū)域是DNS 層次中的最高層。根服務器提供了哪些服務器對于給定的域享有授權(quán)。“. ”節(jié)應該以如下的方式出現(xiàn):
z one “. ” {
type hint;
file “named.ca ”;
};
2. “domainX.example.com ”(正向查詢)區(qū)域
,添加如下的行,使得您的域名服務器成為區(qū)域的主服務器。
z one “domainX.exmaple.com ” {
type master;
file “domainX.example.com. z one ”;
};
3. “X.0.168.192.-in-addr.arpa ”(反向查詢)區(qū)域
現(xiàn)在添加如下的行,使得您的域名服務器成為反查區(qū)域的主服務器。
z one “X.0.168.192.in-addr.arpa ” {
type master;
file “192.168.0.X. z one ”;
};
下面是位于192.168.0.2的station2的樣例配置文件
/etc/named.conf
options {directory “/var/named”;for w arders {192.168.0.254; };for w ard only;}; z one “. ” { type hint; file “named.ca ”; }; z one " localhost " IN { type master; file " localhost. z one " ; }; z one " 0.0.127.in-addr.arpa " IN { type master; file " named.local " ; }; z one “domain2.exmaple.com ” { type master; file
“domain2.example.com. z one ”; }; z one “2.0.168.192.in-addr.arpa ” { type master; file “192.168.0.2. z one ”; };
F . 數(shù)據(jù)庫文件
您的主要配置文件指定了/var/named為數(shù)據(jù)庫所在的目錄。您現(xiàn)在必須在這個目錄下面為您區(qū)域和反查區(qū)域建立數(shù)據(jù)庫文件。這些數(shù)據(jù)庫文件包括您的S O A,NS,A,C NAM E ,MX,PT R 和其他的可能的記錄。所有的數(shù)據(jù)文件以如下的行開頭:
$TTL 86400
該數(shù)值是缺省的以秒計的生存期間,該數(shù)值對所有在該域中的記錄有效
1. 區(qū)域“domainX.example.com ”
在主配置文件中,區(qū)域“domainX.example.com ”數(shù)據(jù)庫文件被存放在/var/named/domainX.example.com。這個文件含有類似的如下的記錄
開始授權(quán)記錄
,@ IN SO A stationX.domainX.example.com. root.stationX.domainX.example.com. (
2001101100; Serial
28800 ;Refresh
14400 ;Retry
3600000 ;E xpire
0) ;Negative
“開始授權(quán)”(SO A)記錄是數(shù)據(jù)庫文件的第一個資源記錄,但是它可能帶了一個前導符$TTL(缺省存活時間)。SO A 記錄使得數(shù)據(jù)庫文件稱為該區(qū)域的授權(quán)的信息源。第一個標記是后繼記錄適合的域,通常以“@”簡化形式出現(xiàn),如果擴展開來那就是在named.conf 文件中“zone ”節(jié)中所指明的域名(或者是在文件通過$ORI G IN 定義的當前區(qū)域,如果該定義存在的話)。
第四個標記使該域的主域名服務器,第五個是負責維護這個數(shù)據(jù)庫的系統(tǒng)管理員的電子郵件的地址,注意第一個分隔符替換了第一個標記的@符號(你能解釋為什么嗎?)。接下來在記錄中的條目指定了交互解析域名服務器的動態(tài)特性。
域名服務器記錄
@ IN NS stationX.domainX.example.com.
域名服務器(NS)標識了主機作為特定域的授權(quán)的域名服務器。他們對于這個區(qū)域指定了主和從服務器和代表授權(quán)的子域的其他的服務器(例如,server1.example.com對于所有domainX.example.com 的域名服務器有一個NS 記錄)。正如您對于“domainX.example.com ”只能有一個單一的域名服務器,您也只能有一個單一的NS 記錄。
地址記錄
domainX.example.com IN A 192.168.0.X
stationX.domainX.example.com IN A 192.168.0.X
www IN A 192.168.0.X
ftp IN A 192.168.0.X
pop IN A 192.168.0.X
地址(A)記錄將主機名稱映射到IP 地址(域名服務器的主要功能)。一個數(shù)據(jù)庫文件通常包含A 記錄對應著許多IP 地址。然而在我們的教室的環(huán)境里,在您的區(qū)域里面只有一臺主機。注意第一個A 記錄設(shè)定了域的“缺省的IP 地址”。接下來的A 記錄建立了多個主機名稱對應一個IP 地址。
主機名稱可以是一個完全符合標準的名稱(FQ DN),也可以是一個縮寫。所有的不以點號結(jié)尾的主機名稱都將被視為縮寫,并且區(qū)域名稱被附加到主機名稱的后面。例如,第三個A 記錄就是主機名稱www .domainX.example.com .
規(guī)范名稱(別名)記錄
www 1 IN C NAM E stationX.domainX.example.com.
www 2 IN C NAM E stationX.domainX.example.com.
www 3 IN C NAM E stationX.domainX.example.com.
,別名(C NAM E )記錄建立了主機名稱的別名。注意到別名映射到主機名稱而不是IP 地址。
C NAM E 不應該出現(xiàn)在右邊的數(shù)據(jù)區(qū)域作為真實的主機名稱,對于多重別名的解析的速度會很慢。
郵件交換記錄
@ IN MX 10 stationX.domainX.example.com.
domainX.example.com IN MX 10 stationX.domainX.example.com.
郵件交換記錄(MX)記錄了一個主機它將會處理給定的域或者主機郵件的轉(zhuǎn)發(fā)。當一個郵件傳遞代理(MT A)試圖投遞信件的時候,它將首先試圖在DNS 中查找目的主機的MX 記錄。如果該MX 記錄存在,那么將直接發(fā)送到MX 記錄指定的主機。反之,如果不存在MX 記錄,MT A 對于目的主機進行標準的DNS 查詢,并且直接投遞到該主機上去。MX記錄用來建立郵件的網(wǎng)關(guān),和作為缺省的對于域的郵件的目的地。
2. 區(qū)域“X.0.168.192.in-addr.arpa ”
在/etc/named.conf中,我們指定了/var/named/192.168.0.X.z one 作為區(qū)域X.0.168.192.in-addr.arpa 的反查區(qū)域數(shù)據(jù)庫文件。他應該包含S O A 記錄,NS記錄,和對應的P T R 記錄。
開始授權(quán)記錄
@ IN SO A stationX.domainX.example.com. root.stationX.domainX.example.com. (
4;
10800;
3600;
604800;
86400)
IN NS stationX.domainX.example.com.
S O A 和NS 記錄與前面的區(qū)域文件中的名稱應該相同。
注意在NS 記錄開頭的空白的地方是非常特別的,并且被解釋為“和上一條記錄相同”的縮寫。在本例中,上一條記錄為符號“@”,其本身就是在主配置文件中定義的域名的縮寫。
指針記錄
X.0.168.192.IN-ADDR.ARPA. IN PT R stationX.domainX.example.com.
指針(PT R)記錄通過間接的機制將名稱映射到IP 地址。作為分離的技術(shù)來進行IP 地址的反查詢的替代,BIND采用了一種修改的對于特定主機名稱的正向查詢的方式。這種“反向域名查詢”以反轉(zhuǎn)的IP 地址后面添加“in-addr.arpa ”域的形式出現(xiàn)。這將允許域名服務器使用相同的機制進行正反兩方面的查詢。
3. 把他們放在一起
下面是位于192.168.0.2的station2的樣例配置文件:
,/var/named/domain2.example.com.z one
$TTL 86400@ IN S O A station2.domain2.example.com. root.station2.domain2.example.com. ( 2001101100; Serial 28800 ; Refresh 14400 ; Retry 3600000 ; E xpire 0) ; Negative @ IN NS station2.domain2.example.com. @ IN A
192.168.0.2station2.domain2.example.com. IN A 192.168.0.2www IN A 192.168.0.2ftp IN A 192.168.0.2pop IN A 192.168.0.2www 1 IN C NAM E station2.domain2.example.com. www 2 IN C NAM E station2.domain2.example.com. www 3 IN C NAM E station2.domain2.example.com. @ IN MX 10 station2.domain2.example.com.station2 IN MX 10
station2.domain2.example.com.
/var/named/192.168.0.2.z one
$TTL 86400@ IN S O A station2.domain2.example.com. root.station2.domain2.example.com. (4 10800 3600 604800 86400) IN NS station2.domain2.example.com.2.0.168.192.IN-ADDR.ARPA. IN PT R station2.domain2.example.com.
C . 重新啟動域名服務器
再一次,我們將重新啟動域名服務器。然后通過運行pidof 命令來確定其被運行:
service named restart
pidof named
查看一下服務器添加到/var/log/messages文件中的條目。確定您的域名在調(diào)入的時候沒有發(fā)生錯誤。
如果您已經(jīng)有一個域名服務器在運行并且不想重新啟動它,您可以使用service named reload 來重新裝入配置文件,這樣子對于停止和啟動服務器而言都比較快。
D. 測試域名服務器
進行如下DNS 查詢,您能夠解釋所有的結(jié)果么?
host stationX
dig stationX.example.com
dig stationX.example.com @192.168.0.254
dig stationX.example.com
host server1.example.com
host 192.168.0.X
dig –x 192.168.0.X
dig –x 192.168.0.254
host www
host www 1
記住dig 期望給與一個FQ DN 作為查詢,然而host 則通過查看位于文件/etc/resolv.conf的查詢信息。試著在別的人的域名服務器和子域上進行附加的查詢。如果設(shè)定正確,您將能夠在其他教室系統(tǒng)上進行正向和反向查詢。
,挑戰(zhàn)性的項目
通過增加多個“A ”記錄使得一個主機名稱對應著不同的IP 地址來配置一個“輪轉(zhuǎn)”的主機名稱。域名服務器該如何處理這種情況?提示: 試圖嘗試設(shè)定這些的A 記錄的TT L 為0。
在您的域中增加子域“support.somainX.example.com ”。增加合適的資源記錄使得它能夠反向指向您的IP 地址。
與另一臺工作站合作,成為另一臺工作站的從域名服務器,在您的區(qū)域中為您的工作站增加一個新的C NAM E ,確保這個改變能夠傳播到從服務器。
收尾工作
接下來的試驗就較為簡單了,一旦您重新啟動您的工作站,所有的DNS 查詢將會重新設(shè)定到教室中的服務器上。為了確保收尾,確保您重新設(shè)定/etc/resolve.conf到其初始的狀態(tài)。
/etc/resolv.conf
search example.comnameserver 192.168.0.254
/etc/hosts
127.0.0.1 localhost localhost.localdomain localhost192.168.0.X stationX.example.com
(如果您關(guān)閉后啟動eth0接口,DHC P 將會自動為您設(shè)定配置文件)
試驗3
Samba 服務
估計時間: 1個小時
目標: 使用samba 共享用戶認證和文件系統(tǒng)
試驗的起點: 標準的Red Hat Linux安裝
將數(shù)據(jù)包過濾設(shè)定為無效狀態(tài)。在本次試驗開始之前,請您確保您的主機上的所有包過濾已被關(guān)閉。缺省的安裝將會有一個文件叫做“/etc/sysconfig/iptables”,該文件配置了iptable 的功能。運行“chkconfig iptables off”。為了去除空間中所有的規(guī)則,運行“service iptables stop”
,步驟1:Samba的用戶連接的配置
任務
1. 安裝samba,samba-common 和samba-client RPM 軟件包并且啟動smb 服務。一個缺省的配置將會被應用. 使用如下的命令確定Samba 是在正確的工作:
smbclient –L localhost –N
您可以從服務器獲得回應,但是并不代表文件共享可用。(確保smbd 在運行,否則該命令無法工作)
2.在您的系統(tǒng)中增加幾個用戶(karl,j oe,mary 和j en),但是并不給他們設(shè)定密碼。這些用戶僅能夠從samba 服務訪問服務器。為了使得他們在shado w 中不含有密碼,這些用戶的shell 應該設(shè)定為/sbin/nologin
3.缺省的samaba 是被配置用來接收加密的密碼的,但是在文件/etc/samba/smbpassw d 中沒有設(shè)定任何密碼。如果加密的密碼在/etc/samba/smb.conf被設(shè)定,smbclient將發(fā)送加密的密碼,所以為了在您的系統(tǒng)上測試samba 服務,您應該首先建立smbpass w d 文件,然后為每一個用戶在該文件中添加密碼。
4.注意到第一個在/etc/samba/smb.conf設(shè)定的共享[home ]并沒有指定路徑。該共享被配置用來當用戶連接并且認證通過以后共享用戶的home 目錄。瀏覽一個或者兩個用戶的home 目錄。上傳一個文件到j(luò) oe 的home 目錄。
可用的結(jié)果
一個工作的samba 服務可以被多個用戶通過smbclient 訪問。
步驟2: 提供給組目錄訪問的權(quán)限
場景/故事
為了使得我們的四個用戶除了有他們自己的在服務器上的共享,我們這四位用戶同時在同一個部門工作并且需要一個地方來存儲部門的文件。我們將需要一個Linux 用戶組,建立一個目錄給這些用戶來存儲它們的內(nèi)容,并且配置samba 服務器來共享目錄。
任務
1. 建立一個對于擁有g(shù)id 為30000的用戶叫做legal 的新組并且使用usermod 命令將這些用戶加到組里去。
2. 建立一個目錄/home/depts/legal。對于這個目錄設(shè)定擁有權(quán)限,使得在legal 組中的用戶可以在這個目錄中添加/刪除文件,然而其他的人不可以。并且設(shè)定S G ID 和粘滯位使得所有在這個目中建立的文件都擁有同legal 組的權(quán)限并且組中其他的的人不能夠刪除該用戶建立的文件。
3. 在/etc/samba/smb.conf中建立一個samba 共享叫做[legal ]。只有l(wèi)egal 組中的用戶才能夠訪問該共享。并且確保在
[legal ]中存放的文件的被建立的許可權(quán)限為0600。
,4. 重新啟動smb 服務并且使用smbclient ;來進行測試。
可用的結(jié)果
1. 只有l(wèi)agal 組能夠訪問和使用一個Linux 目錄。
2. 一個samba 共享只有l(wèi)egal 組的用戶能夠訪問并且編輯
步驟3:為打印機提供訪問
場景/故事
在samba 中除了可以共享文件以外,另外一個重要的功能就是提供共享打印隊列,該打印隊列已經(jīng)在您的Linux 機器上定義。實際上,缺省的,所有在Linux 機器上配置的打印隊列通過[printers ]共享到網(wǎng)絡(luò)上去。在該步驟中,您將建立一個打印隊列,通過samba 服務器進行共享。然后通過smbclient 來查看共享的打印機。
任務
1. 使用redhat-config-printer 建立一個新的打印隊列。把打印隊列命名為printerX(其中X 為您的工作站的號碼)。配置打印機到本地連接的打印機/dev/lp0。配置打印隊列確保任何遞交的打印作業(yè)將保留在隊列中。不要忘記重新啟動samba 服務器。
2. 通過smbclient 來連接samba 服務器上共享的printerX。使用print 命令來遞交打印作業(yè)到隊列中去。檢查作業(yè)已排隊否。
可用的結(jié)果
1. 一個定義的Linux 打印隊列printerX
2. 一個Samba 服務器允許授權(quán)的用戶打印到共享打印機printerX
挑戰(zhàn)1:安全和備份Samba/SMB
現(xiàn)在所有的東西都可以運行了,我們應該考慮在Samba 服務器上的網(wǎng)絡(luò)安全和數(shù)據(jù)的可靠性了。
任務
1. 定義并且保護對于samba 服務器而言合法的連接。在文件/etc/samba/smb.conf中使用hosts allo w 參數(shù)來確定所有教室里的子網(wǎng)和本地回環(huán)子網(wǎng)。
2. 使用testparm 測試/etc/samba/smb.conf的語法。這個是否顯示出一些應該考慮的安全上的漏洞呢?
3. 對您的鄰居的[legal ] 共享進行備份。通過用戶karl 的帳戶建立一個共享的數(shù)據(jù)打包,使用或者smbtar 命令或者smbclient 的-T 選項。
可用的結(jié)果