引言: 在网络上,Linux服务器大行其道,但是也备受攻击。本文将描述在实际中碰到的NTP攻击问题以及相应的解决办法。
1. 场景描述
Aliyun上的ECS一台,过一段时间,频繁报警,说是流量过大,遭到了DDOS攻击,服务将被隔离,并停止响应服务一段时间,进行流量清晰。 总之,服务被DDOS搞挂了,不可用。
2. 分析
通过提交工单,获取了访问的日志信息cap文件。打开之后,看到了大量的NTP服务信息:
19 0.000140 188.162.1.140 115.29.44.161 NTP 482 NTP Version 2, private
经过基于端口和进程的查找,都是基于123端口的连接请求大量占用资源, 而123端口是NTP服务的端口,故基本确定是NTP服务被外部反复请求造成的。
3. 何为NTP?
NTP服务器【Network Time Protocol(NTP)】是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源(如石英钟,GPS等等)做同步化,它可以提供高精准度的时间校正(LAN上与标准间差小于1毫秒,WAN上几十毫秒),且可介由加密确认的方式来防止恶毒的协议攻击。时间按NTP服务器的等级传播。按照离外部UTC源的远近把所有服务器归入不同的Stratum(层)中。
参考信息; http://baike.baidu.com/link?url=y5y33eP0oLaSRg6pPMGDM6i-KPDxHwAQuHh84SAn_JBayZswqUEt2fWSadUrMn3uu7MeVA-ZCib6wCDCrqSA8K
4. 如何来解决:
由于您机器上的服务配置不当,导致被黑客利用进行DDOS攻击,表现为机器对外带宽占满,使用抓包工具,可以看到大量同一源端口的包对外发出。
加固NTP服务:
1、通过Iptables配置只允许信任的IP,访问本机的UDP的123端口,修改配置文件执行echo "disable monitor" >> /etc/ntp.conf,然后重启NTP服务,service ntpd restart。
2、建议您直接关闭掉NTP服务,执行service ntp stop,并禁止其开机自启动执行chkconfig ntpd off。
加固Chargen服务:
1、通过Iptables配置中允计信任的IP,访问本机的UDP的19端口。
2、建议您直接关闭掉chargen服务,编辑配置文件 "/etc/inetd.conf",使用#号注释掉chargen服务,重启inetd。
加固Simple tcp/ip服务:
1、通过防火墙配置,只允许信任的IP,访问本机UDP、TCP的19、17端口。
2、我们建议您直接如下图配置关闭该服务,并禁止自启动。
Wordpress的Pingback:
1、您可以通过增加Wordpress插件来阻止Pinback被利用,加入如下的过滤器:
add_filter( ‘xmlrpc_methods’, function( $methods ) {
unset( $methods[‘pingback.ping’] );
return $methods;
} );
2、我们建议您,直接删除文件xmlrpc.php。
5. 参考资料: