SSHD服务取消DNS反向解析 SSH连接慢
DNS反向解析(Reverse DNS)
正向解析:通过域名查找ip;
反向解析:通过ip查找域名;
DNS反向解析用来屏蔽非法的IP访问请求;常见于邮件屏蔽系统,而apache,ssh,mysql等服务器端程序也会默认携带;
例如:邮件头包含域名和邮箱服务器的IP地址,一般邮件系统会检测发送来的域名是否合法(比对黑白名单),如果合法则接收该邮件,不合法则丢弃;对于自架邮件系统专门发送垃圾邮件的人,为了能逃避目标邮件系统的审核,此时可以通过将自己的邮件头域名篡改为常用的如Gmail邮件域名来逃脱检查。
大量动态IP的非法请求催生了DNS反向解析技术的发展。
本例中,邮件系统增加了审查功能,即通过邮件头中的IP来向DNS服务器对应的查询域名是否与邮件头中的域名相符合来判断邮件请求的合法性;
目前DNS的反向解析已经作为常规安全手段被大多数应用所使用。
在Windows CMD下可通过nslookup命令来观察正向和逆向解析:
C:\Users\teng>nslookup g.cn 服务器: google-public-dns-a.google.com Address: 8.8.8.8 非权威应答: 名称: g.cn Addresses: 2404:6800:4008:c04::a0 203.208.48.147 203.208.48.146 203.208.48.145 203.208.48.144 203.208.48.148 C:\Users\teng>nslookup -qt=ptr 203.208.48.148 服务器: google-public-dns-a.google.com Address: 8.8.8.8 *** google-public-dns-a.google.com 找不到 148.48.208.203.in-addr.arpa.: Non-existent domain
示例中先通过 g.cn查询Google的对外IP地址群,再通过其中一个IP地址逆向查询是否属于Google。
去除SSH服务中的DNS反向解析
SSH服务中的反向解析同样的也是为了通过审查请求来的IP和其IP存放在DNS服务器上面的域名是否能对应起来,来提高安全性。
但由于反向解析的存在,每个IP请求都会消耗一定时间来审查其合法性。对于局域网内服务器群、不直接连接外网的服务器或者已知访问的IP都是合法的地址等情况,其审查显得多余且长时间的查询会极大的影响SSH连接速度。
以下通过关闭SSH反向解析服务和在hosts文件中配置可信的访问地址来解决该问题。
A. 关闭SSH反向解析服务
# 1. 备份sshd配置文件 cp /etc/ssh/sshd_config /etc/ssh/sshd_config .bak.20150323.UseDNSYes2No # 2. 修改配置文件,取消sshd服务的dns反向解析 vim /etc/ssh/sshd_config # 3. 找到选项UseDNS ,取消注释,改为 UseDNS no # 4. 重启sshd服务 /etc/init.d/sshd restart
B. hosts文件中配置可信的访问地址
# 1. 备份hosts文件 cp /etc/hosts /etc/hosts.bak.20150323.addTrustedIPandName # 2. 修改hosts文件 vim /etc/hosts # 3. 增加可信的IP及其服务名,示例IP为10.60.9.7,名称为CRXJ-COLL 10.60.9.7 CRXJ-COLL
参考文件
What is the point of sshd “UseDNS” option?
Disabling reverse dns lookups in ssh
转载请标明作者和原文链接
ifuteng#gmail.com 2014/9/24