今天早上起来发现阿里云的服务器负载很重, 打开htop一看发现CPU跑满了.

那么点小小的Web服务你CPU可以给我跑满? 不存在的. 占了CPU 90%以上算力的是/bin/dhpcd. 动态IP的服务会这么占内存吗? 我有跑动态IP服务吗(又不是路由器)?

仔细一查, 动态IP那个服务的名称是dhcpd, 不是dhpcd, 那么我就要着手处理它.
处理dhpcd很简单, 直接登录root用户, pkill dhcpd; rm -rf /bin/dhcpd, 同时我又在HOME目录发现了一个备份, 同上直接删除.

保护服务器不再受黑客的侵犯

以下代码可能需要由root用户执行(或者加sudo).

黑客能够在/bin里面写文件, 可见他获得了root权限(有root权限却没有破坏我服务器的其它文件真是好黑客!), 所以我第一步肯定是修改密码. 但是passwd root一直改不了root的密码. 所以

lsattr /etc/passwd /etc/shadow

发现它们的权限都变成了----a---------e---. a权限表示只能追加, 不能修改或者删除, 怪不得我改不了密码, 这是黑客在给自己留后门吧. 所以

chattr -a /etc/passwd /etc/shadow
passwd root

这样就可以修改密码了, 改好后执行

chattr +i /etc/passwd /etc/shadow
lsattr /etc/passwd /etc/shadow

我把权限变成了----i---------e---, 完全锁死用户密码控制文件.

仅仅只是修改密码还不够, 搞不好黑客还能把我的密码给破解了! 所以干脆限制能够登录的设备. 即生成ssh的密钥公钥对, 只有有公钥的机器才能够登录我的服务器.

ssh-keygen -t rsa

~/.ssh/下载生成的pub文件. 再修改/etc/ssh/sshd_config, 将PasswordAuthentication yes改为PasswordAuthentication no(如果没有的话就在后面追加PasswordAuthentication no).
这下就不能用密码直接认证登录了.

为了方便自己后续登录, 我在自己电脑上设置了一个别名: (在~/.zshrc中追加)

alias sshs='ssh -i /服务器/公钥/位置 用户名@服务器IP'

这样以后直接在zsh中输入sshs就能够登录服务器了.



server

本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!