一、简述DNS服务器原理,并搭建主-辅服务器。
原理:客户机提出域名解析请求,并将该请求发送给本地的域名服务器。当本地的域名服务器收到请求后,就先查询本地的缓存,如果有该纪录项,则本地的域名服务器就直接把查询的结果返回。如果本地的缓存中没有该纪录,则本地域名服务器就直接把请求发给根域名服务器,然后根域名服务器再返回给本地域名服务器一个所查询域(根的子域) 的主域名服务器的地址。本地服务器再向上一步返回的域名服务器发送请求,然后接受请求的服务器查询自己的缓存,如果没有该纪录,则返回相关的下级的域名服务器的地址。重复第四步,直到找到正确的纪录。本地域名服务器把返回的结果保存到缓存,以备下一次使用,同时还将结果返回给客户机。
1.搭建主DNS服务器 ;准备工作关闭SElinux、关闭防火墙、时间同步
1)安装软件包:yum install bind bind-utils -y
2)修改bind 主配置文件:# vim /etc/named.conf
注释掉下面两行;设置只允许从服务器进行区域传输 allow-transfer { 从服务器IP;};
listen-on port 53 { 127.0.0.1; };
allow-query { localhost; };
在区域配置文件里添加要解析的域名配置:# vim /etc/named.rfc1912.zones
zone后面" "里写域名;file" "里写区域数据库文件名


3)配置区域数据库文件:(在/var/named/下)
可以复制模板数据库文件,使用-p保留文件属性;或者自己创建文件,然后修改权限
# cp -p /var/named/named.localhost /var/named/test.org.zone
# vim test.org.zone

4)检查配置文件和数据库文件格式,并启动服务
# named-checkconf 主配置文件语法检查
# named-checkzone test.org /var/named/test.org.zone 解析库文件语法检查
# systemctl start named #第一次启动服务

2.从DNS服务器配置;准备工作关闭SElinux、关闭防火墙、时间同步
1)安装软件包:yum install bind bind-utils -y
2)修改主配置文件:# vim /etc/named.conf
注释掉下面两行;设置不允许其它主机进行区域传输 allow-transfer { none;};
// listen-on port 53 { 127.0.0.1; };
// allow-query { localhost; };

区域配置文件里添加:# vim /etc/named.rfc1912.zones
zone "test.org" {
type slave;
masters { 主服务器;};
file "slaves/test.org.slave";
};

3)修改主服务器区域数据库文件版本号+1
可以添加一条资源记录用于测试
www A 10.0.0.12

# systemctl start named #启动服务
ls /var/named/slaves/test.org.slave #查看区域数据库文件是否生成
测试是否成功
修改网卡配置文件里的DNS;重新加载配置文件;重启网卡;


关闭主DNS服务器后

二、搭建并实现智能DNS。
1)准备环境:关闭SElinux、关闭防火墙、时间同步
DNS主服务器和web服务器1(两块网卡):10.0.0.12/24、192.168.3.90/24
# yum install -y httpd
# echo www.test.org.other > /var/www/html/index.html
web服务器2:10.0.0.11/24
# yum install -y httpd
# echo www.test.org.sz > /var/www/html/index.html
web服务器3:192.168.3.87/24
# yum install -y httpd
# echo www.test.org.sh > /var/www/html/index.html
DNS客户端1:10.0.0.13/24
DNS客户端2:192.168.3.89/24
2)配置主服务器
# vim /etc/named.conf
#注释掉下面两行
listen-on port 53 { 127.0.0.1; };
allow-query { localhost; };


3)实现区域配置文件
# vim /etc/named.rfc1912.zones.sz

# vim /etc/named.rfc1912.zones.sh

# vim /etc/named.rfc1912.zones.other

# chgrp named /etc/named.rfc1912.zones.sz
# chgrp named /etc/named.rfc1912.zones.sh
# chgrp named /etc/named.rfc1912.zones.other

4)创建区域数据库文件
# vim /var/named/test.org.zone.sz
# vim /var/named/test.org.zone.sh
# vim /var/named/test.org.zone.other

5)主配置文件语法检查;解析库文件语法检查;然后启动服务

# systemctl start named 启动服务
6)测试
#分别在三台主机上访问
#DNS客户端1:10.0.0.13/24 实现,确保DNS指向10.0.0.12

#DNS客户端2:192.168.3.89/24 实现,确保DNS指向192.168.3.90

#DNS客户端3:10.0.0.12实现,确保DNS指向127.0.0.1

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

三、NAT原理总结
实现私有地址网络内所有计算机与Internet的通信需求;借助于NAT将自动修改IP报文的源IP地址和目的IP地址,Ip地址校验则在NAT处理过程中自动完成;
请求报文:修改源/目标IP,由定义如何修改
响应报文:修改源/目标IP,根据跟踪机制自动实现
SNAT:让本地网络中的主机通过某一特定地址访问外部网络,实现地址伪装,请求报文:修改源IP
DNAT:把本地网络中的主机上的某服务开放给外部网络访问(发布服务和端口映射),但隐藏真实IP,请求报文:修改目标IP
PNAT: 端口和IP都进行修改
四、iptables实现SNAT和DNAT,并对规则持久保存。
开启ip_forward
# vim /etc/sysctl.conf
net.ipv4.ip_forward=1
使文件生效# sysctl -p
实现SNAT
# iptables -t nat -A POSTROUTING -s 10.0.0.0/24 ! -d 10.0.0.0/24 -j SNAT --to-source 172.18.1.6
实现DNAT
# iptables -t nat -A PREROUTING -d 192.168.0.8 -p tcp --dport 80 -j DNAT --to-destination 10.0.0.7:8080
持久保存:
先屏蔽firewalld和nftables服务
systemctl mask firewalld.service nftables.service
安装iptables-services
yum install iptables-services -y
手动定义好规则后然后加载到文件里
iptables-save > /etc/sysconfig/iptables
设置开机自动启动服务
systemctl enable iptables.service