学习第九周

1、简述DNS服务器原理,并搭建主-辅服务器。

DNS查询分为两种

  • 递归查询:一般客户机和本地DNS服务器之间属于递归查询,即当客户机向DNS服务器发出请求后,若DNS服务器本身不能解析,则会向另外的DNS服务器发出查询请求,得到最终的肯定或否定的结果后转交给客户机。此查询的源和目标保持不变,为了查询结果只需要发起一次查询。
  • 迭代查询:一般情况下(有例外)本地的DNS服务器向其它DNS服务器的查询属于迭代查询,如:若对方不能返回权威的结果,则它会向下一个DNS服务器(参考前一个DNS服务器返回的结果)再次发起进行查询,直到返回查询的结果为止。此查询的源不变,但查询的目标不断变化,为查询结果一般需要发起多次查询。
    客户端到本地DNS服务器是属于递归查询,而DNS服务器之间的交互查询就是迭代查询。

完整查询过程如下:

  1. 客户端想访问www.domain.com,先去查看本机hosts有没有对应的记录,如果hosts没有就访问配置文件写的本地DNS服务器。
  2. 本地DNS服务器如果有记录就返回给客户端,如果没有记录,根据本地DNS服务器是否配置转发器进行访问,如果没有配置就去访问13台根DNS服务器。
  3. 根DNS服务器收到请求后会判断.com是谁来授权管理,返回一个负责该顶级域名服务器的一个IP。
  4. 负责.com域的服务器收到请求如果无法解析,就会把负责domain.com解析的DNS服务器地址返回给本地DNS服务器。
  5. 本地DNS服务器继续访问负责domain.com域的服务器,负责domain.com域的服务器的配置文件有对应的www.domain.com的解析地址,返回给本地DNS服务器,本地DNS服务器将信息返回给客户端,并缓存一份记录。

搭建主-辅服务器

  • web:10.0.0.150
  • dns-master:10.0.0.151
  • dns-slave:10.0.0.152
  • client:10.0.0.153

web:

apt install nginx -y
vim /var/www/html/index.html

nginx

dns-master

yum install bind -y
vim /etc/named.conf

dns-master

vim /etc/named.rfc1912.zones

master

cp -a /var/named/named.localhost /var/named/domain.com.zone
vim /var/named/domain.com.zone

master

systemctl start named##第一次
rndc reload##不是第一次

dns-slaver

前几步同master(略)
vim /etc/named.rfc1912.zones

slave

systemctl start named
rndc reload #不是第一次
ls /var/named/slaves/magedu.org.slave

slave

client

修改网卡配置文件
DNS1=10.0.0.151
DNS2=10.0.0.152

client

停止dns-master服务 client再次进行解析

client

2、搭建并实现智能DNS。

  • dns、web-sh:10.0.0.151、192.168.197.129
  • web-bj:10.0.0.150
  • client-sh:192.168.197.128
  • client-bj:10.0.0.152

dns:

vim /etc/named.conf

dns
dns

vim /etc/named.rfc1912.zones.sh

dns

vim /etc/named.rfc1912.zones.bj

dns

vim /var/named/domain.com.zone.sh

dns

vim /var/named/domain.com.zone.bj

dns

web-bj:

安装web服务器,配置主页


web-bj

rndc reload

dns

web-sh:

安装web服务器,配置主页


web-sh

client-bj:

client-bj

client-sh:

client-sh

3、使用iptable实现: 放行ssh,telnet, ftp, web服务80端口,其他端口服务全部拒绝

  • ssh:22/tcp
  • telnet:23/tcp
  • ftp:21/tcp
  • web:80/tcp

iptables -AINPUT -p tcp -m multiport --dports 20:22,80 -j ACCEPT
iptables -AINPUT -p all -j REJECT

iptables

3、NAT原理总结

NAT(Network Address Translation),是指网络地址转换,基本工作原理是当私有网主机和公共网主机通信的IP包经过火墙时,火墙将IP包中的源IP或目的IP在私有IP和NAT的公共IP之间进行转换。NAT有三种类型:静态NAT(Static NAT)、动态地址NAT(Pooled NAT)、网络地址端口转换NAPT(Port-Level NAT),NAPT是使用最普遍的一种转换方式又包含两种转换方式:SNAT和DNAT。

  1. 源NAT(Source NAT,SNAT):修改数据包的源地址。源NAT改变第一个数据包的来源地址,它永远会在数据包发送到网络之前完成,数据包伪装就是一具SNAT的例子。
  2. 目的NAT(Destination NAT,DNAT):修改数据包的目的地址。Destination NAT刚好与SNAT相反,它是改变第一个数据懈的目的地地址,如平衡负载、端口转发和透明代理就是属于DNAT。


    nat

用户使用iptables命令在用户空间设置NAT规则。通过使用用户空间iptables命令,可以构建用户自己的定制NAT规则。所有规则存储在内核空间的nat表中。根据规则所处理的信息包类型,将规则分组在链中。要做SNAT的信息包被添加到POSTROUTING链中。要做DNAT的信息包被添加到PREROUTING链中。直接从本地出站的信息包的规则被添加到OUTPUT 链中。

4、iptables实现SNAT和DNAT,并对规则持久保存。

SNAT:

  • 火墙:10.0.0.151、192.168.197.129
  • web:10.0.0.152
  • client:192.168.197.130

防火墙:

vim /etc/sysctl.conf
net.ipv4.ip_forward=1
sysctl -p
iptables -t nat -A POSTROUTING -s 192.168.197.130/32 -j SNAT --to-source 10.0.0.151

火墙

web:

yum install httpd -y
vim /var/www/html/index.html
this is snat test on 10.0.0.152

删除网关

client:

网关指向火墙
curl 10.0.0.152

client

DNAT:

火墙:10.0.0.151、192.168.197.129
web:10.0.0.152
client:192.168.197.130

防火墙

vim /etc/sysctl.conf
net.ipv4.ip_forward=1
sysctl -p
iptables -t nat -A PREROUTING -d 192.168.197.129 -p tcp --dport 80 -j DNAT --to-destination 10.0.0.152:80

火墙

client:

client

web:

tail /var/log/httpd/access_log

web

防火墙策略持久保存

iptables-save > /data/iptables.txt
vim /etc/rc.d/rc.local
iptables-restore < /data/iptables.txt

iptables

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容