NTP服务的DDoS攻击原理
NTP协议是基于UDP协议的服务器/客户端模型,由于UDP协议的无连接性(不像TCP协议具有三次握手过程)具有天然的不安全性缺陷,有些人正是利用NTP服务器的不安全性漏洞发起DDoS攻击。
伪造要“攻击对象”的IP地址向NTP服务器发送请求时钟同步请求的报文,为了增加攻击强度,发送的请求报文为Monlist请求报文。NTP协议包含一个Monlist功能,用于监控NTP服务器,NTP服务器响应Monlist指令后就会返回与其进行过时间同步的最近600个客户端的IP地址,响应包按照每6个IP进行分割,一个NTP Monlist请求最多会形成100个响应包,具有较强的流量放大能力。测试显示,当请求包的大小为234字节时,每个响应包为482字节,按照这个数据计算,放大的倍数是482*100/234=206
倍,从而导致大流量阻塞网络,导致网络不通,无法提供服务。
NTP服务的DDoS防御方法
- 使用DDoS防御产品,将入口异常流量进行清洗,正常流量和区分异常,将正常流量分发给服务器进行业务处理。详情请参见设置清洗阈值。
- 对UDP使用的123端口进行限制,且只允许NTP服务与固定IP进行通信,其他IP全部拒绝:
说明:进行此操作时,请确认对你的业务无影响。
- 关闭NTP服务器Monlist功能:
- 执行以下命令,在NTP配置文件中关闭Monlist功能的配置。
echo "disable monitor" >> /etc/ntp.conf
- 执行以下命令,重启NTP服务。
systemctl restart ntpd
- 执行以下命令,在NTP配置文件中关闭Monlist功能的配置。
- 升级NTP服务版本至v4.2.7p26,此版本修复了Monlist功能的问题,升级包请参见NTP官方网站。
- 将带宽升级到足够大,硬性抵挡NTP服务的DDoS攻击产生的大流量攻击。详情请参见修改带宽。
说明:推荐优先考虑上述几种解决方案。
更多信息
NTP协议(Network Time Protocol)是标准的网络时间同步协议,它采用层次化时间分布模型。网络体系结构主要包括主时间服务器、从时间服务器和客户机,主时间服务器位于根节点,负责与高精度时间源进行同步,为其他节点提供时间服务,各客户端由从时间服务器经主服务器获得时间同步。