第九周作业
第九周作业
- 述DNS服务器原理,并搭建主-辅服务器。
- 搭建并实现智能DNS。
- 使用iptable实现: 放行ssh,telnet, ftp, web服务80端口,其他端口服务全部拒绝
- NAT原理总结
- iptables实现SNAT和DNAT,并对规则持久保存。
第1题
简述DNS服务器原理,并搭建主-辅服务器
domain name server,用于把域名与IP地址的互相映射。
当client访问一个域名时,首先会查询本机的hosts文件,若hosts文件没有缓存该域名的ip地址,则会想local DNS服务器发起查询。
local DNS服务器查询缓存上是否有该域名对应的ip地址,若有则返回给client,若没有则会向根服务器发起查询,然后将结构返回给client,这是递归模式。
一般情况下本地DNS向其他DNS服务器查询属于迭代查询,若对方无法返回权威结构,则他会向下一个(上级)DNS服务器发起查询,直到查询出结果。
搭建主-副服务器。
###服务安装和基础配置省略
#在/etc/named.conf中注释掉listen ip、allow-query限制。
##主节点
#在/etc/named.conf中添加:安全
allow-transfer {10.0.0.124};
##从节点配置:
#/etc/named.rfc1912.zones中添加
zone "magedu.org" IN {
type slave;
masters {10.0.0.121;};
file "slaves/magedu.org.slave";
};
#在/etc/named.conf中添加:
allow-transfer {none};
##重启服务
rndc reload
systemctl restart named
##检查RR是否同步成功
[root@localhost /var/named/slaves]#ll
total 4
-rw-r--r-- 1 named named 333 May 12 15:04 magedu.org.slave
##client的网卡配置中添加DNS1 DNS2
主DNS服务器修改RR后必须修改“ serial”,slave服务器才会同步,才认为有更新。
注意:master和slave,有的地方用单数,有的地方用复数。slave服务器named.rfc上配置为masters,RR文件夹/vat/named/slaves都为复数。
第2题
搭建并实现智能DNS
1.named.conf配置修改
- 添加acl,划定网段、
- 注释掉 zone “.”域,
- 添加view,view内指定named配置文件.

复制新建各个view指定的named.rfc配置文件
修改named.rfc***文件,添加zone “.”和view的RR文件
修改RR文件,不同的地区对应不同的websrv地址
第3题
使用iptable实现: 放行ssh,telnet, ftp, web服务80端口,其他端口服务全部拒绝
#规则表配置
iptables -P INPUT -j DROP
iptables -t filter -A INPUT -p tcp -m multiport --dport 20:23,80 -j ACCEPT
#保存配置
iptables-save > /date/iptables.rule
echo "iptables-restore < /date/iptables.rule" >> /etc/rc.d/rc.local
chmod +x /etc/rc.d/rc.local
第4题
NAT原理总结
作用:
NAT,network address translation,通过修改chain中的请求报文的源地址或目标地址,实现修改源地址或目标地址。
SNAT,当数据包流出NAT网关时,在POSTROUTING中将数据包中的源IP地址转换为指定的(公网)IP。
DNAT,当数据包流入NAT网关时,在PREROUTING中,将数据包的目的IP修改为指定的IP地址。
第五题
iptables实现SNAT和DNAT,并对规则持久保存。
实验设备:
外网主机:Ubuntu2104:172.16.0.101
firewall: centos8:172.16.0.133、10.0.0.133
内网主机1:centos8 10.0.0.131
内网主机2:centos8 10.0.0.132
实验拓扑
主机配置
##firewall配置
#开启内核转发
[root@firewall ~]#vim /etc/sysctl.conf
[root@firewall ~]#
[root@firewall ~]#sysctl -p
net.ipv4.ip_forward = 1
[root@firewall ~]#
##ubuntu2014配置
#修改/etc/netplan/eth1.ymal配置,网关指向firewall的eht1:172.16.0.133
[zhou@ubuntu101 ~]$cat /etc/netplan/eth1.yaml
# Let NetworkManager manage all devices on this system
network:
version: 2
renderer: NetworkManager
ethernets:
eth1:
addresses:
- 172.16.0.101/24
gateway4: 172.16.0.133
nameservers:
addresses: [172.16.0.1]
##centos8配置,两台均添加网关指向firewall的eth1:10.0.0.133
[root@localhost ~]#ip route add default via 10.0.0.133 dev eth0
[root@localhost ~]ip route
default via 10.0.0.133 dev eth0
default via 10.0.0.2 dev eth0 proto static metric 100
10.0.0.0/24 dev eth0 proto kernel scope link src 10.0.0.132 metric 100
经测试,Ubuntu和centos可跨网段互相ping通。
##修改firewall的iptables配置,实现SNAT和DNAT
iptables -t nat -A PREROUTING -d 172.16.0.133 -p tcp --dport 80 -j DNAT --to-destination 10.0.0.131:80
iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -j SNAT --to-source 172.16.0.133
测试
通过内外网curl对端网页或者ssh登录
查看本机端口estab状态和htpd日志,获取实际访问的是否经过转换。
- ss -nt
- tail /var/log/httpd/accsee.log
保存
iptables-save > /date/iptable.rule
vim /etc/rc.d/rc.local
iptables-restore < /date/iptable.rule
chmod +x /etc/rc.d/rc.local
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构