DNS主从、HTTPS

(第十一周作业)
1、简述DNS服务,并搭建DNS服务器,实现主从,子域授权。

DNS是“Domain Name System"的缩写,DNS实现了主机名到IP地址的映射解析。在网络中各主机之间是通过IP地址来通信寻址的,但是IP地址难记,人类较容易记住的主机名,如果希望通过主机名来进行通信,则需要DNS来完成大量的主机名和IP地址的映射解析工作。DNS采用倒置的树状结构,分布式、分层级的主机名管理结构。
DNS查询分成递归查询和迭代查询,递归查询表示查询请求方发出请求后,接收方会通过多次查询,最终把对应的结果回复给请求方(多出现在客户主机到本地DNS服务器之间);迭代查询表示查询请求方发出请求后,接收方的本地数据库中无对应信息,则告之请求方要向根名称服务器查询,然后再一级一级向下查询,这样查询请求方经过多次自主查询后才会得到结果(多出现在本地DNS服务器和处于其层次之上的其它多个DNS服务器之间)。
DNS服务器类型有:(1)主名称服务器,存储并维护所管辖区域的域结构信息,并提供精确查询主机名和IP的对应关系。(2)从名称服务器,它从主名称服务器同步域结构信息,也能提供精确查询,但它不去更新维护域结构信息。(3)缓存名称服务,缓存查询过的域信息,用于回答以后相同的查询请求。其内域信息设置过期时间,它可以提供快速查询但不是精确查询,因为其上的信息可能会过期。

搭建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.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 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;} 
        }

(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

当然子域还需要有对应的子域的解析库文件,配置格式与上级域类似。这样才能对子域进行解析。

2、简述HTTP服务,并实现基于用户的访问控制,虚拟主机,https
(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 
        </Directory>

        这里表示仅允许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 
                </Directory>

            然后在组文件中每行定义一个组,格式为

            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>

            说明其于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)实现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

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,045评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,114评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 147,120评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,902评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,828评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,132评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,590评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,258评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,408评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,335评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,385评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,068评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,660评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,747评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,967评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,406评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,970评论 2 341

推荐阅读更多精彩内容