推荐理由:vim
许多我的开发者在云服务器上搭建网站时,喜欢使用 Ubuntu 操做系统;那么在云厂商购买 了Ubuntu 服务器以后,如何确保服务器的安全,以及如何正确配置它,我以为这点很关键;而我今天推荐的这篇文章,就介绍了在购买 Ubuntu 服务器以后,为了确保服务器的安全,开发者应该要作的一些配置,但愿对你们有所帮助。安全
如下为文章原文:
在云服务器上搭建网站时,许多我的开发者喜欢使用 Ubuntu 操做系统。据 W3C 的一项调查,Ubuntu 占据了网站服务器市场的 13.4%,并且还在呈上升趋势。因为其较高的使用率,腾讯云等云计算厂商均提供了 Ubuntu 操做系统的镜像。服务器
本文将介绍在云厂商购买 Ubuntu 服务器以后,为了确保服务器的安全,开发者应该要作的一些配置。完成本文的操做以后,服务器的安全性将获得更好的保障。微信
新建云服务器实例网络
在开始配置以前,咱们先新建一个云服务器实例。新用户可领取免费代金券,得到1个月左右的无偿使用时间。若是已经使用代金券,可考虑使用笔者的推荐连接来购买服务器。ssh
这里,咱们选择计费模式选择为「包年包月」。对于须要长期运行的网站应用来讲,包年包月的模式仍是比较划算的。机型选择标准型S1中最低配,即 1核CPU、1GB 内存。编辑器
选择存储与网络时,建议将系统盘选择为云硬盘,除了能够得到免费赠送的空间以外,还方便之后根据需求升级 CVM 的 CPU 和内存。其余的使用默认设置便可。网站
接下来须要设置一些 CVM 相关的信息,如主机名和登录密码。一开始,你的帐号下只有默认项目,云计算
若是你不但愿手动设置密码,能够选择「自动生成密码」,腾讯云会向你的注册邮箱发送相关登录信息。安全组暂时选择为默认安全组,将暴露全部端口到公网和内网。spa
root 登录
在登录刚启动的 CVM 实例以前,咱们须要知道服务器的公网 IP,以及 root 用户的密码。若是你选择的是自动生成密码,那么请查看邮箱。接下来,咱们在本地使用以下命令登录到服务器。
$ ssh root@qcloud-cvm-ip # 请将 qcloud-cvm-ip 替换为实际 IP
按照提示进行操做,输入 root 用户验证所需的密码(能够从腾讯云发送的邮件中找到)。若是这是你第一次使用密码登录服务器,登录成功后系统还会提示你更换 root 密码。
root 用户
root 用户是 Linux 环境下的超级管理用户,拥有很是大的权限。因为 root 用户权限过大,不建议你们平常使用 root 帐号进行服务器操做。由于有可能会出现让你加班、甚至被开除的意外。
所以,咱们接下来建立一个新的用户帐号,在平常工做中使用。
建立新用户
以 root 帐号登录服务器以后,咱们就能够添加之后常用的用户帐号了。本文中,咱们将建立一个名为 demo 的新用户,你能够根据本身的状况选择合适的用户名。
$ adduser demo
系统会要求你回答一些问题,最重要的就是设置该用户的密码。对于其余问题,并非必须的,能够直接按回车键完成。
添加 root 权限
如今 demo 用户还只是一名普通用户,不具有系统管理权限。咱们须要为该用户添加 root 权限。这样,就能够在每一个命令前加上 sudo 以管理员权限执行了。
安装 sudo
因为 Debian 8 系统默认没有安装 sudo 包,所以咱们先经过 apt-get 安装。
首先,更新 apt 包目录:
$ apt-get update
而后使用下面的命令安装 sudo:
$ apt-get install sudo
如今可使用 sudo 和 visudo 命令了。
赋予 sudo 权限
为了给新用户添加管理权限,咱们须要把新用户添加到 sudo 用户组。Ubuntu 操做系统中,属于 sudo 用户组的用户默承认以使用 sudo 命令。
在 root 用户下 ,运行以下命令,将 demo 用户添加到 sudo 用户组:
$ usermod -a -G sudo demo
上面的命令中,-a 选项指的是将用户添加到对应的用户组中,只能配合 -G 选项一块儿使用。-G 后能够指定多个用户组名称。如 $ usermod -a -G sudo, wwww-data。
添加公钥验证
推荐给新用户添加公钥验证,一来能够避免每次登录时都要输入密码,二来须要私钥才能登录能够提升安全性。
生成密钥对
若是没有现成的 SSH 密钥对(由公钥和私钥组成),很容易就能够生成。只须要在本地机器上输入以下命令便可:
ssh-keygen
假如本地用户的名称为 demo,接下来应该会看到以下输出:
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/demo/.ssh/id_rsa):
若是你之前没有生成过密钥对,按回车接受默认设置便可。若是有旧的密钥对的话,这样会覆盖之前的密钥对,建议更改成别的文件名。系统还会提示输入口令(passphrase),为了简单起见,咱们直接回车使用空口令。若是你输入了口令的话,那么在 SSH 登录时,除了须要提供密钥以外,还须要输入口令才能登录。
命令运行结束后,会在本地用户的根目录中的 .ssh 目录下建立一个私钥 id_rsa 和一个公钥 id_rsa.pub。记得别公开分享你本身的私钥。
复制公钥
赋值公钥有两种方法,一是经过 sshh-copy-id 脚本自动赋值到远程用户,二是手动安装。
ssh-copy-id 脚本
若是本地机器上安装了 ssh-copy-id 脚本,那么就可使用该脚本将公钥安装到任何有登录权限的用户。
运行该脚本,同时指定用户名和服务器的 IP 地址:
$ ssh-copy-id demo@qcloud-cvm-ip
按提示输入登录密码后,你刚才生成的公钥就会自动赋值到远程用户的 .ssh/authorized_keys 文件中。接下来就可使用对应的私钥登录服务器了。
手动安装公钥
使用以下命令打印你刚刚生成的公钥(id_rsa.pub:
$ cat ~/.ssh/id_rsa.pub
打印出来的公钥大体应该是这样子的:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDBGTO0tsVejssuaYR5R3Y/i73SppJAhme1dH7W2c47d4gOqB4izP0+fRLfvbz/tnXFz4iOP/H6eCV05hqUhF+KYRxt9Y8tVMrpDZR2l75o6+xSbUOMu6xN+uVF0T9XzKcxmzTmnV7Na5up3QM3DoSRYX/EP3utr2+zAqpJIfKPLdA74w7g56oYWI9blpnpzxkEd3edVJOivUkpZ4JoenWManvIaSdMTJXMy3MtlQhva+j9CgguyVbUkdzK9KKEuah+pFZvaugtebsU+bllPTB0nlXGIJk98Ie9ZtxuY3nCKneB+KjKiXrAvXUPCI9mWkYS/1rggpFmu3HbXBnWSUdf demo@Windows.local
而后,以新用户身份登录服务器:
$ ssh demo@qcloud-cvm-ip
登录成功后,应该会进入该用户的根目录。接下来建立一个叫 .ssh 的新目录,而后使用以下命令限制目录权限:
mkdir .ssh
chmod 700 .ssh
700 表示只有目录的全部者才能读、写和执行。
如今使用 Vim 文本编辑器在 .ssh 目录下建立一个名为 authorized_keys 的文件。
$ vim .ssh/authorized_keys
在 Vim 中按 i 进入插入模式,而后 Ctrl + v 粘贴以前赋值的公钥。而后按 Esc 回到正常模式,在英文输入法下键入 :wq 保存并退出文件。
并使用以下命令限制文件的权限:
chmod 600 .ssh/authorized_keys
600 表示文件全部者可读、可写。
以后,你就可使用私钥验证登录服务器了,没必要重复输入密码。
禁用 root 登录
在开始配置服务器的时候 ,咱们提到了最好不用使用 root 帐号登录服务器。为了确保不会出现这种状况,咱们能够修改 SSH daemon 的配置,禁止远程登录值 root 帐号。
以上面配置的管理员用户身份,使用 sudo 命令打开配置文件:
$ sudo vim /etc/ssh/sshd_config
若是想禁止远程 root 登录,找到下面这行文本:
PermitRootLogin yes
将其修改成
PermitRootLogin no
并保存文件。因为咱们已经建立了一个管理用户,并且能够视状况增长权限,禁止 root 帐号登录反而可让服务器更加安全。
最后,只须要重启 SSH 服务便可让新配置生效。
$ systemctl restart ssh
本地配置 SSH
完成以上配置以后, 之后咱们每次只须要 ssh demo@qcloud-cvm-ip 便可登录服务器。
不过这样仍是有点麻烦,每次都得输入用户名和 IP 地址。为了进一步简化操做,咱们对本地的 SSH 登录进行配置。
打开 ~/.ssh/config 文件,而后添加以下配置:
Host qcloud
Hostname qcloud-cvm-ip
User demo
IdentityFile ~/.ssh/id_rsa
以后,只须要执行 ssh qcloud 便可登录服务器。
文章出自腾讯云技术社区
(埋文字链https://www.qcloud.com/commun...)
推荐你们关注腾讯云技术社区微信公众号:QcloudCommunity