Dns及Httpd

1、简述DNS服务,并搭建DNS服务器,实现主从,子域授权

DNS Domain Name Service, 应用层协议,是一个C/S架构模型,在红帽系上实现这一协议的应用是BIND : Berkeley Internet Name Domain。Client:发起应用请求的程序,Server:响应请求(提供服务)的程序。

Sockets:服务器进程向系统内核申请注册套接字并监听端口。53/udp, 53/tcp。udp用作dns解析查询之用,TCP是为主从DNS区域传送之用。

DNS查询类型:递归查询,迭代查询。

DNS名称解析方式:名称 --> IP:正向解析    IP --> 名称:反向解析。

DNS服务器类型:负责解析至少一个域和不负责解析

负责解析至少一个域:主名称服务器,辅助名称服务器。

不负责解析:缓存名称服务器。

程序包组成:

named:bind程序的运行的进程名

bind-libs:被bind和bind-utils包中的程序共同用到的库文件;

bind-utils:bind客户端程序集,例如dig, host, nslookup等;

bind:提供的dns server程序、以及几个常用的测试程序;

bind-chroot:选装,让named运行于jail模式下;

一次完整的查询请求经过的流程:

主机端Client --> 查询自身hosts文件 --> 查询自身DNS Local Cache --> 客户端配置的首选DNS  Server (recursion递归) -->自己负责解析的域:直接查询数据库并返回答案,不是自己负责解析域:Server Cache --> iteration(迭代)

搭建DNS服务器,实现主从

在各主机上安装程序yum install bind 

主配置文件:/etc/named.conf

其它文件;

/etc/named.iscdlv.key

/etc/named.rfc1912.zones

/etc/named.root.key

解析库文件:/var/named/目录下;一般名字为:ZONE_NAME.zone

修改主DNS服务器上的DNS主配置文件/etc/named.conf

options {       

listen-on port 53 { any; }; 监听端口

directory      "/var/named"; 数据库文件的目录位置       

allow-query    { any; }; 允许哪所有主机请求查询       

recursion yes;  递归        

 zone "." IN {

    type hint;

    file "named.ca";  根区域解析库文件

 };

zone  "abc.com" IN {

    type master;

    file "abc.com";

    allow-transfer{192.168.2.177;} ;

} ;

修改从DNS服务器上的DNS主配置文件/etc/named.conf

 zone  "abc.com" IN {

    type slave;

    file "slaves/abc.com";

    masters{192.168.2.176;} ;

} ;

创建主DNS服务器的域名的解析库文件,从DNS服务器不需要定义。

文件为:/var/named/abc.com.zone

$TTL 3600

$ORIGIN magedu.com.

@            IN              SOA             ns1.abc.com.             admin.abcc.com. (

            201909999 ; serial

            1H    ; refresh

            10M    ; retry

            3D    ; expire

            1D     ; negative answer ttl

)    

IN              NS              ns1

ns1             IN              A              172.16.2.167

www           IN              A              172.16.2.167

web            IN          CNAME          www 

权限及属组修改: # chgrp named /var/named/abc.com.zone

                              # chmod o= /var/named/abc.com.zone

重启主DNS服务器和从DNS服务器上的named服务

子域授权

在主域名服务器上的正向解析文件定义子域:子域还需要有对应的子域的解析库文件,这样才能对子域进行解析。

ops.abc.com. IN NS  ns1.abc.magedu.com.

ns1.ops.magedu.com. IN A 192.168.2.178

定义转发:

注意:被转发的服务器必须允许为当前服务做递归;

(1) 区域转发:仅转发对某特定区域的解析请求;

zone  "ZONE_NAME"  IN {

type  forward;

forward  {first|only};

forwarders  { SERVER_IP; };

};

first:首先转发;转发器不响应时,自行去迭代查询;

only:只转发;

(2) 全局转发:针对凡本地没有通过zone定义的区域查询请求,通通转给某转发器;

options {

... ...

forward  {only|first};

forwarders  { SERVER_IP; };

.. ...

};

2、简述HTTP服务,并实现基于用户的访问控制,虚拟主机,https

HTTP协议为应用层协议 hyper text transfer protocol, 是一个C/S架构模型,管理员以root身份发起内核请求创建套接字文件并监听特权80端口。然后按不同模式生成子进程相应用户请求(prefork、worker、event)传输明文名本格式,早期http/1.0前不支持其他格式。1.0版本开始引入MIME:Multipurpose Internet Mail Extesion丰富了网页呈现方式。客户端请求资源的方法有method:GET, POST, HEAD,PUT, DELETE,TRACE, OPTIONS等。

工作模式:http请求报文:http request  http响应报文: http response

一次http事务:请求<-->响应

一次完整的http请求处理过程:

(1) 建立或处理连接:接收请求或拒绝请求;

(2) 接收请求:接收来自于网络上的主机请求报文中对某特定资源的一次请求的过程;

(3) 处理请求:对请求报文进行解析,获取客户端请求的资源及请求方法等相关信息;

(4) 访问资源:获取请求报文中请求的资源;

(5) 构建响应报文:

(6) 发送响应报文:

(7) 记录日志:

实现基于用户的访问控制

创建编辑/etc/httpd/conf.d/admin.conf配置文件,不影响主配置文件

Options None

AllowOverride None

AuthType basic

AuthName "Admin Area."

AuthUserFile "/etc/httpd/conf.d/.htpasswd"

AuthGroupFile "/etc/httpd/conf.d/.htgroup"

Require group animals

创建用户和组实现验证

htpasswd 创建密码文件保存至 /etc/httpd/conf.d/.htpasswd

vim /etc/httpd/conf.d/.htgroup  

j添加一下这行内容

animals:tom jerry

实现虚拟主机:

NameVirtualHost 192.168.2.176:80     apache2.2需要写这行配置并注释ServerName DocumentRoot。

ServerName www.a.com

DocumentRoot "/www/a.com/htdocs"

ServerName www.b.net

DocumentRoot "/www/b.net/htdocs"

实现https:

SSL会话的简化过程

(1) 客户端发送可供选择的加密方式,并向服务器请求证书;

(2) 服务器端发送证书以及选定的加密方式给客户端;

(3) 客户端取得证书并进行证书验正:

如果信任给其发证书的CA:

(a) 验正证书来源的合法性;用CA的公钥解密证书上数字签名;

(b) 验正证书的内容的合法性:完整性验正

(c) 检查证书的有效期限;

(d) 检查证书是否被吊销;

(e) 证书中拥有者的名字,与访问的目标主机要一致;

(4) 客户端生成临时会话密钥(对称密钥),并使用服务器端的公钥加密此数据发送给服务器,完成密钥交换;

(5) 服务用此密钥加密用户请求的资源,响应给客户端;

注意:SSL会话是基于IP地址创建;所以单IP的主机上,仅可以使用一个https虚拟主机;

配置httpd支持https:

(1) 为服务器申请数字证书;

测试:通过私建CA发证书并自签证书

(a) 创建私有CA

# cd /etc/pki/CA

# (umask 077; openssl genrsa -out /etc/pki/CA/private/cakey.pem 2048)

# openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 365

为CA提供所需的目录及文件;

~]# mkdir  -pv  /etc/pki/CA/{certs,crl,newcerts}

~]# touch  /etc/pki/CA/{serial,index.txt}

~]# echo  01 > /etc/pki/CA/serial

(b) 在服务器创建证书签署请求

(1) 用到证书的主机生成私钥;

~]# mkdir  /etc/httpd/ssl

~]# cd  /etc/httpd/ssl

~]# (umask  077; openssl  genrsa -out  /etc/httpd/ssl/httpd.key  2048)

(2) 生成证书签署请求

~]# openssl  req  -new  -key  /etc/httpd/ssl/httpd.key  -out /etc/httpd/ssl/httpd.csr  -days  365

(3) 将请求通过可靠方式发送给CA主机;

(c) CA签证

在CA主机上签署证书;

~]# openssl ca  -in  /tmp/httpd.csr  -out  /etc/pki/CA/certs/httpd.crt  -days  365

然后拷贝至httpd主机

查看证书中的信息:

~]# openssl  x509  -in /etc/pki/CA/certs/httpd.crt  -noout  -serial  -subject

(2) 配置httpd支持使用ssl,及使用的证书;

# yum -y install mod_ssl

配置文件:/etc/httpd/conf.d/ssl.conf

DocumentRoot  "/var/www/html"

ServerName    www.abc.com:443

SSLCertificateFile      /etc/httpd/ssl/httpd.crt

SSLCertificateKeyFile   /etc/httpd/ssl/httpd.key

重启服务

最后在游览器导入CA证书 cacert.pem

你可能感兴趣的:(Dns及Httpd)