新购VPS初始化安全配置

随着越来越多的人购买VPS搭建各种服务,VPS的安全性也变得越来越不容忽视。如何才能尽可能地降低自己的VPS被入侵被攻击的概率?本文将主要介绍以下几个方面的安全配置,如果读者已经熟知这些,请无视。如无特殊说明,本文默认的操作环境是ubuntu 14.04,并且假设你已经会使用putty、xshell等SSH远程登录工具。如果不会,请参考本站这篇文章,里面有putty相关操作。

  • 禁止root用户远程登录
  • 禁用密码远程登录(采用SSH-KEY的验证方式)
  • 防火墙配置

一、新建用户

root是Linux系统环境中权力最广的用户,所以一般是不推荐直接使用root账户来作为日常使用的,以防止造成一些误操作。所以作为日常使用,我们就得新建一个日常使用的普通账户,但是我们会将它添加到sudo用户组,因为有些命令是需要root权限才能执行的,比如安装软件(apt-get install)等。

现在假设你已经使用root用户远程登录到VPS了,接下来添加一个普通用户,假设用户名为:demo,你可以换成你自己想要的名字,在此以“demo”为例,输入如下命令并回车:

adduser demo
系统将会提示你输入密码以及用户的相关信息,除密码外,其它信息你都选填就好, 默认就直接回车就行。**注意:在你输入密码的过程中,光标是不会动的,不要误以为你没有输入,事实上,无论你输入多少东西,光标都是不会动的,你只要保证你自己输入正确,输入完成后,直接回车就好。** 用户添加完成之后,接下来的就是要将sudo权限赋给demo,这样demo在执行一些高权限的命令时,在命令前加上 sudo 即可。例如:sudo apt-get update 然后按照提示输入demo的密码再回车就可以了。好,现在执行下面的命令,将demo加入到sudo用户组:
gpasswd -a demo sudo
至此,新用户添加完毕。接下来我们要做的就是为demo用户添加ssh-key,以便使用密钥的方式远程登录VPS,比使用密码的安全性高。 ## 二、添加SSH-KEY验证 由于本文在putty环境下操作,故接下来的公/密钥也将使用PuTTYgen工具来生成。如果读者使用的是非putty,如xshell,可在xshell菜单栏里找到生成工具。其它的,请自行Google。 PuTTYgen的下载打开网页:[http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html](http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html)下载下图1红框中的PuTTYgen: [![1](https://blog.roadofgrowth.com/images/old/2015/04/1-300x90.png)](https://blog.roadofgrowth.com/images/old/2015/04/1.png)   下载完成后,双击运行puttygen.exe,如下图2: [![2](https://blog.roadofgrowth.com/images/old/2015/04/2-300x293.png)](https://blog.roadofgrowth.com/images/old/2015/04/2.png) 在puttygen界面中,使用默认的加密方式和长度即可。然后鼠标点击“Generate”,看到下图3: [![3](https://blog.roadofgrowth.com/images/old/2015/04/3-300x290.png)](https://blog.roadofgrowth.com/images/old/2015/04/3.png) 如上图中波浪下划线标示的文字描述:让你在空白区域随机移动鼠标,产生一些随机性,这样,生成出来的密钥随机性就更大,相对来说密钥就更安全。 密钥生成完成之后,你将看到下图4: [![4](https://blog.roadofgrowth.com/images/old/2015/04/42-300x287.png)](https://blog.roadofgrowth.com/images/old/2015/04/42.png) 其中,方框中的公钥,一会要复制到VPS里面。备注可修改也可默认,密码可加可不加。然后点击"Save private key",将私钥保存下来,名称例如:private.ppk 私钥保存完成之后,现在回到putty中。 执行下面的命令,将切换到新建的demo用户,此时当前目录应该也切换到demo用户的home目录下:
su - demo
分别执行下面两条命令,新建一个.ssh文件夹并设置权限:
mkdir .ssh
chmod 700 .ssh
现在要将之前生成的公钥保存到.ssh文件夹下的authroized_keys里面。执行下面的命令:
vi .ssh/authorized_keys
进入vi编辑器后,先按一下键盘上的小写字母i,进入vi的插入模式。接着,将图4中红色方框中的公钥复制,粘贴进来。然后按一下键盘上的ESC键,退出vi的编辑模式,然后输入 :wq 回车,保存退出。然后输入如下命令,退出demo用户,回到root。
exit

三、禁用root用户SSH远程登录

下面修改SSH的配置文件,以便禁止root用户远程登录以及密码登录。输入如下命令,打开ssh配置文件:

vi /etc/ssh/sshd_config

禁止root用户远程登录,找到下面这行,将yes改为no:

PermitRootLogin yes

禁止密码登录,找到下面这行,将#号删掉,并将yes改变no:

#PasswordAuthentication yes

 

最好再改一下ssh登录的端口,找到下面这行,一般VPS默认的都是22,将22可以改为一个不常用的,例如:12345,注意必须小于65536.

Port 22

然后保存退出。

最后,执行下面的命令,重启SSH服务:

service ssh restart

此时,这个putty窗口不要关掉,另外再打开一个putty,在session目录下,输入你的IP和刚才改好的端口号,如下图:

5

 

然后在Connection->SSH->Auth目录下,点击”Browse”,选择你之前保存的私钥private.ppk,然后点击”Open”,

6

 

会提示你输入要登录的用户名,这里输入demo,然后回车,就能登录了:

7

 

登录成功画面大致如下:

8

接下来,将继续用demo这个用户进行操作,配置防火墙

四、开启防火墙

防火墙可能有多种,在这里,我们使用ufw

执行如下命令:

sudo ufw status

输入demo用户的密码后,将会看到ufw的状态信息,如果提示错误或者说找不ufw之类,可能系统中还没有安装ufw,这时候你可以手动执行如下命令安装:

sudo apt-get update
sudo apt-get install ufw

一旦开启防火墙,那么所有端口都是默认关闭的。所以,当你要用到哪个端口,就将哪个端口放行。例如,上面的步骤中用到了12345这个端口,用来SSH远程登录,那么我们就需要将12345这个端口放开,执行如下命令:

sudo ufw allow 12345/tcp

如果你的VPS用来建站,那么可能就需要放开80端口,那就把上命令中的12345换成80即可,又或者VPS用来搭建shadowsocks服务器,那么,可能就要相应的打开你shadowsocks用的那个端口了。端口添加完成之后,那么就要启用防火墙ufw了,执行如下命令,启用ufw:

sudo ufw enable

 

五、时区配置(可选)

最后,如果你的VPS如果用来建站,可能你会想改一个VPS的时区,那么执行如下命令:

sudo dpkg-reconfigure tzdata

如下图,通过键盘上下键选择地区,回车确认:

9

然后再选择时区,确定回车:

10

时区配置完成显示:

11