1. 域名劫持的解决办法
域名劫持就是在劫持的网络范围内拦截域名解析的请求,分析请求的域名,把目标网站域名解析到错误的地址,造成客户端不能访问特定的网址或者访问假的网址。
域名劫持一方面可能把用户引到假冒的网站进而无法正常浏览网页;另一方面用户可能被诱骗到冒牌网站进行登录等操作导致泄露隐私数据。
如果发生域名劫持,解决方法:
1. 删除不属于你的DNS解析,恢复DNS设置
2. 关闭泛域名解析
3. 立即修改域名服务商和邮箱密码,使用复杂度高的密码且经常更换
4. 使用第三方DNS服务,应立即修改第三方DNS服务端帐户密码,锁定帐户信息,开启帐户短信邮箱类提醒。
5. 由于域名劫持往往只能在特定的被劫持的网络范围内进行,所以在此范围外的域名服务器(DNS)能够返回正常的IP地址,用户可以在网络设置把DNS指向这些正常的域名服务器以实现对网址的正常访问。
https://blog.csdn.net/qq_42169463/article/details/80250000
2. 描述dns的递归查询
客户端向本地DNS服务器发送域名解析请求,本地服务器查询自己的数据库,如果查询到域名对应的网址,则把网址直接返回给客户端,域名解析成功;如果在自己的数据库查询不到结果,本地DNS服务器就去查询根域名服务器、顶级域名服务器、二级域名服务器等,一级一级查询,并把查询到的结果返回给客户端,域名解析成功。这个DNS服务器所做的查询就叫做递归查询。
3. DNS工作原理详细解析
DNS工作原理:
第一步:客户机提出域名解析请求,并将该请求发送给本地的域名服务器。
第二步:当本地的域名服务器收到请求后,就先查询本地的缓存,如果有该纪录项,则本地的域名服务器就直接把查询的结果返回。
第三步:如果本地的缓存中没有该纪录,则本地域名服务器就直接把请求发给根域名服务器,然后根域名服务器再返回给本地域名服务器一个所查询域(根的子域) 的主域名服务器的地址。
第四步:本地服务器再向上一步返回的域名服务器发送请求,然后接受请求的服务器查询自己的缓存,如果没有该纪录,则返回相关的下级的域名服务器的地址。
第五步:重复第四步,直到找到正确的纪录。
第六步:本地域名服务器把返回的结果保存到缓存,以备下一次使用,同时还将结果返回给客户机。
4. dns区域转发与全局转发区别与实现方法
(1) 全局转发: 对非本机所负责解析区域的请求,全转发给指定的服务器,在配置文件/etc/named.conf中做如下配置:
Options {
forward first|only;
forwarders { ip;};
};
(2) 特定区域转发:仅转发对特定的区域的请求,比全局转发优先级高,在配置文件/etc/named.conf中做如下配置:
zone "ZONE_NAME" IN {
type forward;
forward first|only;
forwarders { ip;};
};
注意:以上都需要关闭dnssec功能。
5. 实现智能DNS
(1) 定义acl和view
vim /etc/named.conf
acl beijingnet {
192.168.34.0/24;
};
acl shanghainet {
172.18.0.0/16;
};
acl shenzhennet {
any;
};
options {
....
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
include "/etc/named.root.key";
view view_beijing {
match-clients { beijingnet;};
include "/etc/named.rfc1912.zones";
};
view view_shanghai {
match-clients { shanghainet;};
include "/etc/named.rfc1912.zones.shanghai";
};
view view_shenzhen {
match-clients { shenzhennet;};
include "/etc/named.rfc1912.zones.shenzhen";
};
(2) 定义区域解析库文件
vim /etc/named.rfc1912.zones
zone "." IN {
type hint;
file "named.ca";
};
zone "hello.com" {
type master;
file "hello.com.zone.bj";
};
vim /etc/named.rfc1912.zones.shanghai
zone "." IN {
type hint;
file "named.ca";
};
zone "hello.com" {
type master;
file "hello.com.zone.sh";
};
vim /etc/named.rfc1912.zones.shenzhen
zone "." IN {
type hint;
file "named.ca";
};
zone "hello.com" {
type master;
file "hello.com.zone.sz";
};
(3)准备区域数据库文件
在/etc/named/下面准备三个区域数据库文件,分别为hello.com.zone.bj,hello.com.zone.sh,hello.com.zone.sz,这三个文件的www的地址是不一样的,其他都一样。下面以hello.com.zone.sz为例。
$TTL 86400
@ IN SOA dns1 admin.hello.com (
2015042201
1H
5M
7D
1D )
shenzhen NS dns1
dns1 IN A 172.16.100.11
www IN CNAME websrv
websrv A 6.6.6.6