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