linux8——dns的配置与SSH

一.DNS域名解析服务

怎么去理解dns的作用,或者他所处的位置呢,这里我放两张图
请添加图片描述

请添加图片描述

上图是使用小明同学捡到小红同学的钱的实例来说明一条http请求过程需要走那些流程。

小明同学捡到钱后,自己不能一个人去找失主,就同父母说,父母让他去警察局问问有没有人丢钱(相当于根据域名去查询ip地址),得到那个小区丢钱的信息后,直接过去(根据ip地址去),但是到小区门口就不知道家住在哪里,所以找居委会阿姨(如果代理服务器已经存在缓存中的数据直接返回,没有数据,代理服务器会直接和服务器联系获取数据),居委会阿姨发现没有她位置,就找小红同学的家长,小红同学家长带他们找到正在找钱的小红同学,小红同学找到丢失的钱(数据被找到)。

转自http://t.csdn.cn/BWjzw

请添加图片描述

1.bind域名服务基础

(1)DNS系统的作用及类型

请添加图片描述
请添加图片描述请添加图片描述
请添加图片描述
1.递归查询:客户机向DNS服务器发起查询请求,DNS服务器不知道,DNS去询问别的DNS服务器。
2.迭代查询:客户机向DNS服务器发起查询请求,DNS服务器不知道,DNS服务器让你自己去问别的DNS服务器。

(2)bind服务的配置文件

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
没使用牢笼/etc/named,conf
使用牢笼之后/var/named/chroot/etc/named/

请添加图片描述
请添加图片描述

在DNS的全局配置文件/etc/named.conf中,如果我们使用了监牢,配置文件在/var/named/chroot/etc/named.conf中。options选项是全局配置参数,其中重要参数如下:
listen-on port:指定DNS要监听的IP地址和端口号,在配置时必须将原始配置文件中的127.0.0.1改为any或者指定网段的地址,否则DNS无法正常对外提供服务。
allow-query:指定允许访问的客户端网址,在配置时如同listen-on port参数一样,也是必须将127.0.0.1修改称为any或者别的网段的地址。
recursion:表示是否允许DNS服务器采用递归查询的方式,此选项默认是yes,表示支持递归查询的方式,但是如果配置时同时启用了加密功能,则递归配置不生效。
**dnssec-enable、dnssec-validation:**表示是否启用DNS加密。
**bind-keyfile:**表示DNS加密时使用的加密文件。

请添加图片描述
请添加图片描述
请添加图片描述

zone是区域配置参数,重要参数如下:
type:指定区域的类型,对于该区域有重要作用。type字段的值可以为以下5种:
①Master:表示为主DNS服务器,拥有区域数据文件,并向从DNS服务器进行文件备份。
②Slave:表示为从DNS服务器,从DNS服务器上本身没有区域数据文件,但是该服务器会从主DNS服务器上下载区域数据文件,也能够提供DNS服务。
③Stub:stub区域与Slave区域类似,两者之间的区别在于Stub只复制DNS服务器上的NS记录而不是复制所有区域数据。
④Forward:forward区域是转发区域,类似于一个DNS的缓存服务器,采用该配置的DNS区域会从外网其他DNS服务器复制数据并起到向导的作用。一个forward区域可以包含一个forward或者forwards语句,这些语句指定了查询的域。
⑤Hint:根域名服务器的初始化组指定使用的线索区域,当服务器启动时,还会使用跟线索查找根域名服务器,并找到最近的根服务器列表。
file:配置DNS服务器生成的各项记录数据文件名称
allow-update:当配置DNS主从架构时使用,在主服务器上配置允许进行同步的从服务器。

请添加图片描述

请添加图片描述

之后,我们需要写正向解析文件和反向解析文件,关于这两个文件,文件名应该与主配置文件中的保持一致,并且在/var/named目录下。正向解析文件可以直接复制usr/share/doc/bind*/sample/var/named/named.localhost,反向解析文件可以直接复制usr/share/doc/bind*/sample/var/named/named.loopback。我们在复制时,可以使用cp -a命令,连带着文件属性一起复制,关于这两个文件,不管采用何种方式创建、授权,都必须要保证named用户有读的权限,否则DNS服务就会启动失败。

在该配置文件第一行,TTL为外DNS服务器在本DNS服务器的查询结果的缓存时间,单位为秒。
配置文件上半部分,为SOA记录,
serial为修改次序,如果做DNS主从架构,则每次修改该号码加1,这样DNS从服务器就可以通过号码得知记录的新旧,从而决定自身是否要同步信息。
refresh为DNS主从同步时的同步时间,
retry表示DNS从服务器更新失败后的重试时间,
expire为数据过期时间,即当超过该时间后,从DNS服务器会放弃与主DNS服务器的重试链接。
minimum为最小的TTL值。前面的单位D表示天,H表示小时,W表示周。
后面的大都是NS记录和A记录需要注意的是每个域名的后面必须以“.”结束。
请添加图片描述
 IN:可以省略
 * :找不到的网站统一找到 *所对应的网站去

请添加图片描述

(2)构建缓存域名服务器

请添加图片描述

(5)构建主域名服务器

主从服务器是一起的
请添加图片描述

请添加图片描述
1.4是从服务器ip

(6)构建从域名服务器

1.确认本机网络地址,主机映射,默认dns服务器地址
2.建立主配置文件
3.启动named服务,查看区域数据文件是否下载成功
4.验证从域名服务器

  • 在客户及中将dns服务器设为从服务器
  • 使用nslookup测试域名解析

请添加图片描述
1.3是主服务器ip

二.远程访问及控制

1.SSH远程管理

请添加图片描述

(1)配置OpenSSH服务端

请添加图片描述
配置文件的路径/etc/ssh/sshd config

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

请添加图片描述

(2)使用SSH客户端程序

请添加图片描述

(3)密钥对验证的SSH体系

请添加图片描述

[root@localhost ~]# ssh-keygen#也可以使用ssh-keygen -t rsa来指定密钥算法,默认就是rsa算法
[root@gongjunhe named]# ssh-keygen 
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 存放位置
Enter passphrase (empty for no passphrase): 设置此秘钥的密码,直接回车
Enter same passphrase again:   重复密码,直接回车
Your identification has been saved in /root/.ssh/id_rsa.  私钥文件
Your public key has been saved in /root/.ssh/id_rsa.pub.  公钥文件
The key fingerprint is:
SHA256:RuXqbw09risWTXXSEbg1WmGco/8w5pl3wcwl44UJ20A root@gongjunhe
The key's randomart image is:
+---[RSA 2048]----+
|          ..E+== |
|         o  *.X  |
|        . .. & = |
|       . .. = * o|
|        So . o++.|
|       o. o o *= |
|        .. + + *.|
|        o.. o + +|
|       . o+o   ..|
+----[SHA256]-----+
[root@localhost .ssh]# ssh-copy-id -i 192.168.18.1
[root@localhost ~]# ssh 192.168.18.1

其他用户

[root@localhost ssh]# ssh-copy-id -i test@192.168.18.1

实验dns

实验目的
1.构建dns服务器
2构建缓存域名服务器
3构建主从域名服务器

首先每个实验的开始我们都需要安装相关的工具
yum install bind -y
yum install bind-chroot -y
我们之所以要下载bind-chroot是因为他是DNS的补充软件,主要实现了牢笼机制
所谓牢笼机制就是创建一个目录,作为DNS服务的根目录,以防止当DNS服务被攻击后波及系统安全
请添加图片描述
然后就是配置文件了,因为我们用了牢笼,所以我们配置的文件要放在目录/var/named/chroot/etc/中
的named.conf。一般来说这个文件夹里面应该是没有文件的。这个配置文件也有模板,模板文件位置在 /usr/share/doc/bind-9.11.4/sample/etc中的named.conf,如果想参考的话可以复制文件,这里命令就不打了,大家可以自己练习。
我们用vi编辑器进入 vim /var/named/chroot/etc/named.conf
请添加图片描述
因为配置的dns服务器很简单,所以不需要太多东西,写一些最基本的就好了,需要注意的
稍作解释,directory 是解析文件所在位置,如果你复制了模板的话,一般默认就是这个样子的,是不用改的,zone之后的双引号中的名字可以随意命名,我们最好命名的和文件一样,这样以后zone文件多的时候方便管理,zone中的 type 的master代表了自己是主服务器,接下来这个很重要file之后的名字 一定要和一会要配置的解析文件的文件名字一样,当时我不理解含义,报错了很长时间。

接下来就是配置解析文件,解析文件要在目录/var/named/chroot/var/named中,同样也没有文件,我们这个最好复制一下模板,这个自己敲很麻烦。
这个的模板在/usr/share/doc/bind-9.11.4/sample/var/named/中,文件是named.localhost
我们可以在复制的时候直接改名,因为需要的目录是空的,直接改成我们上面所配置的名字,在这里我改成了gsy.com.zone。
请添加图片描述
在复制好后,打开文件内容应该是这样的
在这里,我们只配置正向文件。
我们需要改成下面这个样子
请添加图片描述
把一些域名的指向设置到相应的ip地址并且给www域名设置一个别名abc
在完成这个之后我们还要重新配置一下网关,因为我们要把自己设置为dns主服务器,所以肯定得设置自己的dns为自己的ip地址,而不是外部的dns服务器
请添加图片描述
在改好设置后重启网关
请添加图片描述
然后启动我们的named-chroot服务
请添加图片描述
启动成功之后,我们就可以尝试用host 去链接我们在解析文件中所设置的域名看是不是和自己输入的ip地址一样

请添加图片描述
这代表我们成功了。
其实在这之间我发生很多报错,举几个例子和解决的方法吧。
有一个问题是在服务也启动了,但是host访问的域名所得到的ip地址不是自己设置的
这个原因是因为我们需要把将/etc/resolv.conf文件里的所有内容删除(在vi命令模式按两下dd表示删除一整行),再输入以下内容并保存退出
请添加图片描述
因为我们网关所配置的dns是自己的IP地址,所以在这里我们也要配置成自己的ip地址
这只是其中一个报错,而更多方法就是查看日志

可以在程序运行时单独打开一个端口 输入tailf /var/log/messages 命令来打开日志文件
请添加图片描述
我们可以多敲几行空格来区分每次运行程序,如果运行程序失败,我们就可以在日志文件中寻找报错

刚刚正向解析配置完了,我们来改一下

逆向解析

在这里插入图片描述

options {
        directory "/var/named";
};
zone "test1.com" {
        type master;
        file "test1.com.zone";
        allow-transfer {any;};
};
zone "126.168.192.in-addr.arpa" {
        type master;
        file "test1.com.arpa";
};

请添加图片描述

$TTL 1D
@       IN SOA  @ rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      test1.com.
        A       192.168.126.137
77  IN  PTR       qwe.test1.com.
88  IN  PTR       asd.test1.com.
99  IN  PTR       zxc.test1.com.

在这里插入图片描述

到这里第一个实验就完成了,我们开始进行第二个目标
我们打开一个新的虚拟机
并且下载好bind 和bind-chroot包
然后我们还是打开相同目录的named.conf文件
改成这个样子,然后保存退出

在这里插入图片描述然后
在经过我们尝试之后发现ip地址和我主机所设置的ip地址不同,推测是用了外部dns服务器

请添加图片描述
所以我们

请添加图片描述请添加图片描述
改成主机的ip地址,保存退出
再次尝试,和主机配置一样成功
请添加图片描述

好,我们接着做第三个实验
我们需要在主机的named.conf中添加从机 的ip地址
我们就去从机用ifconfig查一下

请添加图片描述

查到之后在主机把named.conf改为

请添加图片描述
然后到从机把named.conf设置为

请添加图片描述
红色地区填主机ip地址
设置好后打开named服务
请添加图片描述

启动成功后
我们进入/var/named/chroot/var/named/slaves目录

请添加图片描述
查看到这个文件,代表我们配置成功

实验ssh

首先先尝试直接连接
先ping测试下看看网络是否通畅
能ping通的话
客户机输入命令ssh root@192.168.1.99(这里是我主机自己设置的ip)
然后会弹出一行要求输入密码,在输入后就可以登陆了

那我们如果想要不要密码登陆怎么办呢
有两种方法
第一种是很暴力的,修改配置文件,直接在配置文件中设置登陆不需要输入密码,这样虽然不需要密码,可是却特别的不安全。
那么有没有类似于qq那种记住密码自动登陆的方法呢
第二种就是利用公私钥的加密来创建一个方便的通道,以后我们登陆这个账户都不用输入密码

那么要先在客户机创建公私钥

请添加图片描述
接着把公钥发给主机
请添加图片描述
在这里我们需要输入主机所想登陆的账号和他所在ip

成功之后我们链接测试一下
请添加图片描述
成功连接

进阶课后习题:
为Web服务器192.168.3.7配置OpenSSH服务
允许用户jacky从主机192.168.3.110采用密钥对验证登录
禁止其他所有用户远程登录

1.编辑OpenSSH服务器配置文件vim/etc/ssh/sshd_config
2.修改如下配置
PubkeyAuthenticationyes//启用密钥对验证登录
PermitRootLoginno//禁止root用户远程登录
AllowUsersjacky@192.168.3.110//仅允许jacky从192.168.3.110主机登录
4.重新加载OpenSSH systemctlreloadsshd
5.在主服务器创建jacky用户使用useradd jacky创建,
在主服务器创建jacky密码。Passwd jacky
也可以在图形化界面创建新的jacky用户
6.在从服务器创建密钥ssh-keygen一路回车创建
7.在从服务器将密钥传给主服务器ssh-copy-id-I192.168.3.7
8.通过从服务器登录ssh jacky@192.168.3.7

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值