在公网上的Linux,我的一些配置分享

 

前言

去年的时候,有一篇介绍搭建ss服务器的文章,由于某些众所周知的原因,被阿里云删除。

后来有段时间使用vps,配合《鸟哥私房菜》,学习实操linux。当时我以为只要root密码够复杂,就一切ok,有一两个月没有太关注安全的问题。偶然一次使用lastb命令,着实下了一跳,我的vps每天都有几万次的失败登陆记录。尝试登陆的IP,有俄罗斯,越南,巴西。。。。基本上地球上所有国家都有来过。

这个时候我才意识到,如果不做相关的安全方面的措施,在公网的环境下,与裸奔无异。我的vps是CentOS 7,以下所有涉及到的配置文件,相关命令都是在CentOS 7以下并且生效了的。

安装 denyhosts

denyhosts 是查询了几万次的失败记录后,立即安装的。维基上面的简介

DenyHosts是针对SSH服务器的一个基于日志的入侵预防安全工具,是用Python编写的。其通过监测身份验证登录日志中失败的登录尝试,屏蔽这些登录者的IP地址,从而预防对SSH服务器的暴力破解。

配置文件路径/etc/denyhosts.conf,里面可以配置的项很多,也有详细说明,我只修改了通知的用户。

sed -i "s/root@localhost/{用户名}@localhost/g" /etc/denyhosts.conf

效果还是很明显的,扫描从每天从几万降到了一千左右。但是这一千左右的失败登陆也是不能忍的。

PS:把失败的记录基本降为0以后,我考虑通过邮件第一时间通知我,有人尝试登陆我的主机。后来再网上在查询,好像是不直接支持的,还需要安装专门发送邮件的postfix,仅仅为了这个发送邮件,好像也没有太大的必要。就放弃了。

使用密钥登陆

维基:RSA非对称加密算法 我也就了解到,是大数的质因数分解,也简单做推算过,目前还是很安全的。有兴趣可以去网上找,李永乐老师的讲解

在客户端生成公钥和私钥,然后把公钥上传到服务器,在/home/{你的用户名}/.ssh/authorized_keys文件下追加一条记录。客户端使用私钥登陆。相关的教程网上很多,不做赘述。需要注意:

  1. RSA的版本和SSH版本,现在目前系统都是默认RSA2,SSH2,并且默认禁用低版本的,可以忽略;
  2. 在生成密钥的时候,可以不设置密码,我还是建议可以用一个简单的密码,不用太复杂;
  3. 注意目录(700)和文件(600)的权限;追加的时候注意换行回车
  4. 目前和未来几年内这个算法是安全的,但是量子计算机破解就是一两分钟,甚至一秒钟就搞定,要有这方面意识。

这两天,阿提亚爵士声称证明了黎曼猜想。不过看新闻报道,好像是数学家们认为希望不大。如果黎曼猜想被证明了的话,就意味着以素数为基础的所有加密算法都是不安全的。

禁用root用户

这个比较简单:

  1. 修改配置文件是在:/etc/ssh/sshd_config
  2. 搜索PermitRootLogin yes,一般是注释的#PermitRootLogin yes; 去掉注释,改为no就可以了。
  3. 根据个人需要,普通用户是否可以使用密码登陆,PasswordAuthentication;我修改的是yes,我认为我可能会在临时的电脑上用密码登陆。
  4. 重启ssh: systemctl restart sshd

更改 ssh 端口

把系统默认的ssh端口22,改为一个用户自定义的,1024以下是系统保留的,从1024-65535是用户使用的。

  1. 修改配置文件是在:/etc/ssh/sshd_config
  2. 在文件中找到#Port 22 默认是注释掉的,然后去掉注释,改为其他端口号,
  3. 千万一定要注意,记得把自定义的端口,加入到防火墙中,
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信