阿里云ecs使用的是ubuntu14.04系统,收到阿里云短信提醒,有异地ip登录可能被黑客攻击。登录阿里云云盾查看登录ip登录时间和登录名为git,基本确定如果出问题的话应该是gitlab的锅
首先,用自己的账号登录服务器,可以登录说明没有被大范围破坏。
然后查看/var/log/auth.log,发现登录ip和登录时间与阿里云提醒短信相符,而且log并没有被删除或修改。
在auth.log文件中
Apr 15 22:42:57 servername sshd[14983]: Accepted publickey for git from 60.10.71.xx port 7207 ssh2: RSA 15:07:f5:20:8e:40:ba:d5:60:92:6b:b7:b2:xx:xx:xx
Apr 15 22:42:57 servername sshd[14983]: pam_unix(sshd:session): session opened for user git by (uid=0)
Apr 15 22:42:57 servername sshd[15002]: Received disconnect from 60.10.71.xx: 11: disconnected by user
Apr 15 22:42:57 servername sshd[14983]: pam_unix(sshd:session): session closed for user git
通过搜索rsa指纹发现在工作时间有此指纹的机器通过办公网络ip登录,由此基本可以确定“黑手”来自内部。
然后就是通过rsa指纹找到这只“黑手”,通过在每台工作电脑上执行ssh-keygen -l -E md5 -f ~/.ssh/id_rsa.pub,查看pubkey的指纹是不现实的的
想到gitlab保存了所有用户的公钥,通过搜索找到gitlab公钥存放位置,默认/var/opt/gitlab/.ssh/authorized_keys
打开文件将每个人的公钥复制出来保存为文件,执行ssh-keygen -l -E md5 -f [filepath]生成每个文件的指纹,对比日志中异常登录的指纹
最终确定“黑手”是谁,通过询问“黑手”得知相同时间通过自家宽带通网络push过代码,警报解除。

ps:由于像宽带通、鹏博士这些二级运营商的宽带对出口ip做了nat,使用周边省市的出口ip以减少成本,所以远程主机记录的登录ip会不准确,可以通过ip查询网站查询此ip属于哪个运营商,或者百度ip应该也有些收获
pps:阿里云的云盾防攻击保护确实有些作用,但是有些时候也有些夸大威胁,来推销自己安全防护服务的目的