(第十一周作業(yè))
1汉矿、簡述DNS服務(wù),并搭建DNS服務(wù)器备禀,實(shí)現(xiàn)主從洲拇,子域授權(quán)。
DNS是“Domain Name System"的縮寫曲尸,DNS實(shí)現(xiàn)了主機(jī)名到IP地址的映射解析。在網(wǎng)絡(luò)中各主機(jī)之間是通過IP地址來通信尋址的另患,但是IP地址難記纽乱,人類較容易記住的主機(jī)名,如果希望通過主機(jī)名來進(jìn)行通信昆箕,則需要DNS來完成大量的主機(jī)名和IP地址的映射解析工作鸦列。DNS采用倒置的樹狀結(jié)構(gòu),分布式为严、分層級的主機(jī)名管理結(jié)構(gòu)敛熬。
DNS查詢分成遞歸查詢和迭代查詢肺稀,遞歸查詢表示查詢請求方發(fā)出請求后第股,接收方會通過多次查詢,最終把對應(yīng)的結(jié)果回復(fù)給請求方(多出現(xiàn)在客戶主機(jī)到本地DNS服務(wù)器之間)话原;迭代查詢表示查詢請求方發(fā)出請求后夕吻,接收方的本地數(shù)據(jù)庫中無對應(yīng)信息,則告之請求方要向根名稱服務(wù)器查詢繁仁,然后再一級一級向下查詢涉馅,這樣查詢請求方經(jīng)過多次自主查詢后才會得到結(jié)果(多出現(xiàn)在本地DNS服務(wù)器和處于其層次之上的其它多個DNS服務(wù)器之間)。
DNS服務(wù)器類型有:(1)主名稱服務(wù)器黄虱,存儲并維護(hù)所管轄區(qū)域的域結(jié)構(gòu)信息稚矿,并提供精確查詢主機(jī)名和IP的對應(yīng)關(guān)系。(2)從名稱服務(wù)器,它從主名稱服務(wù)器同步域結(jié)構(gòu)信息晤揣,也能提供精確查詢桥爽,但它不去更新維護(hù)域結(jié)構(gòu)信息。(3)緩存名稱服務(wù)昧识,緩存查詢過的域信息钠四,用于回答以后相同的查詢請求。其內(nèi)域信息設(shè)置過期時間跪楞,它可以提供快速查詢但不是精確查詢缀去,因?yàn)槠渖系男畔⒖赡軙^期。
搭建DNS主從服務(wù)器甸祭。假設(shè)主DNS服務(wù)器IP為192.168.1.100缕碎,從DNS服務(wù)器IP為192.168.1.101
(1)登錄主DNS服務(wù)器和從DNS服務(wù)器上安裝DNS服務(wù)器軟件
root用戶執(zhí)行 yum install bind??
(2)然后修改主DNS服務(wù)器上的DNS主配置文件/etc/named.conf
options {
? ? ? ? listen-on port 53 { any; };? 監(jiān)聽端口和哪些主機(jī)可以訪問解析,any表示所有
? ? ? ? directory? ? ? "/var/named";?數(shù)據(jù)庫文件的目錄位置
? ? ? ? allow-query? ? { any; };?允許哪些主機(jī)請求查詢
? ? ? ? recursion yes;? 將自己視為客戶端的一種查詢方式?
? ? ? ? zone "." IN {
? ? ? ? ? ? type hint;
? ? ? ? ? ? file "named.ca";
? ? ? ? };? ? ? ? zone? "magedu.com" IN {
? ? ? ? ? ? type master;
? ? ? ? ? ? file "magedu.com";
? ? ? ? ? ? allow-transfer{192.168.1.101;}? 定義哪些從DNS服務(wù)器可以同步數(shù)據(jù),多個IP之間以分號分隔淋叶,且最后以分號結(jié)尾阎曹。
? ? ? ? }? ? ? ? zone "1.168.192.in-addr.arpa" IN {
? ? ? ? ? ? type master;
? ? ? ? ? ? file? "named.192.168.1";
? ??????????allow-transfer{192.168.1.101;}?
? ? ? ? }
(3)修改從DNS服務(wù)器上的DNS主配置文件/etc/named.conf
options {
? ? listen-on port 53 { any; };? 監(jiān)聽端口和哪些主機(jī)可以訪問解析,any表示所有
????directory? ? ? "/var/named";?數(shù)據(jù)庫文件的目錄位置
????allow-query? ? { any; };?允許哪些主機(jī)請求查詢
????recursion yes;? 將自己視為客戶端的一種查詢方式
????zone "." IN {
????????type hint;
????????file "named.ca";
????};????zone? "magedu.com" IN {
? ? ????type?slave;? 表示本機(jī)是從DNS服務(wù)器
????????file "slaves/magedu.com";?表示同步后的文件放置在哪里,這是相對于/var/named/目錄的相對路徑
? ? ? ? masters{192.168.1.100;}? 定義主服務(wù)器地址
????}????zone "1.168.192.in-addr.arpa" IN {
????????type?slave;
????????file? "slaves/named.192.168.1";
? ? ? ? masters{192.168.1.100;}?
????}
(4)修改主DNS服務(wù)器的域名的解析庫文件煞檩,從DNS服務(wù)器不需要定義
正向解析文件:/var/named/magedu.com
$TTL 86400
$ORIGIN? magedu.com.
@? ? ? IN SOA? ns1.magedu.com.? ?admin.magedu.com. (? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?????????????????????????
????????????????????????????????2019011301
????????????????????????????????1H
????????????????????????????????5M
????????????????????????????????1W
????????????????????????????????86400 )
@? IN? ?NS? ? ns1.magedu.com.
@? IN? ?NS? ? slave.magedu.com.
@? IN? ?MX? ?10? mail.magedu.com.
ns1? IN A? ? ? ?192.168.1.110
slave? IN A? ? ? ?192.168.1.111
www? IN? A? ? ?192.168.1.110
ftp? ? ?IN? A? ? ? 192.168.1.110
web? IN? A? ? ? ?CNAME? ?ftp
說明:增加了兩條slave的記錄处嫌。
反向解析文件:/var/named/named.192.168.1
$TTL 86400
@? ? ? IN SOA? ns1.magedu.com.? ?admin.magedu.com. (??
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?2019011301
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?1H
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?5M
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?1W?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?86400 )
@? IN? ?NS? ? ns1.magedu.com.
@? IN? ?NS? ? slave.magedu.com.
110? IN? PTR? ?ns1.magedu.com.
111? IN? PTR? ?slave.magedu.com.
110? IN? PTR? ?www
110??IN?PTR? ?ftp
110??IN?PTR? ?web
(5)重啟主DNS服務(wù)器和從DNS服務(wù)器上的named服務(wù)
# cd /var/named
(僅主DNS服務(wù)器執(zhí)行)# chown? named:named? named.192.168.1? ?magedu.com
# service? named restart
(6)觀察
觀察從DNS服務(wù)器上的解析庫文件是否進(jìn)行同步,位置于/var/named目錄下
觀察日志文件:/var/log/messages
子域授權(quán):
在本域名服務(wù)器上的正向解析文件定義子域
#? vim? /var/named/magedu.com
$TTL 86400
$ORIGIN? magedu.com.
@? ? ? IN SOA? ns1.magedu.com.? ?admin.magedu.com. (? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 201901130
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1H
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 5M
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1W
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 86400 )
@? IN? ?NS? ? ns1.magedu.com.
@? IN? ?NS? ? slave.magedu.com.
ops.magedu.com.? ?IN? ?NS? ? ns1.ops.magedu.com.? ? 添加NS記錄
@? IN? ?MX? ?10? mail.magedu.com.
ns1? IN A? ? ? ?192.168.1.110
ns1.ops.magedu.com.? ?IN? ? A? ?192.168.1.120? ? ? ? ? ?添加對應(yīng)的A記錄
slave? IN A? ? ? ?192.168.1.111
www? IN? A? ? ?192.168.1.110
ftp? ? ?IN? A? ? ? 192.168.1.110
web? IN? A? ? ? ?CNAME? ?ftp
當(dāng)然子域還需要有對應(yīng)的子域的解析庫文件斟湃,配置格式與上級域類似熏迹。這樣才能對子域進(jìn)行解析。
2凝赛、簡述HTTP服務(wù)注暗,并實(shí)現(xiàn)基于用戶的訪問控制,虛擬主機(jī)墓猎,https
(1)HTTP服務(wù):
HTTP是一個屬于應(yīng)用層的面向?qū)ο蟮膮f(xié)議捆昏,由于其簡捷、快速的方式毙沾,適用于分布式超媒體信息系統(tǒng)骗卜。它的主要特點(diǎn)如下:
? ? (1.1)支持客戶/服務(wù)器模式
? ? ? (1.2)? ?簡單快速:客戶向服務(wù)器請求服務(wù)時,只需傳送請求方法和路徑左胞,常見的請求方法有:GET寇仓、POST和HEAT。
? ? (1.3)靈活:HTTP允許傳輸任意類型的數(shù)據(jù)對象
? ? (1.4)無連接:限制每次連接只處理一個請求
? ? (1.5)無狀態(tài):HTTP協(xié)議為無狀態(tài)協(xié)議烤宙。
常見的HTTP服務(wù)器為:Apache?和?Nginx
(2)實(shí)現(xiàn)基于用戶的訪問控制
下面以basic認(rèn)證機(jī)制來實(shí)現(xiàn)基于用戶的訪問控制
? ? (2.1)定義安全域
? ? ? ?<Directory? ?"/devops/html/">
? ? ? ? ? ? Options? None
? ? ? ? ? ? AllowOverride None
? ? ? ? ? ? AuthType Basic
? ? ? ? ? ? AuthName? "Only? for? user who Regist before"
? ? ? ? ? ? AuthUserFile? /etc/httpd/users/.htpasswd
? ? ? ? ? ? Require? user? ?user1? ?user2?
? ? ? ? </Directory>
? ? ? ? 這里表示僅允許user1和user2,且他們出現(xiàn)于AuthUserFile文件中遍烦,這些用戶為虛擬用戶,而非系統(tǒng)用戶
? ? (2.2)提供用戶的賬號文件
? ? ? ?使用htpasswd命令進(jìn)行維護(hù)
? ? ? ? htpasswd? [OPTIONS]? passwdfile? ?userName
? ? ? ? 選項(xiàng)有:
? ? ? ? ? ? -c :添加第一個用戶時創(chuàng)建此文件
? ? ? ? ? ? -m:以md5格式加密用戶密碼存放
? ? ? ? ? ? -s:以sha格式加密用戶密碼存放
? ? ? ? ? ? -D:刪除指定用戶
? ? ? ?(2.3)組認(rèn)證
? ? ? ??? ? ? ?<Directory? ?"/devops/html/">
????????? ? ? ? ? ? Options? None
????????? ? ? ? ? ? AllowOverride None
????????? ? ? ? ? ? AuthType Basic
????????? ? ? ? ? ? AuthName? "Only? for? user who Regist before"
????????? ? ? ? ? ? AuthUserFile? /etc/httpd/users/.htpasswd
? ? ? ? ? ? ? ? ? ? AuthGroupFile? /etc/httpd/users/.htgroup
????????? ? ? ? ? ? Require? group? group1? ?group2?
????????? ? ? ? </Directory>
? ? ? ? ? ? 然后在組文件中每行定義一個組躺枕,格式為
? ? ? ? ? ? group1: user1? user2
? ? ? ? ? ? group2: user3? ?user4
(3)實(shí)現(xiàn)虛擬主機(jī):
一個物理主機(jī)可以服務(wù)于多個站點(diǎn)服猪,每個站點(diǎn)可以通過一個或多個虛擬主機(jī)來實(shí)現(xiàn)供填,開啟虛擬主機(jī)要首先關(guān)閉Main中心主機(jī),即要注釋DocumentRoot指令罢猪。
實(shí)現(xiàn)虛擬主機(jī)的方式有三種:
? ? (3.1)基于IP,要求所有的IP地址都是有效的捕虽,且能用于通信
<VirtualHost? 192.168.10.51:80>
? ? ServerName? www.foo.com
? ? DocumentRoot? /vhost/foo.com/htdocs/
</VirtualHost>
?<VirtualHost? 192.168.10.61:80>
? ? ServerName? www.bar.com
? ? DocumentRoot? /vhost/bar.com/htdocs/
</VirtualHost>
? ? (3.2)基于Port
<VirtualHost? 192.168.10.51:80>
? ? ServerName? www.foo.com
? ? DocumentRoot? /vhost/foo.com/htdocs/
</VirtualHost>
?<VirtualHost? 192.168.10.51:8080>
? ? ServerName? www.bar.com
? ? DocumentRoot? /vhost/bar.com/htdocs/
</VirtualHost>
? ? ? ? ? ? 說明其于IP地址和Port的方式可以混合起來使用。
?(3.3)?基于FQDN
<VirtualHost? 192.168.10.51:80>
? ? ServerName? www.foo.com
? ? DocumentRoot? /vhost/foo.com/htdocs/
</VirtualHost>
?<VirtualHost? 192.168.10.51:80>
? ? ServerName? www.bar.com
? ? DocumentRoot? /vhost/bar.com/htdocs/
</VirtualHost>
(4)實(shí)現(xiàn)https:
? ? https即http over ssl ,其通過https://來訪問坡脐,對應(yīng)的默認(rèn)訪問端口為443泄私。注意SSL會話是基于IP地址創(chuàng)建,所以單IP的主機(jī)上备闲,僅可以使用一個https虛擬主機(jī)晌端。
? ? (4.1)為服務(wù)器申請數(shù)字證書
? ? ? ? 創(chuàng)建私有CA
? ? ? ? #?openssl genrsa -out rootkey.pem 2048
? ? ? ? #openssl req -new -key rootkey.pem -out root.csr
? ? ? ? # openssl x509 -req -days 365 -extensions v3_ca -signkey rootkey.pem -in root.csr -out root.crt
? ? ? ? 創(chuàng)建服務(wù)器證書密鑰
? ? ? ? #openssl genrsa -out serverkey.pem 2048
????????在服務(wù)器創(chuàng)建證書簽署請求
? ? ? ? #openssl req -new -key serverkey.pem -out server.csr
? ? ? ? CA簽證
? ? ? ? #openssl x509 -req -days 3650 -extensions v3_req -in server.csr -CA root.crt -CAkey rootkey.pem -CAcreateserial -out server.crt
? ? ? ? (4.2)配置httpd支持使用ssl,及使用的證書文件
? ? ? ? #?yum? -y? install? mod_ssl
? ? ? ? 配置文件:/etc/httpd/conf.d/ssl.conf
? ? ? ? ? ? DocumentRoot
? ? ? ? ? ? ServerName
? ? ? ? ? ? SSLCertificateFile? ? 服務(wù)器證書文件crt
? ? ? ? ? ? SSLCertificateKeyFile? ? ?服務(wù)器證書密鑰pem