Linux第九周

Posted JINX穆空

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux第九周相关的知识,希望对你有一定的参考价值。

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

DNS服务器原理

DNS域名系统分为正向与反向域名解析,适用C/S,端口路53/udp,53/tcp,属于应用层协议;

通常人们上网都是通过输入网址进行访问的,比如www.baid.com,这个也叫作域名。但实际上网络访问的底层还是通过ip进行的,比如输入36.152.44.96这个ip地址依然可以访问百度。人的记忆是有限的,不可能去记住众多网站的ip地址,dns就可以解决这个问题,将域名解析成ip地址。

1、当应用过程需要将一个主机域名映射为IP地址时,就会将将待转换的域名放在DNS请求中,以UDP报文方式发给本地域名服务器

2、本地的域名服务器查到域名后,将对应的IP地址放在应答报文中返回;

3、同时域名服务器还必须具有连向其他服务器的信息以支持不能解析时的转发;

4、若域名服务器不能回答该请求,则此域名服务器就暂成为DNS中的另一个客户,向根域名服务器发出请求解析,根域名服务器一定能找到下面的所有二级域名的域名服务器,这样以此类推,一直向下解析,直到查询到所请求的域名

主服务器搭建

#DNS主服务器正向解析
yum -y install bind bind-utils
systemctl enable --now named
vim /etc/named.conf
#修改listen-on port和 allow-query(也可以直接将这两行注释)
ptions
listen-on port 53 localhost; ;
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 localhost;10.0.0.0/24; ;
#此命令可以刷新配置文件(不会重启服务影响访问)
rndc reload
#设置网卡DNS测试本机是否可以通过自己的DNS服务ping通外网
vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
NAME=eth0
BOOTPROTO=static
IPADDR=10.0.0.151
PREFIX=24
GATEWAY=10.0.0.2
DNS1=10.0.0.151
ONBOOT=yes
nmcli con reload
nmcli con up eth0
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/2)
#打开一台客户机,测试DNS
vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
NAME=eth0
BOOTPROTO=static
IPADDR=10.0.0.150
PREFIX=24
GATEWAY=10.0.0.2
DNS1=10.0.0.151
ONBOOT=yes
nmcli con reload
nmcli con up eth0
ping www.baidu.com
PING www.a.shifen.com (180.101.49.12) 56(84) bytes of data.
64 bytes from 180.101.49.12 (180.101.49.12): icmp_seq=1 ttl=128 time=10.1 ms
64 bytes from 180.101.49.12 (180.101.49.12): icmp_seq=2 ttl=128 time=9.76 ms
#配置区域解析库
#修改 /etc/named.rfc1912.zones
vim /etc/named.rfc1912.zones
zone"jlj.com" #域名按实际情况
type master;
file"jlj.com.zone"; #文件名可任意
cd /var/named/
#直接在复制现有配置文件修改区域解析库
cp named.localhost jlj.com.zone -p
vim jlj.com.zone
#参数可以省略,省略则代表和上一条记录相同
$TTL 1D #缓存1天,写在此处可变为全局
@ IN SOA master admin.jlj.com. ( #“@”为当前域jlj.com
"IN"固定,master为DNS服务器地址,配合前面的@,实际为master.jlj.com
master也可以改为master.jlj.com. 最后一定要写"."
0 ; serial #区域数据库文件版本号,系统判断是否更新看版本号
1D ; refresh #从服务器获取主服务器的刷新间隔
1H ; retry #刷新时失败重试间隔
1W ; expire #长时间不能同步,使从服务器过期
3H ) ; minimum #用户访问失败的记录会被缓存,清空时间3小时
NS master #填写主从服务器主机名,添加主机名后也需要增加A记录
master A 10.0.0.151 #继承上一条命令的”@“所以master实际为master.jlj.com,此行用于解析master.jlj.com
www A 10.0.0.51
* A 10.0.0.51 #泛域名解析只要是jlj.com(表中没有的)都跳转到10.0.0.51
@ A 10.0.0.51 #不输入www.也可以访问
[root@centos8 ~]#curl www.jlj.com
www.jlj.com
[root@centos8 ~]#curl wwwwwwww.jlj.com
www.jlj.com
[root@centos8 ~]#curl jlj.com
www.jlj.com

反向解析

#反向解析
[root@centos8-2 etc]# vim /etc/named.rfc1912.zones
zone "0.0.10.in-addr.arpa"
type master;
file "10.0.0.zone";
;
[root@centos8-2 etc]# cd /var/named
[root@centos8-2 named]# cp -p named.loopback 10.0.0.zone
[root@centos8-2 named]# vim 10.0.0.zone
$TTL 1D
@ IN SOA ns1 admin.jlj.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS ns1.jlj.com.
51 PTR www.jlj.com.
[root@centos8 ~]#dig -t ptr 51.0.0.10.in-addr.arpa
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; COOKIE: 7eec35e51f333bb02ef0b3c561e667434f2c651be502050f (good)
;; QUESTION SECTION:
;51.0.0.10.in-addr.arpa. IN PTR
;; ANSWER SECTION:
51.0.0.10.in-addr.arpa. 86400 IN PTR www.jlj.com.
;; AUTHORITY SECTION:
0.0.10.in-addr.arpa. 86400 IN NS ns1.jlj.com.
;; ADDITIONAL SECTION:
ns1.jlj.com. 86400 IN A 10.0.0.51
;; Query time: 0 msec
;; SERVER: 10.0.0.151#53(10.0.0.151)
;; WHEN: Tue Jan 18 15:07:47 CST 2022
;; MSG SIZE rcvd: 138

从服务器搭建

#从服务器搭建
[root@centos8 ~]#yum -y install bind
[root@centos8 ~]vim /etc/named.conf
// listen-on port 53 127.0.0.1; ;
// allow-query localhost; ;
[root@centos8 ~]vim /etc/named.rfc1912.zones
zone "jlj.com"
17 type slave;
18 masters 10.0.0.151;;
19 file "slaves/jlj.com.slave";
20 ;
[root@centos8 ~]systemctl enable --now named
[root@centos8 ~]ll /var/named/slaves/
total 4
-rw-r--r--. 1 named named 306 Jan 19 12:21 jlj.com.slave
#配置jlj.com.zone,让主服务器数据发生改变时自动推送给从服务器
[root@centos8-2 ~]# vim /var/named/jlj.com.zone
#修改内容
1 ; serial
NS master
NS slave1
master A 10.0.0.151
slave1 A 10.0.0.153
[root@centos8-2 ~]# rndc reload
server reload successful
#当前所有主机都可抓取区数据库,极不安全,主服务器进行如下配置
vim /etc/named.conf
#options中增加一行
allow-transfer 10.0.0.153;;
rndc reload
从服务器配置
vim /etc/named.conf
#options中增加一行
allow-transfer none;;
rndc reload
#测试
[root@centos8 ~]#dig -t axfr jlj.com @10.0.0.151
; <<>> DiG 9.11.26-RedHat-9.11.26-6.el8 <<>> -t axfr jlj.com @10.0.0.151
;; global options: +cmd
; Transfer failed.

[root@centos8 ~]#dig -t axfr jlj.com @10.0.0.153
;; Connection to 10.0.0.153#53(10.0.0.153) for jlj.com failed: host unreachable.

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

iptables -A INPUT -s 192.168.0.193 -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p tcp -m multiport --dports 21,22,23,80 -j ACCEPT
iptables -A INPUT -j REJECT
[root@centos8-2 ~]# iptables -nvL
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT all -- * * 192.168.0.193 0.0.0.0/0
20 4989 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
169 10060 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 multiport dports 21,22,23,80
2 152 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination

3、NAT原理总结

Linux第九周_centos

10.0.0.8:80(内网IP)发送请求进入防火墙,防火墙将IP转换为192.168.10.7:12345(假设此IP为外网)继续发给192.168.10.100

192.168.10.100(外网IP)以192.168.10.7:12345(防火墙IP)为目标地址发送应答报文,防火墙收到后再将192.168.10.7:12345转换为10.0.0.8:80发送给10.0.0.8:80

上述步骤为SNAT,即客户端地址转换

若出现10.0.0.8  ,   10.0.0.18同时用80端口进行外网访问,防火墙会将10.0.0.8:80转换成192.168.10.7:12345,10.0.0.18:80转换为192.168.10.7.12346

上述步骤为PAT,即端口转换

当外网用户需要访问内网时,前提   需要内网中需要被访问的主机和防火墙进行端口映射,之后外网用户通过防火墙的IP和端口号进行访问内网主机的操作时,请求进入防火墙后将目标IP转换成内网绑定的IP和端口,内网IP收到消息,再将应答发送到外网IP,当请求通过防火墙时再将内网IP和端口转换成防火墙外网IP和端口,发送到外网的目标IP

上述步骤为DNAT,即服务器端地址转换

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

#SNAT 固定IP
iptables -t nat -A POSTROUTING -s 10.0.0.0/24 ! -d 10.0.0.0/24 -j SNAT --to-source 10.0.0.151
#SNAT 非固定IP和固定IP都可以
Uiptables -t nat -A POSTROUTING -s 10.0.0.0/24 ! -d 10.0.0.0/24 -j SNAT MASQUERADE
#DNAT
iptables -t nat -A PREROUTING -d 192.168.10.151 -p tcp--dport 80 -j DNAT --to-destination 10.0.0.153:80
#对规则持久保存,并开机自启
iptables-save > /etc/sysconfig/iptables
systemctl enable iptables.service



以上是关于Linux第九周的主要内容,如果未能解决你的问题,请参考以下文章

20165320 第九周课下测试补做

Linux 第九周上课笔记高速DNS

第九周作业Linux微职位

Linux服务及安全管理第九周作业Linux微职位

第九周学习总结

20165210 Java第九周学习总结