目录
2.DNS主从配置: 需要两台机器: 一台为主dns服务器,一台为从DNS服务器
3.使用httpd服务演示安全上下文值的设定(selinux)
4.使用web服务端口的改变来演示端口的设定(selinux)
1.DNS的解析流程
第一步:浏览器将会检查缓存中有没有这个域名对应的解析过的IP地址,如果有该解析过程将会结束。浏览器缓存域名也是有限制的,包括缓存的时间、大小,可以通过TTL属性来设置。
第二步:如果用户的浏览器中缓存中没有,操作系统会先检查自己本地的hosts文件是否有这个网址映射关系,如果有,就先调用这个IP地址映射,完成域名解析。
第三步:如果hosts里没有这个域名的映射,则查找本地DNS解析器缓存,是否有这个网址映射关系,如果有,直接返回,完成域名解析。
本地dns缓存:
C:\Users\俗人不俗>ipconfig /displaydns #显示本地dns缓存 …… C:\Users\俗人不俗>ipconfig /flushdns #刷新缓存 Windows IP 配置 已成功刷新 DNS 解析缓存。
第四步:如果hosts与本地DNS解析器缓存都没有相应的网址映射关系,首先会找TCP/ip参数中设置的首选DNS服务器,在此我们叫它本地DNS服务器,此服务器收到查询时,如果要查询的域名,包含在本地配置区域资源中,则返回解析结果给客户机,完成域名解析,此解析具有权威性。
第五步:如果要查询的域名,不由本地DNS服务器区域解析,但该服务器已缓存了此网址映射关系,则调用这个IP地址映射,完成域名解析,此解析不具有权威性。
第六步:如果本地DNS服务器本地区域文件与缓存解析都失效,则根据本地DNS服务器的设置(是否设置转发器)进行查询,如果未用转发模式,本地DNS就把请求发至13台根DNS,根DNS服务器收到请求后会判断这个域名(.com)是谁来授权管理,并会返回一个负责该顶级域名服务器的一个IP。本地DNS服务器收到IP信息后,将会联系负责.com域的这台服务器。这台负责.com域的服务器收到请求后,如果自己无法解析,它就会找一个管理.com域的下一级DNS服务器地址给本地DNS服务器。当本地DNS服务器收到这个地址后,就会找域名域服务器,重复上面的动作,进行查询,直至找到域名对应的主机。
第七步:如果用的是转发模式,此DNS服务器就会把请求转发至上一级DNS服务器,由上一级服务器进行解析,上一级服务器如果不能解析,或找根DNS或把转请求转至上上级,以此循环。不管是本地DNS服务器用是是转发,还是根提示,最后都是把结果返回给本地DNS服务器,由此DNS服务器再返回给客户机。
2.DNS主从配置: 需要两台机器: 一台为主dns服务器,一台为从DNS服务器
1、配置主服务器
#安装bind
[root@localhost ~]# yum install bind -y
#配置主服务器的主配置文件
[root@server ~]# vim /etc/named.conf
options {
listen-on port 53 { 192.168.5.128; };#修改为主服务器的ip
#listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
secroots-file "/var/named/data/named.secroots";
recursing-file "/var/named/data/named.recursing";
allow-query { 192.168.5.0/24; };#配置允许查询的网段
allow-transfer { 192.168.5.129; }; #添加这里,从DNS的IP地址
……
#添加这里
zone "openlab.com" IN {
type master;
file "openlab.zone";
}
#配置主服务器的openlab区域文件
[root@server ~]# vim /var/named/openlab.zone
$TTL 1D
@ IN SOA dns.openlab.com. test.163.com (
10
1D
1H
1W
3H )
IN NS dns.openlab.com.
IN MX 10 mail.openlab.com.
IN NS dns2.openlab.com.
mail.opwnlab.com. IN A 192.168.5.200
dns.openlab.com. IN A 192.168.5.128
dns2.openlab.com. IN A 192.168.5.129
ftp IN A 192.168.5.200
dhcp IN A 192.168.5.200
www IN A 192.168.5.200
web IN CNAME www
#重启服务
[root@server ~]# systemctl restart named
#验证能否解析
[root@server ~]# nslookup dns2.openlab.com 192.168.5.128
Server: 192.168.5.128
Address: 192.168.5.128#53
Name: dns2.openlab.com
Address: 192.168.5.129 #可以解析,配置正确
2、配置从服务器
#安装bind
[root@localhost ~]# yum install bind -y
#添加配置从服务器的主配置文件
[root@client ~]# vim /etc/named.conf
……
zone "openlab.com" IN {
type slave;
masters { 192.168.5.128; };
file "slaves/openlab.zone";
};
……
#重启服务
[root@server ~]# systemctl restart named
#查看/var/named/slaves目录
[root@client ~]# cd /var/named/slaves/
[root@client slaves]# ll
total 4
-rw-r--r--. 1 named named 522 Jul 30 15:12 openlab.zone
3.使用httpd服务演示安全上下文值的设定(selinux)
服务端的IP地址为172.24.8.130,服务端的设置如下:
[root@localhost ~]# systemctl restart firewalld
[root@localhost ~]# firewall-cmd --permanent --add-service=http
success
[root@localhost ~]# firewall-cmd --reload
success
[root@localhost ~]# getenforce
Enforcing
[root@localhost ~]# vim /etc/httpd/conf.d/host.conf
<directory /www>
allowoverride none
require all granted
</directory>
<virtualhost 192.168.5.128:80>
documentroot /www/80
servername 192.168.5.128
</virtualhost>
[root@localhost ~]# mkdir -pv /www/80
[root@localhost ~]# echo this is 80 > /www/80/index.html
[root@localhost ~]# systemctl restart httpd
通过客户端测试,只能访问到http服务的测试界面 修改自定义目录的安全上下文的值:
[root@localhost ~]# chcon -t httpd_sys_content_t /www/ -R
也可以将自定义目录的安全上下文的值按照/var/www/html文件修改:
[root@localhost ~]# chcon -R --reference=/var/www/html /www
修改之后即可成功访问。
4.使用web服务端口的改变来演示端口的设定(selinux)
[root@localhost ~]# vim /etc/httpd/conf.d/host.conf
[root@localhost ~]# mkdir /www/8888
[root@localhost ~]# echo this is 8888 > /www/8888/index.html
[root@localhost ~]# systemctl restart httpd
#服务重启失败,查看日志
[root@localhost ~]# tail -f /var/log/messages
[root@localhost ~]# firewall-cmd --permanent --add-port=8888/tcp
success
[root@localhost ~]# firewall-cmd --reload
success
#添加8888端口为服务端口:
[root@localhost ~]# semanage port -a -t http_port_t -p tcp 8888
[root@localhost ~]# systemctl restart httpd
#访问成功