新建VPS主机初始安全配置

作者: writer 分类: 技术 发布时间: 2017-08-14 22:10 ė 1331 6 没有评论

新建VPS主机初始安全配置
最近Vultr日本节点从家里联通宽带连过去网络抽风,晚上ping值能有200ms多,比刚开始的时候80ms左右的速度劣化很多。看来这条线路最近又被大批涌入的新用户玩的比较狠。同时也在考察Vultr的老对手linode,开了一个Tokyo2机房的小鸡,经测试高峰期的ping值也差不多200ms左右,和vultr半斤八两的水平。但是初次尝试了linode的后台系统后就发现了其过人之处。跟vultr相比,用户可以对磁盘分区,设置挂载点,可以动态调整分区大小,可以在不同地理位置的机房迁移数据,总体而言灵活度确实强于其他VPS商家。在加上linode稳定运行的口碑,于是乎利用新用户注册送20刀的优惠,开始尝试将小站的服务器往linode Tokyo2机房迁移。

新机建立之后首先需要配置系统环境,作为暴露在公网上的主机,安全性尤为重要。刚开的机器还没用多久,登陆时都提示有多次失败的登陆记录,可见linode的机房已经成为端口扫描的重点照顾对象。

SSH配置

登录机器后第一步加强ssh的安全性,主要考虑下面3点

  • 禁止root用户登陆,使用新用户登录
  • 修改ssh端口号
  • 使用密钥文件登录认证

A . 首先建立一个新用户hai, 并且将其加入wheel用户组,使其能够使用sudo提升用户权限。

B. 然后编辑ssh配置文件位于/etc/ssh/sshd_config,将其中几行修改成下面的样子,这样别人就没有办法使用root用户暴力破解密码,而且必须要求密钥文件登录。关于关闭密码登录的配置说明,这篇文章讲的很详细.

C. 假如需要密钥登录的账户是新建立的hai账户,在hai账户的home目录里,建立 .ssh目录(假如不存在的话),将公钥内容写入到 .ssh/authorized_keys文件里。最后从其他地方通过密钥登录ssh测试一下,没问题的话重启sshd服务。
service sshd restart
至此,别人就没有办法通过ssh途径突破主机的安全配置了。

用户/用户组设置

新建了用户以后,通过以下设定,使得只有wheel组的用户能切换到root。
编辑 /etc/pam.d/su文件,取消注释下一行

然后在/etc/login.defs下添加一行

现在其他普通用户就无法切换到root用户了。

CentOS7系统默认创建了许多对于web服务器没用的用户和用户组,所以删掉那些多余的。

锁定重要文件

给重要的系统文件包含密码,用户等文件加锁,避免root密码被篡改。

让系统日志只能增加记录,不能修改其中的记录。如果黑客入侵也无法隐藏行迹。

iptables防火墙设置

CentOS7上预装的是firewalld,但是iptables还是更频繁地出现在各种文章、教程里,很多时候网上找到的防火墙操作都是基于iptables的命令,那么这里采用iptables作为防火墙服务。

首先安装iptables并且开启服务。

在开始修改规则前,先检查现有规则

这里假定将重新定立防火墙规则,如果有已经定义的规则的话,运行下面的命令清空

由于iptables的规则改变会立即生效,如果用户错误设定了一条规则可能会将自己当前的连接挡在门外,就再也没有办法连上当前的主机了。为了防止这种意外的发生,可以加入一条白名单设定,使白名单指定IP地址总是能够访问当前主机的ssh端口,这样即使发生误操作,也不至于防火墙把自己挡住。用了那么多VPS,总有一台小鸡能为我所用,运行下面的命令将其加入白名单。

下面的规则允许loopback访问,除了lo之外阻止所有对127.0.0.0/8的访问。

禁止一些常见的网络入侵手段

允许所有已建立的入站连接

打开web的80和443端口, ssh的30567端口和ftp的21端口

打开多个连续端口,比如Aria2的bt端口

允许ping连接

最后设置默认规则:除了上述规则以外,阻止所有连接。

前面所做的配置都是在当前的会话中立即生效,如果想要永久保存规则,在下次启动时还能保存设定,需要运行下面的命令。

测试iptables规则生效而且没有阻止正常的网络链接,最后去掉指定IP白名单设定。
通过iptables –line-number得知白名单规则编号是1,所以使用-D参数删除这条规则。

iptables日志

除非在规则里显式地定义了写入日志,否则默认情况下即使有网络连接被阻止,也看不到日志记录。通过加入下面两条规则,记录所有被阻止的入站和转发连接。

默认情况下iptables的日志写入内核日志文件 /var/log/messages里,最好能把这些防火墙活动单独写入另一个日志文件,需要在rsyslog配置文件中加入一行

然后就可以在日志文件中看到各种频繁的被阻止的网络活动了,linode的机房被好多人盯的啊!

最后提供一个完整的iptables规则记录,从此处下载,然后运行下面的命令导入生效

总结

通过这些设置以后,服务器已经初步具备比较好的安全性,除了暴露出系统必备的服务之外,对恶意入侵者很难有可乘之机。作为一个普通的小站,也没有太大的价值去让入侵者再花更大功夫去寻找其中的漏洞。当然重中之重是不要忘记经常给系统升级,确保已知的漏洞都已经得到修复。

本文出自扉启博客,转载时请注明出处及相应链接。

本文永久链接: https://www.feiqy.com/vps-security-practice/

发表评论

电子邮件地址不会被公开。 必填项已用*标注

Ɣ回顶部