服务器维护过程中踩过的坑儿
2. 删除vim
vim删除后重装,导致系统登录异常:sudo命令失效,显示/etc/sudoers文件不存在
查看系统中已安装的vim软件包
依次查看依赖关系,发现vim-minimal与sudo存在依赖
故删除vim-minimal时,会连带删除sudo,导致系统登录异常
总结:
调用yum {remove|erase}删除软件时,需仔细核对依赖关系,留意「will be erased」字样,谨防删除系统文件
1. 攻击
问题:root无法登陆,ssh自动断开
环境:CentOS7 x86_64
背景:
◇ 对路由器做端口映射,映射「22」号端口,后启动「DMZ」,直接将家里的主机暴露于公网
◇「root」用户密码为弱口令「123456」
事件回顾:
① 发现CPU过高
② top命令显示系统负载高达4,一个名为「26487」的进程CPU利用率为200
③ kill命令杀死进程
④ 短时间内,ssh连接自动断开
⑤ 重启系统,root登录,自动回退到登录界面
⑥ ssh尝试连接,仍旧失败
尝试:
① ssh远程执行命令「date」「reboot」,结果:无输出无反应,失败
② 使用「rongxj」用户登陆,结果:成功
查看各配置文件,结果:无权限
以「sudo cmd」执行命令,结果:'rongxj is not in the sudoers file.'
③ 进入单用户模式,结果:很多文件在单用户模式下不可见
转机:
xshell重新登录「root」,连接成功后,Bash提示字符串出现前,反复快速「Ctrl+C」,结果:简行模式,登陆成功,完整root权限
排查:
查看~/.bashrc,内容只一行「exit」
至此真相大白
分析:
登陆shell脚本调用顺序为
「/etc/profile」——「.bash_profile」——「.bashrc」——「/etc/bashrc」
「.bash_profile」中以「source」命令运行「.bashrc」,而后由「.bashrc」以「source」命令运行「/etc/bashrc」,臭虫们将「.bashrc」文件内容改为「exit」,使得脚本调用过程提前结束,故而「root」用户登录失败(自动退出)
调查:
「last」查看登录信息
上午「10:30」左右,刚把主机暴露于外网,在「弱口令」的条件下,就有两个陌生的IP登录进来,「124.68.10.20」(天津)和「195.22.127.83」(波兰)
「history」中没有找到有价值的线索
总结:
① 需为一两个普通用户赋予「root」权限,以备不测
② 任何暴露于公网的东西,一是务必使用强密码,二是尽量修改众所周知的默认端口
③ 定期做备份,虚拟机则开启「自动快照保护」
经验:
在不确定bug前,沉住气,不可按照Google或Baidu出的结果,逐一试错。缕清关系,按照操作系统执行的流程,逐一排查,找到「根源」后,方可动手