DNS是「Domain Name System「的縮寫,DNS實現了主機名到IP地址的映射解析。在網絡中各主機之間是經過IP地址來通訊尋址的,可是IP地址難記,人類較容易記住的主機名,若是但願經過主機名來進行通訊,則須要DNS來完成大量的主機名和IP地址的映射解析工做。DNS採用倒置的樹狀結構,分佈式、分層級的主機名管理結構。
DNS查詢分紅遞歸查詢和迭代查詢,遞歸查詢表示查詢請求方發出請求後,接收方會經過屢次查詢,最終把對應的結果回覆給請求方(多出如今客戶主機到本地DNS服務器之間);迭代查詢表示查詢請求方發出請求後,接收方的本地數據庫中無對應信息,則告之請求方要向根名稱服務器查詢,而後再一級一級向下查詢,這樣查詢請求方通過屢次自主查詢後纔會獲得結果(多出如今本地DNS服務器和處於其層次之上的其它多個DNS服務器之間)。
DNS服務器類型有:(1)主名稱服務器,存儲並維護所管轄區域的域結構信息,並提供精確查詢主機名和IP的對應關係。(2)從名稱服務器,它從主名稱服務器同步域結構信息,也能提供精確查詢,但它不去更新維護域結構信息。(3)緩存名稱服務,緩存查詢過的域信息,用於回答之後相同的查詢請求。其內域信息設置過時時間,它能夠提供快速查詢但不是精確查詢,由於其上的信息可能會過時。html
搭建DNS主從服務器。假設主DNS服務器IP爲192.168.1.100,從DNS服務器IP爲192.168.1.101
(1)登陸主DNS服務器和從DNS服務器上安裝DNS服務器軟件
root用戶執行 yum install bind
(2)而後修改主DNS服務器上的DNS主配置文件/etc/named.confweb
options {
listen-on port 53 { any; }; 監聽端口和哪些主機能夠訪問解析,any表示全部
directory 「/var/named」; 數據庫文件的目錄位置
allow-query { any; }; 容許哪些主機請求查詢
recursion yes; 將本身視爲客戶端的一種查詢方式
zone 「.」 IN {
type hint;
file 「named.ca」;
};shell zone 「magedu.com」 IN {
type master;
file 「magedu.com」;
allow-transfer{192.168.1.101;} 定義哪些從DNS服務器能夠同步數據,多個IP之間以分號分隔,且最後以分號結尾。
}數據庫 zone 「1.168.192.in-addr.arpa」 IN {
type master;
file 「named.192.168.1」;
allow-transfer{192.168.1.101;}
}vim
(3)修改從DNS服務器上的DNS主配置文件/etc/named.conf
緩存
options {
listen-on port 53 { any; }; 監聽端口和哪些主機能夠訪問解析,any表示全部
directory 「/var/named」; 數據庫文件的目錄位置
allow-query { any; }; 容許哪些主機請求查詢
recursion yes; 將本身視爲客戶端的一種查詢方式
zone 「.」 IN {
type hint;
file 「named.ca」;
};安全 zone 「magedu.com」 IN {
type slave; 表示本機是從DNS服務器
file 「slaves/magedu.com」; 表示同步後的文件放置在哪裏,這是相對於/var/named/目錄的相對路徑
masters{192.168.1.100;} 定義主服務器地址
}服務器 zone 「1.168.192.in-addr.arpa」 IN {
type slave;
file 「slaves/named.192.168.1」;
masters{192.168.1.100;}
}網絡
(4)修改主DNS服務器的域名的解析庫文件,從DNS服務器不須要定義
正向解析文件:/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服務器和從DNS服務器上的named服務
# cd /var/named
(僅主DNS服務器執行)# chown named:named named.192.168.1 magedu.com
# service named restart
(6)觀察
觀察從DNS服務器上的解析庫文件是否進行同步,位置於/var/named目錄下
觀察日誌文件:/var/log/messages
子域受權:
在本域名服務器上的正向解析文件定義子域
# 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 添加對應的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
固然子域還須要有對應的子域的解析庫文件,配置格式與上級域相似。這樣才能對子域進行解析。
(1)HTTP服務:
HTTP是一個屬於應用層的面向對象的協議,因爲其簡捷、快速的方式,適用於分佈式超媒體信息系統。它的主要特色以下:
(1.1)支持客戶/服務器模式
(1.2) 簡單快速:客戶向服務器請求服務時,只需傳送請求方法和路徑,常見的請求方法有:GET、POST和HEAT。
(1.3)靈活:HTTP容許傳輸任意類型的數據對象
(1.4)無鏈接:限制每次鏈接只處理一個請求
(1.5)無狀態:HTTP協議爲無狀態協議。
常見的HTTP服務器爲:Apache 和 Nginx
(2)實現基於用戶的訪問控制
下面以basic認證機制來實現基於用戶的訪問控制
(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
這裏表示僅容許user1和user2,且他們出現於AuthUserFile文件中,這些用戶爲虛擬用戶,而非系統用戶
(2.2)提供用戶的帳號文件
使用htpasswd命令進行維護
htpasswd [OPTIONS] passwdfile userName
選項有:
-c :添加第一個用戶時建立此文件
-m:以md5格式加密用戶密碼存放
-s:以sha格式加密用戶密碼存放
-D:刪除指定用戶
(2.3)組認證
<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
而後在組文件中每行定義一個組,格式爲
group1: user1 user2
group2: user3 user4
(3)實現虛擬主機:
一個物理主機能夠服務於多個站點,每一個站點能夠經過一個或多個虛擬主機來實現,開啓虛擬主機要首先關閉Main中心主機,即要註釋DocumentRoot指令。
實現虛擬主機的方式有三種:
(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>
(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)實現https:
https即http over ssl ,其經過https://來訪問,對應的默認訪問端口爲443。注意SSL會話是基於IP地址建立,因此單IP的主機上,僅可使用一個https虛擬主機。
(4.1)爲服務器申請數字證書
建立私有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
建立服務器證書密鑰
openssl genrsa -out serverkey.pem 2048
在服務器建立證書籤署請求
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 服務器證書文件crt SSLCertificateKeyFile 服務器證書密鑰pem