由于某些linux机器存在敏感数据,需要禁止外部流量,仅允许某些特定ip使用ssh登录到机器上去。使用iptables限制外部流量,将非白名单内的ip的流量进行drop。但是出现了白名单内的机器也无法使用ssh登录,但是白名单ip可以ping通机器
linux的机器上打开了ssh的UseDNS选项导致了如果只放行白名单的ip,其它ip不放行的话,会导致ssh登录卡住
只放行白名单的ip,其它ip不放行的话,此时linux访问dns服务器也不通的,而如果此时打开了ssh的usedns选项,那么就会导致白名单内的ip也无法ssh登录到机器。
导致问题发生的UseDNS特性:
UseDNS特性是SSH服务的安全增强特性,默认未开启。开启后,服务端会先根据客户端IP进行DNS PTR反向查询,得到客户端主机名。再根据得到的客户端主机名进行DNS正向A记录查询,最后比对得到的IP与原始IP是否一致,用以防止客户端欺骗。
1、保持打开UseDNS
放行dns解析的地址,也就是将linux里配置的dns解析服务器nameserver的地址也加入到白名单
2、关闭UseDNS
vi /etc/ssh/sshd_config
UseDNS no
通常情况下,客户端使用的都是动态IP,没有相应的PTR记录。所以,该特性开启后,不仅无法用于信息比对,反而由于相关查询操作增加了操作延迟,最终导致客户端连接速度变慢。