最近在使用腾讯云服务器的过程中,被比特币黑客黑了一次服务器(如下图所示)。
图1 比特币勒索信息
继而认识到网络安全的重要性。在重新安装系统之后,发现仍然有不明IP通过22端口尝试以ssh用户名密码的方式登录服务器(图2),并且有不明IP通过3306端口尝试访问mysql(图3)。
图2 通过ssh登录后的提示信息
图3 mysql日志记录
经过查找资料,发现这是一种常见的网络攻击,基本思路为:
1.通过ssh的默认端口22以root账户登录,不断地尝试密码直至登录成功;
2.mysql也是一样。
目前采取的措施为:
1.配置腾讯云安全组:只允许我需要的IP入站22端口和3306端口
2.配置防火墙:(后续补充,记录在另一篇博客中)
在网上看到的资料中,有如下方法:
1.修改ssh默认登录端口22和mysql默认端口3306为其他不常用端口,如34392等;
2.编写脚本监测/var/log/secure文件(该文件是linux系统的登录日志),如果有登录失败的IP,则将该IP添加至/etc/hosts.deny文件(该文件是tcpd服务器的配置文件,tcpd服务器可以控制外部IP对本机服务的访问。tcpd的配置文件有两个:hosts.allow和hosts.deny,通过它们可以允许或者拒绝某个ip或者ip段的客户访问linux的某项服务。具体可参考:http://purpen.iteye.com/blog/1135342)
(参考:http://www.cnblogs.com/lizhaoxian/p/4860913.html)
3.使用fail2ban(fail2ban是 Linux 上的一个著名的入侵保护的开源框架,它会监控多个系统的日志文件(例如:/var/log/auth.log 或者 /var/log/secure)并根据检测到的任何可疑的行为自动触发不同的防御动作。)(参考:https://linux.cn/article-5067-1.html)
暂时安全组和防火墙策略已经满足了我的需求,保证服务器不被其他IP暴力访问。以后有时间会尝试使用fail2ban。