美文网首页计算机技术我用 Linux
个人云服务器建设——(1)Ubuntu16.04云服务器初始化管

个人云服务器建设——(1)Ubuntu16.04云服务器初始化管

作者: afbbcde7fa3e | 来源:发表于2018-01-25 23:29 被阅读30次

    介绍

    如今,云服务器在网络服务中已经变得非常常见,与传统的机房相比,云服务器具有快速升级、降级硬件配合的优势,可以根据业务开展情况随时对服务器进行调整,既不会浪费性能,也不至于性能不足。对个人来说,拥有一台自己的云服务器,只需要很简单的操作,就可以搭建属于自己的网络服务平台,这在很多方面都是很有益的。

    在国内来说,大型网络企业在自己使用大量云服务器的同时,也都纷纷提供云服务器功能,比较著名的有阿里云,腾讯云,亚马逊,微软Azure,以及百度云,京东云,华为云等等。

    云服务器的购买方式在上述各家网站上都有详细的描述,而对于学生与创业企业来说,各家云服务器提供商也都有不同程度的优惠。一般而言,最低的云服务器配置对于新手来说性能已经足够了。

    云服务器系统配置一般为Windows Server或者Linux发行版,考虑到服务器系统的流行性,对新手最友好的Linux发行版Ubuntu是最佳选择(当然喜欢CentOS的也大有人在)。

    SSH登陆

    购买云服务器后,运营商都会提供登陆的公网IP地址以及登陆密码。Linux云服务器默认都会打开22端口供SSH登陆。如果操作系统是Windows,需要下载XSHELL或者Putty这样的SSH登陆工具,在Linux下则可以直接通过命令行进行SSH登陆。
    当然,Windows系统也可以通过安装Cygwin以运行Linux环境,这对熟悉Linux操作很有帮助,而在Windows10的情况下,也可以安装Ubuntu或者SUSE这样的Linux发行版。

    ssh root@(ip地址)
    

    阿里云服务器默认用户是root,腾讯云Ubuntu系统默认用户名是ubuntu,这一点腾讯云做的更好。默认以root登陆实际上会给系统带来很多潜在问题。因此,一般情况下在登陆过后需要创建一个额外的用户用于远程管理

    创建用户

    通过以下命令创建用户,比如要创建用户名demo

    add user demo
    

    按系统提示输入密码即可,输入强密码会提高系统安全性,一般要求包含大小写,数字以及特殊字符且长度不小于8位。

    设置root权限

    创建用户之后需要给用户设置su即superuser(超级用户)权限,因为很多操作必须要通过su权限进行,而如果反复切换到root用户下则违背了我们提高安全性的初衷。因此,在root角色下为新用户设置sudo权限。

    usermode -aG sudo demo
    

    这个命令实际上是把demo用户添加到sudo组中,也因此demo会拥有sudo权限。

    添加公钥登陆

    在远程服务器管理的时候,最好通过密钥而非密码的方式进行登陆,这样可以最大程度上降低密码被破解的风险。密钥的方式涉及密码学知识,一般来说采用密钥对的时候,系统生成一对密钥,一个为公钥,一个为似钥,公钥可以放在任意地方,公开在网站上也可以,但是私钥必须妥善保管,因为只要拿私钥就可以与公钥配对。我一个简单的理解是,公钥其实相当于锁而私钥相当于钥匙。你可以把锁挂在任何地方,但是钥匙必须自己保管好才能拿来开锁。
    要添加密钥登陆,首先要生成一对密钥。(在本地电脑上,绝对不能在远程计算机上生成)

    ssh-keygen
    

    这个命令可以生成一对密钥,按照命令提示即可。在生成过程中也可以输入密码再保护密钥,这样更安全。
    生成的密钥对一般在/home/demo/.ssh/目录下,如果生成的是rsa密钥,则公钥名称为 id_rsa.pub,私钥为id_rsa。在windows下目录会不一样(其实我也不知道放在哪有用,有一次放在/user/的个人目录下面好像可以了。如果有多个云服务器,也没有必要为每个服务器生成不同的密钥对,有一对基本上就够用了。

    上传公钥

    上传公钥有两种办法

    使用专用命令

    使用下面的命令可以一步到位完成上传密钥并添加到远程计算机的.ssh/authorized_keys文件里。

    ssh-copy-id demo@(ip地址)
    

    注意。.ssh是隐藏文件夹,在Linux下是通过给文件或者文件夹名前面加.来表示隐藏文件的,可以通过ls -a参数查看

    手动完成

    手工完成上传公钥的命令可以弄明白ssh-copy-id都干了啥。

    cat ~/.ssh/id_rsa.pub
    

    这个命令把公钥输出在终端里,也可以通过编辑器打开文件。把内容复制下来。然后通过终端ssh登陆到远程服务器上(通过demo)

    su -demo
    mkdir ~/.ssh
    chmod 700 ~/.ssh
    nano(vim) ~/.ssh/authorized_keys
    

    以上命令依次赋予demo sudo权限,建立.ssh目录并修改权限,新建一个authorized_keys的文件(可以用熟悉的编辑器,nano,vim都可以)。
    把之前复制的公钥内容粘贴到这个新文件里并保存。

    chmod 600 ~/.ssh/authorized_keys
    

    修改文件权限以提高安全性。

    禁用密码登陆

    完成密钥设置后,最好禁止通过密码登陆以提高服务器安全性(当然,这要建立在确保密钥能登陆上去的情况下,要不然就恐怕只能重置服务器了,因此自己再也登陆不上去了)

    sudo nano /etc/ssh/sshd_config
    

    打开ssh配置文件,找到下列内容并修改为下列值

    PasswordAuthentication no
    PubkeyAuthentication yes
    ChallengeResponseAuthentication no
    

    退出或者重启以下远程服务器,再通过ssh测试一下登陆。

    设置防火墙。

    可以通过ufw设置系统防火墙。

    sudo ufw app list
    

    查看通过或者禁止的程序列表

    sudo ufw allow OpenSSH
    

    允许SSH登陆

    sudo ufw enable
    sudo ufw status
    

    启用防火墙并检查状态。

    初步的服务器配置工作基本上到这里就完成了。

    相关文章

      网友评论

        本文标题:个人云服务器建设——(1)Ubuntu16.04云服务器初始化管

        本文链接:https://www.haomeiwen.com/subject/uyobaxtx.html