zoukankan      html  css  js  c++  java
  • 第 10 周

    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

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

  • 相关阅读:
    使用静态工厂方法的好处和坏处
    xUtils3源码分析(一):view的绑定
    在laravel之外使用eloquent
    ruby里面的毒瘤
    ruby的代码风格
    ruby里面的属性访问器
    ruby里面module和class的区别
    unity里面查找所有物体
    android studio安装须知
    intellij系列ide配置
  • 原文地址:https://www.cnblogs.com/linux-timke/p/10923113.html
Copyright © 2011-2022 走看看