第十四周
Posted kfscott
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第十四周相关的知识,希望对你有一定的参考价值。
1、简述DNS服务器原理,并搭建主-辅服务器。
-
DNS服务器原理
DNS服务器会同时监听tcp和udp的53端口,在客户端解析域名时,使用udp的53端口;在主从服务器同步中tcp和udp都要用到。
解析域名的方式有两种:迭代查询和递归查询,默认使用递归查询
迭代查询:由客户端自己一步一步的查询结果。
递归查询:把解析请求发送给本地的DNS服务器,由本地DNS服务器负责查询,把查询的结果发送给客户端
解析过程:
客户端要请求www.a.com的ip地址
1、客户端发送请求给本地DNS服务器,如果本地DNS服务器知道结果,就返回;
2、如果本地DNS服务器没有记录,会直接把请求发送给根DNS服务器
3、如果根DNS服务器知道结果,就直接返回,如果不知道,就会返回com.的域名服务器的地址
4、继续向com.域服务器查询,如果不知道结果,就会返回a.com.的域名服务器地址
5、继续向a.com.域服务器查询,此时就能查到www.a.com的ip地址了
6、本地DNS服务器在收到返回的结果之后,再发送给客户端
-
搭建主-辅服务器
实验环境:主服务器centos7,ip地址192.168.10.128;从服务器centos6,ip地址192.168.10.131
先关闭所有设备上的防火墙和selinux
1、安装软件包
[root@master ~]#yum install bind -y [root@slave ~]#yum install bind -y
2、编辑主服务器配置文件
# 把下面两行注释掉 [root@master ~]#vim /etc/named.conf 12 options { 13 // listen-on port 53 { 127.0.0.1; }; 21 // allow-query { localhost; };
3、编辑主服务器区域信息
# 添加下面几行,域名是magedu.com,类型为master,对应的域配置文件为magedu.com.zone [root@master ~]#vim /etc/named.rfc1912.zones 13 zone "magedu.com" IN { 14 type master; 15 file "magedu.com.zone"; 16 };
4、编辑主服务器的区域配置文件
NS记录要把主从服务器都写上,否则无法进行同步
[root@master ~]#vim /var/named/magedu.com.zone 1 $TTL 86400 2 @ IN SOA @ admin ( 2 1D 1H 1W 3H ) 3 NS ns1 4 NS ns2 5 ns1 A 192.168.10.128 6 ns2 A 192.168.10.131 7 www A 1.1.1.1 8 ftp A 2.2.2.2 9 web CNAME www 10 * CNAME www 11 $GENERATE 1-100 server$ A 10.0.0.$ 12 @ A 2.2.2.2 # 检查语法 [root@master ~]#named-checkzone magedu.com /var/named/magedu.com.zone zone magedu.com/IN: loaded serial 2 OK # 启动服务 [root@master ~]#systemctl start named
5、编辑从服务器的配置文件
和主服务器操作相同
# 把下面两行注释掉 [root@slave ~]# vim /etc/named.conf 12 options { 13 // listen-on port 53 { 127.0.0.1; }; 21 // allow-query { localhost; };
6、编辑从服务器区域信息
# 添加下面的内容,指定主服务器为192.168.10.128 [root@slave ~]#vim /etc/named.rfc1912.zones 13 zone "magedu.com" IN { 14 type slave; 15 masters {192.168.10.128;}; 16 file "slaves/magedu.com.zone.slave"; 17 };
7、启动从服务器的named服务
启动服务之后,/var/named/slaves/magedu.com.zome.slave会自动创建,并且从主服务器拽取内容
[root@slave ~]#service named start [root@slave ~]#ll /var/named/slaves/magedu.com.zone.slave -rw-r--r-- 1 named named 2576 Jul 18 15:53 /var/named/slaves/magedu.com.zone.slave
8、测试
# 通过主服务器和从服务器都可以解析到www.magedu.com的地址1.1.1.1 [root@CentOS8 ~]#host www.magedu.com 192.168.10.128 Using domain server: Name: 192.168.10.128 Address: 192.168.10.128#53 Aliases: www.magedu.com has address 1.1.1.1 [root@CentOS8 ~]#host www.magedu.com 192.168.10.131 Using domain server: Name: 192.168.10.131 Address: 192.168.10.131#53 Aliases: www.magedu.com has address 1.1.1.1
9、安全加固
默认情况下,主服务器和从服务器都允许任何一台机器获取区域信息,需要配置安全加固控制权限
# 在主服务器上添加第22行的内容,仅允许传输给从服务器192.168.10.131 [root@master ~]#vim /etc/named.conf 21 //allow-query { localhost; }; 22 allow-transfer { 192.168.10.131; }; # 修改从服务器,添加第18行的内容,不允许传输给任何机器区域信息 [root@slave ~]#vim /etc/named.conf 17 // allow-query { localhost; }; 18 allow-transfer { none; };
10、测试安全加固效果
# 做安全加固之前,可以从主服务器上获取信息 [root@CentOS8 ~]#dig -t axfr magedu.com @192.168.10.128 ; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el8 <<>> -t axfr magedu.com @192.168.10.128 ;; global options: +cmd magedu.com. 86400 IN SOA magedu.com. admin.magedu.com. 1 86400 3600 604800 10800 magedu.com. 86400 IN A 2.2.2.2 magedu.com. 86400 IN NS ns1.magedu.com. *.magedu.com. 86400 IN CNAME www.magedu.com. ftp.magedu.com. 86400 IN A 2.2.2.2 ns1.magedu.com. 86400 IN A 192.168.10.128 server1.magedu.com. 86400 IN A 10.0.0.1 # 安全加固之后,获取区域信息失败 [root@CentOS8 ~]#dig -t axfr magedu.com @192.168.10.128 ; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el8 <<>> -t axfr magedu.com @192.168.10.128 ;; global options: +cmd ; Transfer failed.
2、搭建并实现智能DNS。
实验拓扑:
实验环境:一台DNS服务器,三台主机,都是使用的centos7,实验之前需要先关闭防火墙和selinux
1、按照拓扑配置ip地址
host1的DNS指向192.168.1.1;host2的DNS指向172.16.0.1;host3的DNS指向192.168.10.138
2、安装软件包
[root@DNS ~]# yum install bind -y
3、修改配置文件
[root@DNS ~]# vim /etc/named.conf
# 找到下面两行,注释掉
// listen-on port 53 { 127.0.0.1; };
// allow-query { localhost; };
# 找到下面几行内容删除
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.zones";
# 在文件最后添加下面的内容,创建三个view,分别用来匹配beijingnet、shanghainet、othernet三个网段
acl beijingnet {
192.168.1.0/24;
};
acl shanghainet {
172.16.0.0/24;
};
acl othernet {
any;
};
view view_beijing {
match-clients { beijingnet; };
include "/etc/named.rfc1912.zones.bj";
};
view view_shanghai {
match-clients { shanghainet; };
include "/etc/named.rfc1912.zones.sh";
};
view view_other {
match-clients { othernet; };
include "/etc/named.rfc1912.zones";
};
4、修改区域文件
# 添加下面的内容,作为other网段的区域配置文件
[root@DNS ~]# vim /etc/named.rfc1912.zones
zone "magedu.com" IN {
type master;
file "magedu.com.zone.other";
};
zone "." IN {
type hint;
file "named.ca";
};
# 复制/etc/named.rfc1912.zones文件为/etc/named.rfc1912.zones.bj,一定要加上-a选项,保证文件属性不变
[root@DNS ~]# cp -a /etc/named.rfc1912.zones /etc/named.rfc1912.zones.bj
# 修改如下
[root@DNS ~]# vim /etc/named.rfc1912.zones.bj
zone "magedu.com" IN {
type master;
file "magedu.com.zone.bj";
};
# 再复制一份/etc/named.rfc1912.zones.sh,做相应修改
[root@DNS ~]# cp -a /etc/named.rfc1912.zones /etc/named.rfc1912.zones.sh
[root@DNS ~]# vim /etc/named.rfc1912.zones.sh
zone "magedu.com" IN {
type master;
file "magedu.com.zone.sh";
};
5、配置解析记录
# 创建文件/var/named/magedu.com.zone.bj,内容如下
# 如果是192.168.1.0/24网段的客户解析www.magedu.com,返回192.168.1.200
[root@DNS ~]# vim /var/named/magedu.com.zone.bj
$TTL 1D
@ IN SOA ns1 admin ( 1 1D 1H 1W 2H )
NS ns1
ns1 A 192.168.1.1
www A 192.168.1.200
# 创建文件/var/named/magedu.com.zone.sh,内容如下
# 如果是172.16.0.0/24网段的主机解析www.magedu.com,返回172.16.0.200
[root@DNS ~]# vim /var/named/magedu.com.zone.sh
$TTL 1D
@ IN SOA ns1 admin ( 1 1D 1H 1W 2H )
NS ns1
ns1 A 172.16.0.1
www A 172.16.0.200
# 创建文件/var/named/magedu.com.zone.other,内容如下
# 如果是其他任何网段解析www.magedu.com,就返回8.8.8.8
[root@DNS ~]# vim /var/named/magedu.com.zone.other
$TTL 1D
@ IN SOA ns1 admin ( 1 1D 1H 1W 2H )
NS ns1
ns1 A 192.168.10.1
www A 8.8.8.8
# 修改文件权限,和目录中的其他权限一致
[root@DNS ~]# chgrp named /var/named/magedu.com.zone*
[root@DNS ~]# chmod 640 /var/named/magedu.com.zone.*
[root@DNS ~]# ll /var/named
total 28
drwxrwx---. 2 named named 23 Jul 18 23:02 data
drwxrwx---. 2 named named 172 Jul 18 23:02 dynamic
-rw-r-----. 1 root named 102 Jul 18 23:01 magedu.com.zone.bj
-rw-r-----. 1 root named 97 Jul 18 23:01 magedu.com.zone.other
-rw-r-----. 1 root named 100 Jul 18 23:01 magedu.com.zone.sh
-rw-r-----. 1 root named 2253 Apr 5 2018 named.ca
-rw-r-----. 1 root named 152 Dec 15 2009 named.empty
-rw-r-----. 1 root named 152 Jun 21 2007 named.localhost
-rw-r-----. 1 root named 168 Dec 15 2009 named.loopback
drwxrwx---. 2 named named 6 Apr 1 09:35 slaves
# 启动服务
[root@DNS ~]# systemctl start named
6、测试
# 在host1上测试,ip为192.168.1.2,所以返回结果是192.168.1.200
[root@host1 ~]# host www.magedu.com
www.magedu.com has address 192.168.1.200
# 在host2上测试,ip为172.16.0.2,所以返回结果是172.16.0.200
[root@host2 ~]# host www.magedu.com
www.magedu.com has address 172.16.0.200
# 在host3上测试,ip为192.168.10.128,所以返回结果是8.8.8.8
[root@host3 ~]#host www.magedu.com
www.magedu.com has address 8.8.8.8
3、编译安装Mariadb,并启动后可以正常登录
1、安装需要的软件包
[root@centos7 ~]# yum install bison bison-devel zlib-devel libcurl-devel libarchive-devel boost-devel gcc gcc-c++ cmake ncurses-devel gnutls-devel libxml2-devel openssl-devel libevent-devel libaio-devel -y
2、创建mysql用户
指定mysql用户的主目录为/data/mysql,但是不要创建
[root@centos7 ~]# useradd -r -s /sbin/nologin -d /data/mysql mysql
3、创建存放数据库的目录
[root@centos7 ~]# mkdir /data/mysql
4、修改数据库目录的权限
[root@centos7 ~]# chown mysql.mysql /data/mysql/
5、编译安装
编译安装10.2.25版本
# 解压软件包
[root@centos7 data]# tar xf mariadb-10.2.25.tar.gz
# 开始编译安装,时间有点长
[root@centos7 data]# cd mariadb-10.2.25/
[root@centos7 mariadb-10.2.25]# cmake . > -DCMAKE_INSTALL_PREFIX=/app/mysql > -DMYSQL_DATADIR=/data/mysql/ > -DSYSCONFDIR=/etc/ > -DMYSQL_USER=mysql > -DWITH_INNOBASE_STORAGE_ENGINE=1 > -DWITH_ARCHIVE_STORAGE_ENGINE=1 > -DWITH_BLACKHOLE_STORAGE_ENGINE=1 > -DWITH_PARTITION_STORAGE_ENGINE=1 > -DWITHOUT_MROONGA_STORAGE_ENGINE=1 > -DWITH_DEBUG=0 > -DWITH_READLINE=1 > -DWITH_SSL=system > -DWITH_ZLIB=system > -DWITH_LIBWRAP=0 > -DENABLED_LOCAL_INFILE=1 > -DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock > -DDEFAULT_CHARSET=utf8 > -DDEFAULT_COLLATION=utf8_general_ci
[root@centos7 mariadb-10.2.25]# make && make install
6、修改环境变量,添加命令目录
[root@centos7 ~]# echo ‘PATH=/app/mysql/bin:$PATH‘ > /etc/profile.d/mysql.sh
[root@centos7 ~]# . /etc/profile.d/mysql.sh
[root@centos7 ~]# echo $PATH
/app/mysql/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
7、生成数据库文件
[root@centos7 ~]# /app/mysql/scripts/mysql_install_db --datadir=/data/mysql/ --user=mysql
8、准备配置文件
[root@centos7 ~]# cp /app/mysql/support-files/my-huge.cnf /etc/my.cnf
9、准备启动脚本
[root@centos7 ~]# cp /app/mysql/support-files/mysql.server /etc/init.d/mysqld
# 注册到chkconfig
[root@centos7 ~]# chkconfig --add mysqld
# 启动数据库
[root@centos7 ~]# service mysqld start
10、登录测试
[root@centos7 ~]# mysql
Welcome to the MariaDB monitor. Commands end with ; or g.
Your MariaDB connection id is 10
Server version: 10.2.25-MariaDB-log Source distribution
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type ‘help;‘ or ‘h‘ for help. Type ‘c‘ to clear the current input statement.
MariaDB [(none)]>
以上是关于第十四周的主要内容,如果未能解决你的问题,请参考以下文章