夏日清荷 發表於 2023-8-22 00:00:00

Linode VPS主机购买与配置全流程攻略

<p>
        <strong>购买</strong><br>
        因为我主要的考量不是价格,而是主机的效能与稳定性,还有是否有提供备份的机制,Linode 的稳定性大家都说不错,还可以加 25% 的费用备份整台主机,所以我就选择了 Linode 的 VPS,以下是我在 Linode 注册与购买 VPS 的过程记录。<br><strong>STEP 1</strong><br>
        首先到 Linode 的官方网站,填入自己的 E-mail、账号名称与自选的密码。<br><img style="max-width:100%!important;height:auto!important;"title="Linode VPS主机购买与配置全流程攻略" alt="Linode VPS主机购买与配置全流程攻略" src="https://zhuji.jb51.net/uploads/img/202305/37e65070f5739a5608e327e0ae1322b5.jpg"></p>
<p>
        填完送出之后,Linode 会先寄一封确认信到自己的 E-mail 信箱。<br><strong>STEP 2</strong><br>
        到自己的 E-mail 信箱收信,点选上面的确认连结。<br><img style="max-width:100%!important;height:auto!important;"title="Linode VPS主机购买与配置全流程攻略" alt="Linode VPS主机购买与配置全流程攻略" src="https://zhuji.jb51.net/uploads/img/202305/38b8cdffd89cd14f4b12defba53feb47.jpg"></p>
<p>
        <strong>STEP 3</strong><br>
        点选 E-mail 中的确认连结后,就会开启注册的资料填写网页。<br><img style="max-width:100%!important;height:auto!important;"title="Linode VPS主机购买与配置全流程攻略" alt="Linode VPS主机购买与配置全流程攻略" src="https://zhuji.jb51.net/uploads/img/202305/2e338434094a32cf3f80346d412e49e6.jpg"></p>
<p>
        这里除了填入基本资料之外,还要输入信用卡预先储值。而优惠代码的部分,则可以上网搜寻「linode promo code」。<br><strong>STEP 4</strong><br>
        注册完成之后,就可以马上建立 VPS 主机了,Linode 上面有各种等级的方案,刚开始用可以选择最基本的「Linode 1024」,每个月收费是 10 元美金。<br><img style="max-width:100%!important;height:auto!important;"title="Linode VPS主机购买与配置全流程攻略" alt="Linode VPS主机购买与配置全流程攻略" src="https://zhuji.jb51.net/uploads/img/202305/496104c93d41cc5199d8f758297413d2.jpg"></p>
<p>
        Linode 在全球各地有好几的资料中心,您可以选择自己想要的地点,如果是一般的中文网站,服务对象以东亚为主,可以选择今年四月刚成立的新加坡资料中心。<br>
        日本东京的资料中心因为主机售罄,目前无法提供给新的主机进驻,Linode 正在兴建第二个日本资料中心,有兴趣的人可以关注 Linode 的部落格。<br><strong>STEP 5</strong><br>
        建立好一个虚拟主机之后,点选它进入管理界面。<br><img style="max-width:100%!important;height:auto!important;"title="Linode VPS主机购买与配置全流程攻略" alt="Linode VPS主机购买与配置全流程攻略" src="https://zhuji.jb51.net/uploads/img/202305/c913347797c200e4d665294369383871.jpg"></p>
<p>
        <strong>STEP 6</strong><br>
        点选「Deploy an Image」,安装系统。<br><img style="max-width:100%!important;height:auto!important;"title="Linode VPS主机购买与配置全流程攻略" alt="Linode VPS主机购买与配置全流程攻略" src="https://zhuji.jb51.net/uploads/img/202305/13b283f33581a623357d9edcbb65346d.jpg"></p>
<p>
        <strong>STEP 7</strong><br>
        选择 Linux 发行版,并指定硬盘空间的配置,以及 root 管理者的密码。<br><img style="max-width:100%!important;height:auto!important;"title="Linode VPS主机购买与配置全流程攻略" alt="Linode VPS主机购买与配置全流程攻略" src="https://zhuji.jb51.net/uploads/img/202305/aac3fb85775c32f37861aa76da5d746d.jpg"></p>
<p>
        <strong>STEP 8</strong><br>
        安装好之后,点选「Boot」开机。<br><img style="max-width:100%!important;height:auto!important;"title="Linode VPS主机购买与配置全流程攻略" alt="Linode VPS主机购买与配置全流程攻略" src="https://zhuji.jb51.net/uploads/img/202305/5cb0683a4e4ab9d6f85fed0a3e23240c.jpg"></p>
<p>
        <strong>STEP 9</strong><br>
        从「Remote Access」签页中可以看到服务器的 IP 信息,还有各种远端登入的方式。<br><img style="max-width:100%!important;height:auto!important;"title="Linode VPS主机购买与配置全流程攻略" alt="Linode VPS主机购买与配置全流程攻略" src="https://zhuji.jb51.net/uploads/img/202305/386ee66afa063bbe1e237beed9035363.jpg"></p>
<p>
        您可以使用传统的 SSH 登入,或是使用 Linode 所提供的 Console Access 功能。我是感觉它的「Lish via Ajaxterm」非常好用,只要从网页上点选「Launch Lish Ajax Console」,就会接出现这样的 console,完全不需要安装任何东西。<br><img style="max-width:100%!important;height:auto!important;"title="Linode VPS主机购买与配置全流程攻略" alt="Linode VPS主机购买与配置全流程攻略" src="https://zhuji.jb51.net/uploads/img/202305/6cba5cb0ca122b91dee19da735de30ae.jpg"></p>
<p>
        这种从 console 登入的方式跟 SSH 登入是完全不同的(虽然看起来很像),它最棒的地方就是它不是透过主机的网络出来的,所以不会受到主机防火墙的影响,这个在变更防火墙设定时非常有用,管理者完全不必担心自己设错防火墙规则把自己挡在门外。<br>
        Linode 也有提供简单的 CPU 使用量、网络流量与硬盘 IO 的统计图,这些图是 Linode 自动产生的,不会影响到主机的运作,当然也不需要安装。<br><img style="max-width:100%!important;height:auto!important;"title="Linode VPS主机购买与配置全流程攻略" alt="Linode VPS主机购买与配置全流程攻略" src="https://zhuji.jb51.net/uploads/img/202305/13b77bb54dc91e5d995f23db01ea1db1.jpg"></p>
<p>
        <br><strong>Ubuntu的基本设定</strong><br>
        这里介绍 Linode VPS 在安装 Ubuntu Linux 系统之后,需要马上进行的一些基本安全性设定。<br>
        在购买 Linux VPS 虚拟专属主机之后,只要鼠标点几下,花个几秒钟就可以装好一个 Ubuntu Linux 系统,不过后续还有很多安全性设定必须自己动手处理,以下是各种设定的步骤教学。<br><strong>1.更新系统套件</strong><br>
        安装好 Ubuntu Linux 后,最先要做的就是更新系统套件:<br>
         </p>
<div class="msgheader">
        <div class="right">
                <span onclick="copycode(getid('phpcode18'));"><u>复制代码</u></span>
</div>
        <p>
                代码如下:</p>
</div>
<div class="msgborder" id="phpcode18">
        <br>
        sudo apt-get update<br>
        sudo apt-get upgrade</div>
<p>
        <br><strong>2.主机名称与 FQDN</strong><br>
        主机名称(hostname)可以自己任意取,他跟网址与 E-mail 位址等没有直接关系,各主机的名称不可以重复,有些人喜欢用星球、动物或是伟人的名字来命名,您可以自己想一个喜欢的名字,不过请避免使用 www 这类太过于一般化的名称。<br>
        Ubuntu Linux 可以下列指令变更主机名称:</p>
<div class="msgheader">
        <div class="right">
                <span onclick="copycode(getid('phpcode19'));"><u>复制代码</u></span>
</div>
        <p>
                代码如下:</p>
</div>
<div class="msgborder" id="phpcode19">
        <br>
        echo "einstein" &gt; /etc/hostname<br>
        hostname -F /etc/hostname</div>
<p>
        <br>
        这样会将主机名称设定为 einstein。<br>
        接着编辑 /etc/hosts,设定 FQDN(fully qualified domain name)。假设我们的主机名称为 einstein,网功能变量名称称(domain name)为 gtwang.org,FQDN 为 einstein.gtwang.org,主机对外的 IP 位址为 12.34.56.78,则将 /etc/hosts 设定为:</p>
<div class="msgheader">
        <div class="right">
                <span onclick="copycode(getid('phpcode20'));"><u>复制代码</u></span>
</div>
        <p>
                代码如下:</p>
</div>
<div class="msgborder" id="phpcode20">
        <br>
        127.0.0.1 localhost.localdomain localhost<br>
        12.34.56.78 einstein.gtwang.org einstein</div>
<p>
        <br>
        如果有使用 IPv6 的话,也要连同 IPv6 的位址一起加入:</p>
<div class="msgheader">
        <div class="right">
                <span onclick="copycode(getid('phpcode21'));"><u>复制代码</u></span>
</div>
        <p>
                代码如下:</p>
</div>
<div class="msgborder" id="phpcode21">
        <br>
        127.0.0.1 localhost.localdomain localhost<br>
        12.34.56.78 einstein.gtwang.org einstein<br>
        2600:3c01::a123:b456:c789:d012 einstein.gtwang.org einstein</div>
<p>
        <br>
        这里设定的 IP 位址与 FQDN 的对应必须跟 DNS 的 A 纪录吻合,若有使用 IPv6 的话,DNS 服务器上也要有对应的 AAAA 纪录。<br><strong>3.时区</strong><br>
        将时区(timezone)调整为自己所在地的时区,可以让系统纪录档上的时间戳记看起来更直觉。<br>
        Linode 的 Linux 时区预设是使用格林威治标准时间(UTC),我们可以使用下列指令更改时区的设定:</p>
<div class="msgheader">
        <div class="right">
                <span onclick="copycode(getid('phpcode22'));"><u>复制代码</u></span>
</div>
        <p>
                代码如下:</p>
</div>
<div class="msgborder" id="phpcode22">
        <br>
        dpkg-reconfigure tzdata</div>
<p>
        <br>
        更改完成后,再用 date 确认一下:</p>
<div class="msgheader">
        <div class="right">
                <span onclick="copycode(getid('phpcode23'));"><u>复制代码</u></span>
</div>
        <p>
                代码如下:</p>
</div>
<div class="msgborder" id="phpcode23">
        date</div>
<p>
        <br>
        看看输出的时间是否正确。<br><strong>4.新增使用者</strong><br>
        在 Linode 上刚装好的 Ubuntu Linux 是直接用 root 登入的,没有一般使用者账号,但如果所有的动作都使用 root 来操作,会给系统带来很大的风险,通常我们都会一般账号来登入,必要时才切换成 root 权限,以避免下错指令等意外发生。<br>
        在 Ubuntu Linux 下新增一个使用者:</p>
<div class="msgheader">
        <div class="right">
                <span onclick="copycode(getid('phpcode24'));"><u>复制代码</u></span>
</div>
        <p>
                代码如下:</p>
</div>
<div class="msgborder" id="phpcode24">
        <br>
        adduser myuser</div>
<p>
        <br>
        将 myuser 这个使用者加入 sudo 群组:</p>
<div class="msgheader">
        <div class="right">
                <span onclick="copycode(getid('phpcode25'));"><u>复制代码</u></span>
</div>
        <p>
                代码如下:</p>
</div>
<div class="msgborder" id="phpcode25">
        <br>
        usermod -a -G sudo myuser</div>
<p>
        <br>
        这样设定好之后,在用这个账号以 SSH 登入:</p>
<div class="msgheader">
        <div class="right">
                <span onclick="copycode(getid('phpcode26'));"><u>复制代码</u></span>
</div>
        <p>
                代码如下:</p>
</div>
<div class="msgborder" id="phpcode26">
        <br>
        ssh myuser@12.34.56.78</div>
<p>
        <br>
        然后测试看看是否能使用 sudo:</p>
<div class="msgheader">
        <div class="right">
                <span onclick="copycode(getid('phpcode27'));"><u>复制代码</u></span>
</div>
        <p>
                代码如下:</p>
</div>
<div class="msgborder" id="phpcode27">
        <br>
        sudo su</div>
<p>
        <br>
        如果能取得 root 权限就表示没问题了。<br><strong>5.SSH 金钥认证登入</strong><br>
        SSH 公开金钥认证可以大幅增加服务器的安全性,我们可以使用 ssh-keygen 在自己的计算机中产生金钥后,再将公钥放进服务器中:</p>
<div class="msgheader">
        <div class="right">
                <span onclick="copycode(getid('phpcode28'));"><u>复制代码</u></span>
</div>
        <p>
                代码如下:</p>
</div>
<div class="msgborder" id="phpcode28">
        <br>
        ssh-keygen<br>
        scp ~/.ssh/id_rsa.pub myuser@12.34.56.78:</div>
<p>
        <br>
        接着再到服务器上,建立 .ssh 目录,把公钥放置在 .ssh/authorized_keys:</p>
<div class="msgheader">
        <div class="right">
                <span onclick="copycode(getid('phpcode29'));"><u>复制代码</u></span>
</div>
        <p>
                代码如下:</p>
</div>
<div class="msgborder" id="phpcode29">
        <br>
        mkdir .ssh<br>
        mv id_rsa.pub .ssh/authorized_keys</div>
<p>
        <br>
        设定好档案权限:</p>
<div class="msgheader">
        <div class="right">
                <span onclick="copycode(getid('phpcode30'));"><u>复制代码</u></span>
</div>
        <p>
                代码如下:</p>
</div>
<div class="msgborder" id="phpcode30">
        <br>
        chown -R myuser:myuser .ssh<br>
        chmod 700 .ssh<br>
        chmod 600 .ssh/authorized_keys</div>
<p>
        <br>
        设定好之后,记得要测试 myuser 这个使用者是否可以不需要密码登入 SSH。<br><strong>6.停用 SSH 密码登入</strong><br>
        编辑 /etc/ssh/sshd_config,将密码登入功能关闭:</p>
<div class="msgheader">
        <div class="right">
                <span onclick="copycode(getid('phpcode31'));"><u>复制代码</u></span>
</div>
        <p>
                代码如下:</p>
</div>
<div class="msgborder" id="phpcode31">
        <br>
        PasswordAuthentication no</div>
<p>
        <br>
        同时也停用 root 登入:</p>
<div class="msgheader">
        <div class="right">
                <span onclick="copycode(getid('phpcode32'));"><u>复制代码</u></span>
</div>
        <p>
                代码如下:</p>
</div>
<div class="msgborder" id="phpcode32">
        <br>
        PermitRootLogin no</div>
<p>
        <br>
        重新启动 SSH 服务器:</p>
<div class="msgheader">
        <div class="right">
                <span onclick="copycode(getid('phpcode33'));"><u>复制代码</u></span>
</div>
        <p>
                代码如下:</p>
</div>
<div class="msgborder" id="phpcode33">
        <br>
        sudo service ssh restart</div>
<p>
        <br><strong>7.防火墙</strong><br>
        防火墙我习惯使用 ufw 来设定:</p>
<div class="msgheader">
        <div class="right">
                <span onclick="copycode(getid('phpcode34'));"><u>复制代码</u></span>
</div>
        <p>
                代码如下:</p>
</div>
<div class="msgborder" id="phpcode34">
        <br>
        sudo ufw enable<br>
        sudo ufw allow ssh<br>
        sudo ufw allow http/tcp<br>
        sudo ufw allow https/tcp<br>
        ufw allow from 12.34.0.0/16</div>
<p>
        <br>
        这里开启 SSH、HTTP 与 HTTPS 这几个连接埠,另外对 12.34.0.0/16 这个子网域开放所有的连线,用来开发与测试用。<br><strong>8.Fail2Ban</strong><br>
        Fail2Ban 可以用来阻挡一些来自网络上的恶意攻击,当它侦测到来自网络的某个 IP 不断尝试入侵系统时,会建立一个暂时性的防火墙规则,将攻击者的 IP 封锁。Fail2Ban 可以用下列指令安装:</p>
<div class="msgheader">
        <div class="right">
                <span onclick="copycode(getid('phpcode35'));"><u>复制代码</u></span>
</div>
        <p>
                代码如下:</p>
</div>
<div class="msgborder" id="phpcode35">
        <br>
        sudo apt-get install fail2ban</div>
<p>
        <br>
        安装完成后,Fail2Ban 预设只会对 SSH 进行监控,若要更改设定可以将自己的设定写在 /etc/fail2ban/jail.local 设定档中,在这个档案中,我们也可以设定当侦测到几次登入失败后才开始阻挡 IP(maxretry),还有每次阻挡 IP 的时间长度(bantime)。修改设定之后,记得重新启动 Fail2Ban:<br>
        service fail2ban restart</p>
頁: [1]
查看完整版本: Linode VPS主机购买与配置全流程攻略