问题现象如下图所示,cpu被异常消耗了一半左右:
描述:最近突然发现服务器的CPU异常消耗,试了很多方法(jstack测试、内存溢出、kworker影响)等。说来惭愧,最后启用防火墙规则对来自国外IP地址进行屏蔽,并重启服务器就好了,操作步骤总结如下。
1.定期更改服务器的登陆密码
2.更改ssh登陆的默认端口号
3.检查当前服务器的防火墙策略,如下图所示,当前服务器的防火墙策略为空。
4.使用iftop命令检查都有哪些可疑的IP地址对服务器进行访问(视实际情况而定),如下图所示。
5.将可疑的IP地址添加到防火墙的黑名单内。
6.第二种方法就是仅允许国内和保留地址访问,并屏蔽剩余IP地址对服务器的访问。
#使用脚本添加防火墙策略(此处简单、粗暴),脚本如下:
root@ubuntu:~# cat acceptChinaIp.sh
#!/bin/bash
for i in `cat allChinaIp.txt | awk '{print $3}'`
do
iptables -A INPUT -s $i -j ACCEPT
done
allChinaIp.txt文件链接:
链接:https://pan.baidu.com/s/1MJqBeDZf2eJon44IvH6OxA
提取码:7wao
注:防火墙的策略添加,写法规则等均视情况而定。
#脚本执行完成以后,需额外手动添加一条防火墙策略,默认阻止其余地址对服务器的访问。
iptables -A INPUT -j DROP
#若需要允许新的地址对当前服务器访问,可以使用以下防火墙规则。
iptables -I INPUT -s xxx.xxx.xxx.xxx/xx -j ACCEPT
#安装防火墙开机自启动服务
apt-get install iptables-persistent
#保存防火墙策略,该服务器支持开机自启动
service iptables-persistent save
#以上解决方法的前提是,默认服务器受到了来自国外的恶意攻击而采取的简单防御措施。