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

参考文件

Wiki 反向解析

SSH 连接慢 与 反向解析

DNS中的正向解析与反向解析

What is the point of sshd “UseDNS” option?

由于反向解析引发的访问慢的问题

Disabling reverse dns lookups in ssh

[原]sshd服务取消DNS反向解析及修改超时时间

转载请标明作者和原文链接

ifuteng#gmail.com 2014/9/24

相关推荐