購買
因為我主要的考量不是價格,而是主機的效能與穩(wěn)定性,還有是否有提供備份的機制,Linode 的穩(wěn)定性大家都說不錯,還可以加 25% 的費用備份整臺主機,所以我就選擇了 Linode 的 VPS,以下是我在 Linode 注冊與購買 VPS 的過程記錄。
STEP 1
首先到 Linode 的官方網(wǎng)站,填入自己的 E-mail、賬號名稱與自選的密碼。
填完送出之后,Linode 會先寄一封確認(rèn)信到自己的 E-mail 信箱。
STEP 2
到自己的 E-mail 信箱收信,點選上面的確認(rèn)連結(jié)。
STEP 3
點選 E-mail 中的確認(rèn)連結(jié)后,就會開啟注冊的資料填寫網(wǎng)頁。
這里除了填入基本資料之外,還要輸入信用卡預(yù)先儲值。而優(yōu)惠代碼的部分,則可以上網(wǎng)搜尋「linode promo code」。
STEP 4
注冊完成之后,就可以馬上建立 VPS 主機了,Linode 上面有各種等級的方案,剛開始用可以選擇最基本的「Linode 1024」,每個月收費是 10 元美金。
Linode 在全球各地有好幾的資料中心,您可以選擇自己想要的地點,如果是一般的中文網(wǎng)站,服務(wù)對象以東亞為主,可以選擇今年四月剛成立的新加坡資料中心。
日本東京的資料中心因為主機售罄,目前無法提供給新的主機進(jìn)駐,Linode 正在興建第二個日本資料中心,有興趣的人可以關(guān)注 Linode 的部落格。
STEP 5
建立好一個虛擬主機之后,點選它進(jìn)入管理界面。綿陽電信機房
STEP 6
點選「Deploy an Image」,安裝系統(tǒng)。
STEP 7
選擇 Linux 發(fā)行版,并指定硬盤空間的配置,以及 root 管理者的密碼。
STEP 8
安裝好之后,點選「Boot」開機。
STEP 9
從「Remote Access」簽頁中可以看到服務(wù)器的 IP 信息,還有各種遠(yuǎn)端登入的方式。
您可以使用傳統(tǒng)的 SSH 登入,或是使用 Linode 所提供的 Console Access 功能。我是感覺它的「Lish via Ajaxterm」非常好用,只要從網(wǎng)頁上點選「Launch Lish Ajax Console」,就會接出現(xiàn)這樣的 console,完全不需要安裝任何東西。
這種從 console 登入的方式跟 SSH 登入是完全不同的(雖然看起來很像),它最棒的地方就是它不是透過主機的網(wǎng)絡(luò)出來的,所以不會受到主機防火墻的影響,這個在變更防火墻設(shè)定時非常有用,管理者完全不必?fù)?dān)心自己設(shè)錯防火墻規(guī)則把自己擋在門外。
Linode 也有提供簡單的 CPU 使用量、網(wǎng)絡(luò)流量與硬盤 IO 的統(tǒng)計圖,這些圖是 Linode 自動產(chǎn)生的,不會影響到主機的運作,當(dāng)然也不需要安裝。
Ubuntu的基本設(shè)定
這里介紹 Linode VPS 在安裝 Ubuntu Linux 系統(tǒng)之后,需要馬上進(jìn)行的一些基本安全性設(shè)定。
在購買 Linux VPS 虛擬專屬主機之后,只要鼠標(biāo)點幾下,花個幾秒鐘就可以裝好一個 Ubuntu Linux 系統(tǒng),不過后續(xù)還有很多安全性設(shè)定必須自己動手處理,以下是各種設(shè)定的步驟教學(xué)。
1.更新系統(tǒng)套件
安裝好 Ubuntu Linux 后,最先要做的就是更新系統(tǒng)套件:成都服務(wù)器托管
代碼如下:
2.主機名稱與 FQDN
主機名稱(hostname)可以自己任意取,他跟網(wǎng)址與 E-mail 位址等沒有直接關(guān)系,各主機的名稱不可以重復(fù),有些人喜歡用星球、動物或是偉人的名字來命名,您可以自己想一個喜歡的名字,不過請避免使用 www 這類太過于一般化的名稱。
Ubuntu Linux 可以下列指令變更主機名稱:成都服務(wù)器托管
代碼如下:
這樣會將主機名稱設(shè)定為 einstein。
接著編輯 /etc/hosts,設(shè)定 FQDN(fully qualified domain name)。假設(shè)我們的主機名稱為 einstein,網(wǎng)功能變量名稱稱(domain name)為 gtwang.org,F(xiàn)QDN 為 einstein.gtwang.org,主機對外的 IP 位址為 12.34.56.78,則將 /etc/hosts 設(shè)定為:成都服務(wù)器托管
代碼如下:
如果有使用 IPv6 的話,也要連同 IPv6 的位址一起加入:成都服務(wù)器托管
代碼如下:
這里設(shè)定的 IP 位址與 FQDN 的對應(yīng)必須跟 DNS 的 A 紀(jì)錄吻合,若有使用 IPv6 的話,DNS 服務(wù)器上也要有對應(yīng)的 AAAA 紀(jì)錄。
3.時區(qū)
將時區(qū)(timezone)調(diào)整為自己所在地的時區(qū),可以讓系統(tǒng)紀(jì)錄檔上的時間戳記看起來更直覺。
Linode 的 Linux 時區(qū)預(yù)設(shè)是使用格林威治標(biāo)準(zhǔn)時間(UTC),我們可以使用下列指令更改時區(qū)的設(shè)定:成都服務(wù)器托管
代碼如下:
更改完成后,再用 date 確認(rèn)一下:成都服務(wù)器托管
代碼如下:
看看輸出的時間是否正確。
4.新增使用者
在 Linode 上剛裝好的 Ubuntu Linux 是直接用 root 登入的,沒有一般使用者賬號,但如果所有的動作都使用 root 來操作,會給系統(tǒng)帶來很大的風(fēng)險,通常我們都會一般賬號來登入,必要時才切換成 root 權(quán)限,以避免下錯指令等意外發(fā)生。
在 Ubuntu Linux 下新增一個使用者:成都服務(wù)器托管
代碼如下:
將 myuser 這個使用者加入 sudo 群組:成都服務(wù)器托管
代碼如下:
這樣設(shè)定好之后,在用這個賬號以 SSH 登入:成都服務(wù)器托管
代碼如下:
然后測試看看是否能使用 sudo:成都服務(wù)器托管
代碼如下:
如果能取得 root 權(quán)限就表示沒問題了。
5.SSH 金鑰認(rèn)證登入
SSH 公開金鑰認(rèn)證可以大幅增加服務(wù)器的安全性,我們可以使用 ssh-keygen 在自己的計算機中產(chǎn)生金鑰后,再將公鑰放進(jìn)服務(wù)器中:成都服務(wù)器托管
代碼如下:
接著再到服務(wù)器上,建立 .ssh 目錄,把公鑰放置在 .ssh/authorized_keys:成都服務(wù)器托管
代碼如下:
設(shè)定好檔案權(quán)限:成都服務(wù)器托管
代碼如下:
設(shè)定好之后,記得要測試 myuser 這個使用者是否可以不需要密碼登入 SSH。
6.停用 SSH 密碼登入
編輯 /etc/ssh/sshd_config,將密碼登入功能關(guān)閉:成都服務(wù)器托管
代碼如下:
同時也停用 root 登入:成都服務(wù)器托管
代碼如下:
重新啟動 SSH 服務(wù)器:成都服務(wù)器托管
代碼如下:
7.防火墻
防火墻我習(xí)慣使用 ufw 來設(shè)定:成都服務(wù)器托管
代碼如下:
這里開啟 SSH、HTTP 與 HTTPS 這幾個連接埠,另外對 12.34.0.0/16 這個子網(wǎng)域開放所有的連線,用來開發(fā)與測試用。
8.Fail2Ban
Fail2Ban 可以用來阻擋一些來自網(wǎng)絡(luò)上的惡意攻擊,當(dāng)它偵測到來自網(wǎng)絡(luò)的某個 IP 不斷嘗試入侵系統(tǒng)時,會建立一個暫時性的防火墻規(guī)則,將攻擊者的 IP 封鎖。Fail2Ban 可以用下列指令安裝:成都服務(wù)器托管
代碼如下:
安裝完成后,F(xiàn)ail2Ban 預(yù)設(shè)只會對 SSH 進(jìn)行監(jiān)控,若要更改設(shè)定可以將自己的設(shè)定寫在 /etc/fail2ban/jail.local 設(shè)定檔中,在這個檔案中,我們也可以設(shè)定當(dāng)偵測到幾次登入失敗后才開始阻擋 IP(maxretry),還有每次阻擋 IP 的時間長度(bantime)。修改設(shè)定之后,記得重新啟動 Fail2Ban:
service fail2ban restart