RHCE进阶必备:教你一分钟了解DNS流程,DNS主从服务器,selinux的关键作用和详细理解

目录

1.DNS的解析流程

2.DNS主从配置

3.使用httpd服务演示安全上下文值的设定(selinux)

4.使用web服务端口的改变来演示端口的设定(selinux)


1.DNS的解析流程

浏览器缓存检查

浏览器会首先搜索浏览器自身的 DNS 缓存,缓存时间比较短,大概只有1分钟,且只能容纳 1000 条缓存,看自身的缓存中是否有对应的条目,而且没有过期,如果有 且没有过期则解析到此结束。

操作系统缓存检查 + 本机hosts 解析

如果浏览器的缓存里没有找到对应的条目,操作系统也会有一个域名解析的过程,那么浏览器先搜索操作系统的 DNS 缓存中是否有这个域名对应的解析结果,如果找到且没有过期则停止搜索,解析到此结束。

在 Linux 中可以通过 /etc/hosts 文件来设置,可以将任何域名解析到任何能够访问的IP 地址。如果在这里指定了一个域名对应的 IP 地址,那么浏览器会首先使用这个 IP地址。当解析到这个配置文件中的某个域名时,操作系统会在缓存中缓存这个解析结果,缓存的时间同样是受这个域名的失效时间和缓存的空间大小控制的。

第一步

客户端通过浏览器访问域名为 www.baidu.com (http://www.baidu.com) 的网站,发起查询该域名的 IP 地址的 DNS 请求。该请求发送到了本地 DNS 服务器上。本地 DNS 服务器会首先查询它的缓存记录,如果缓存中有此条记录,就可以直接返回结果。如果没有,本地 DNS 服务器还要向 DNS 服务器进行查询。

第二步

本地 DNS 服务器向根服务器发送 DNS 请求,请求域名为 www.baidu.com (http://www.baidu.com) 的 IP 地址。

第三步

根服务器经过查询,没有记录该域名及 IP 地址的对应关系。但是会告诉本地 DNS 服务器,可以到顶级域名服务器上继续查询,并给出域名服务器的地址(.com 服务器)。

第四步

本地 DNS 服务器向 .com 服务器发送 DNS 请求,请求域名 www.baidu.com (http://www.baidu.com) 的 IP 地址。

第五步

com 服务器收到请求后,不会直接返回域名和 IP 地址的对应关系,而是告诉本地DNS 服务器,该域名可以在 baidu.com 域名服务器上进行解析获取 IP 地址,并告诉 baidu.com 域名服务器的地址。

第六步

本地 DNS 服务器向 baidu.com 域名服务器发送 DNS 请求,请求域名 www.baidu.com (http://www.baidu.com) 的 IP 地址。

第七步

baidu.com 服务器收到请求后,在自己的缓存表中发现了该域名和 IP 地址的对应关系,并将 IP 地址返回给本地 DNS 服务器。

第八步

本地 DNS 服务器将获取到与域名对应的 IP 地址返回给客户端,并且将域名和 IP 地址的对应关系保存在缓存中,以备下次别的用户查询时使用。

 - 图源自网络


2.DNS主从配置

需要两台机器: 一台为主dns服务器,一台为从DNS服务器

主服务器:

[root@server named]# vim /etc/named.conf 

 

从服务器:

[root@server etc]# yum install bind -y                #安装DNS服务软件

[root@server slaves]# vim /etc/named.conf 

 [root@server slaves]# named-checkconf                  #检查配置文件
[root@server slaves]# systemctl restart named  
[root@server slaves]# cd /var/named/slaves/
[root@server slaves]# ll                                              #两个文件都是从主服务器同步过来的
total 8
-rw-r--r--. 1 named named 347 Jul 30 21:00 30.168.192.zone
-rw-r--r--. 1 named named 502 Jul 30 21:00 openlab.zone

[root@server slaves]# nslookup dhcp.openlab.com. 192.168.30.133
Server:        192.168.30.133
Address:    192.168.30.133#53

Name:    dhcp.openlab.com
Address: 192.168.30.100

如果主服务器上的openlab.zone 中的 serial的值大于从服务器的serial的值,那么从服务器会从主服务器上自动同步文件,一般按照我们设定的一天同步($TTL 1D),我们也可以通过强制重启服务来快速达到同步的目的。

SELINUX:

 SELinux是Security-Enhanced Linux的缩写,意思是安全强化的linux。
 SELinux 主要由美国国家安全局(NSA)开发,当初开发的目的是为了避免资源的误用。
系统资源都是通过程序进行访问的,如果将/var/www/html/权限设置为777,代表所有程序均可对该目录访问,如果已经启动www服务器软件,那么该软件触发的进程将可以写入该目录,而该进程是对整个internet提供服务的。NSA为了控制这方面的权限与进程的问题,就使用linux来作为研究目标,最后将研究的成果整合到linux内核里面去,也就是SELinux。
 SELinux是对程序、文件等权限设置依据的一个内核模块。由于启动网络服务的也是程序,因此刚好也是能够控制网络服务能否访问系统资源的一道关卡。


3.使用httpd服务演示安全上下文值的设定(selinux)

[root@server 100]# cd /etc/httpd/conf.d
[root@server conf.d]# vim myhosts.conf 
[root@server conf.d]# systemctl restart httpd

当我们关闭防火墙和设置了SELINUX的状态后,我们可以正常访问。但是当我们防火墙正常工作的时候包括SELINUX的状态为开机默认时,我们都无法访问到文件的内容。原因在于,SELINUX

处于targeted的策略,也就是httpd进程的domain和/www/ip/100/index.html的第三个字段不能匹配,就是type字段不能匹配。 

[root@server sbin]# ls -Z /usr/sbin/httpd 
system_u:object_r:httpd_exec_t:s0 /usr/sbin/httpd
[root@server sbin]# ls -Z /www/ip/100/index.html 
unconfined_u:object_r:default_t:s0 /www/ip/100/index.html
 

[root@server sbin]# chcon -t httpd_sys_content_t /www/ -R  #将/www/下的所有文件和目录的type改成httpd_sys-content_t,然后就可以和/usr/sbin/httpd的domain相匹配

这样就算我们的防火墙正常工作,SELINUX的状态为Enforcing的情况下,我们仍然可以通过httpd访问到我们的文件内容。
 


4.使用web服务端口的改变来演示端口的设定(selinux)

#打开防火墙和设置selinux的状态

[root@localhost ~]# vim /etc/httpd/conf.d/host.conf

#添加服务/www/8888的权限

#指定需要执行文件的路径
[root@localhost ~]# mkdir /www/8888
[root@localhost ~]# echo this is 8888 > /www/8888/index.html
[root@localhost ~]# systemctl restart httpd

                                                                 #添加8888为服务端口

[root@localhost ~]# semanage port -a -t http_port_t -p tcp 8888
[root@localhost ~]# systemctl restart httpd

这样就可以访问成功了!!!!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

shadow_58

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值