紮實的VPS教學-1

Hi,歡迎閱讀本系列第一篇,本系列的目的是教出知其然也知其所以然的VPS使用者,所以我會從基礎觀念開始說起。

緒論:

我想在說明VPS是甚麼之前我必須說明你是如何看到網站的,因為VPS說起來也只是一台在遠方的電腦,但是你必須了解整個架構,才不會混亂。

Http伺服器的架構圖
Http伺服器的架構圖

以上是典型網站的架構圖,使用者要進入一個網站時第一步就是將網址轉成IP位置,這部分依靠的是DNS服務,DNS服務雖然可以自己架設,但是我們一般會直接給其他服務商代管;DNS會告訴使用者該找誰瀏覽網站。

當使用者找到網頁伺服器後,就是一連串的模組互動已回傳使用者需要的網頁,以WordPress來說需要Apache、PHP、SQL來準備網頁;Apache負責處理靜態要求(html、htm、圖片、影片檔案)遇到PHP就丟給PHP引擎處理,PHP引擎具有存取資料庫、呼叫其他API的能力。此外就是需要一個資料庫來服務PHP模組囉。當然如果不想自己處理資料庫的問題,也可以使用外部的資料庫,目前各大公有雲都有資料庫的服務,主打高可用性與完善的備份方案,對於重要的網站不失為不二之選。

網頁伺服器

網頁伺服器分為Windows與Linux平台,Windows通常是使用IIS網頁伺服器;而基於經費問題,我主要使用Linux搭配Apache的架構(當然其他還有Nginx)搭配PHP與SQL模組來進行教學。

Linux

Linux是一套作業系統,必須要安裝網頁伺服器(例如Apache)與相關的軟體才能變成網頁伺服器;Linux具有免費、穩定的DNA,因此大部分的VPS都提供Linux的環境。通常VPS商會提供名為SSH的方式讓你連進你買的VPS,而一開始進去的那個黑底白字的畫面叫做Bash,是一種相對於圖形介面(GUI)的命令行(CLI))。在這裡先打個預防針:這個介面不會顯示密碼,願這針可以讓你不會卡在”打不出密碼”這種事情上面進去之後請觀察每行的前面,已確定你的身分:

root與user都是使用者名稱(User name),一般而言root是最高管理員;但是也不是必然,可以透過觀察最後面試#還是$來得知你的身分,$是普通使用者,反之#是管理員(可能有些限制,但還是算管理員),而centos是主機的名稱,在網路上辨識用的。

命令:

我們來說說關於命令這件事,這個主題是幫助各位看懂網路上面的教學文用的,希望大家可以少掉不少冤枉路。

使用者群組與目錄管理

我們初步了解到要如何與那個黑黑的框框互動了,接下來我們進入所謂的使用者與群組的單元吧,使用者與群組直接關係到的就是在這台電腦裡面你的地位,這代表了你可以動那些檔案、可以執行什麼檔案,所以使用者與群組是整台伺服器安全的基礎。

Linux最基礎的權限控制包含了使用者、群組、其他人,一個使用者可以加入很多群組,一個群組也可以有很多人(廢話),而一個檔案只有一個群組與一個擁有者;另外一個使用者會有一個主群組(類似名片印的那個,你可能屬於很多群組,但是你拿來示人的就那個),你建立的檔案預設會以你的主群組為主。

root可以對系統內一切事務進行管理,所以非必要一般不建議使用root進行日常的操作,但是當普通使用者要進行管理操作時,還是必須要和管理員借權力,通常使用”sudo”執行提權的操作。

更改權限我們一般使用chmod、chown、chgrp,分別是改權限、擁有者、群組。

其實這部分,鳥哥寫得比超級好,請參閱

文字編輯器:

Linux最常用的文字編輯器vi與vim,vim是vi的進化版,但是要自己安裝。使用vi後要跳出來請按esc然後按:(冒號)再按q(若要寫入請按w),聽說這個問題佔了國外程式論壇的0.05%流量;此外a是編輯,/是搜尋;詳細請看第九章、vim 程式編輯器

網路與安全

伺服器總是要連上網路給人用的,所以網路概念是絕對不可少的;一個連線進來,以封包為單位,一般會包含以下資料:來自哪個IP、到哪個IP、我的類型、我要找哪個程式。到哪個IP這件事情一般不是那麼重要,因為你不會收到不屬於你的封包,但是若不小心收到了,一般也是自動丟掉;來自哪個IP,這在安全性很重要,因為IP會透露出你的電信業者、國家地區,所以可以以此來篩選連線;類型常見的是TCP、UDP、ICMP,後兩者基本上在網頁伺服器可以drop(封鎖)掉;而系統判斷這封信要找誰的依據是Port,一台主機一般而言有65535個港口(Port),可以針對這些Port來決定開放的埠,Http/https使用的是80與443,所以這兩個洞口是要對大家開放的,而你控制的黑色介面是所謂的SSH,使用TCP/21,你可以限制他只能從台灣連線。

新的CentOS使用firewall-cmd作為防火牆,而較舊的系統使用iptable,基本上都很難用….建議關掉,依靠VPS服務商的防火牆做防禦,但是如果你的VPS服務商沒有防火牆…千萬不要自作孽把它關掉

SSH安全強化:

SSH務必使用非對稱金鑰登入,如果你的VPS供應商沒有提供這個功能,請自行設定,這非常重要。不會用的話請看[How To]用VPS架設LAMP的產生連線金鑰的部分,將它貼到~/.ssh/authorized_keys裡面。

之後請用vim編輯/etc/ssh/sshd_config,找到PasswordAuthentication這行,將它改成no;意味著不允許使用密碼登入。

程式的安裝與管理

CentOS使用yum來進行程式的安裝與管理,一般VPS都會幫你設定好yum,所以就不再贅述。進入VPS請先更新你的系統,yum常用指令如下:

yum的好處在於他會幫你安裝相依套件,例如你要裝A,但是需要B與C,他會幫你把ABC一起裝一裝;所以你安裝一個套件,有時候會一起裝幾十個,這時候要移除的話history undo就很重要了。


以上是Linux的基本操作,之後就要邁向網頁伺服器的路了,我會努力生下一篇的。



Post a Comment

Your email is never published nor shared. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

*
*