Linux服务器的简单加固

有人的地方, 就有江湖.
在互联网上, 有网络的地方, 就有肉鸡.
一台裸奔的无人看管的Linux服务器还真的是蛮危险的, 更何况只是用来科学上网用的.

过去一年在DigitalOcean上都运行的好好的服务器, 最近一个月连续多次被DO管方关闭访问权限, 就算是我恢复到去年备份的snapshot, 也是同样的情况, 连续起了几台VPS, 情况都差不多, 而我最终也没找到具体是什么原因.

关闭的原因是, VPS在向外发起DDos攻击, 产生了巨大的带宽消耗. 虽然我没有想过去攻击其它人, 但是学习一下如何保护自己还是很有必要的.

后来没有办法, 只能申请了数据备份功能, 在安全模式下挂载了VPS硬盘, 然后再起了一台VPS, 用scp命令把需要的数据直接同步到了新服务器上, 当然, 备份速度还是很快的, 毕竟是在同一个新加坡机房.

最后创建了一个全新的VPS, 并对服务器进行了加固, 应该没这么容易被黑了.

安装Fail2Ban
安装好之后如果有同一IP多次登录失败, 配置的邮箱就会收到详细信息, 并且这个IP会被禁止登录.

禁止root ssh login
/etc/ssh/sshd_config
PermitRootLogin no

配置ssh publish key
使用ssh private key, 免密码登录

查看从哪些IP发起的攻击最多
sudo grep "for invalid user" /var/log/auth.log|awk -F "invalid user" '{print $2}'|cut -d " " -f4|sort|uniq -c|sort -k1nr

842 107.150.19.184
839 66.135.59.253
447 133.242.9.92
242 45.64.97.177
224 89.248.168.35
216 107.170.248.84
125 186.5.7.98
94 45.64.97.51
82 191.205.248.38
76 50.114.8.34
73 63.223.74.54
30 46.246.86.148
28
28 74.208.229.197
24 185.22.172.116
20 178.73.192.113
20 193.104.41.54
16 219.235.227.190
14 177.208.33.159
10 124.158.4.82

查看哪些用户名是最常用来攻击的
sudo grep "for invalid user" /var/log/auth.log|awk -F "invalid user" '{print $2}'|awk -F " " '{print $1}'|sort|uniq -c|sort -k1nr

225 new
223 me
111 admin
88 vnc
84 oracle
68 postgres
66 git
65 ftpuser
61 jenkins
57 hadoop
50 tomcat
41 ts3
40 dasusr1
39 odoo
39 user
38 globalflash
38 phpmy
37 dspace
37 teamspeak
34 deploy
33 test
32 fmaster
30 newadmin
30 /var/log/auth.log
29 craig
25 guest
21 a
21 pi
21 www

常用网络监测工具
bmon slurm tcptrack iftop nethogs iptraf speedometer ifstat wavemon vnstat

tcpdump抓包工具
sudo tcpdump -vvv -X -i ppp0 port 80
sudo tcpdump -vvv -X -i ppp0 -s 0

参考链接:

  • https://www.digitalocean.com/community/tutorials/7-security-measures-to-protect-your-servers
  • https://www.digitalocean.com/community/tutorials/how-to-protect-ssh-with-fail2ban-on-centos-6
  • http://askubuntu.com/questions/257263/how-to-display-network-traffic-in-terminal
  • https://www.digitalocean.com/community/tutorials/how-to-protect-ssh-with-fail2ban-on-ubuntu-14-04