# 建立Linux環境 ## Linux Linux 是一種**自由且開放**的**類 Unix** 作業系統,原本是單指作業系統的 kernal,但是因為通常會包含許多工具,因此現在常以 Linux 表示使用 Linux kernal 的作業系統。 由於 Linux 是遵照 **GNU/GPL** 這個條款,因此所有人以及組織都可以自由地使用、修改、再發布。 有別於當前全球個人電腦最常使用的作業系統 Windows 以及 MacOS,Linux 是開源的作業系統。所謂的開源也就是程式碼公開,並且允許所有人遵照指定的 Licence 對這份程式碼進行修改、補強等等,前面提到的 GNU/GPL 就是其中一種 Licence。 除此之外, Linux 還具有很高的安全性、移植性以及穩定性。 為什麼我們要先提到 Linux 呢? 要回答這個問題,首先要先了解 Linux 主要運用在哪些地方。 由於 Linux 的高安全性以及高穩定性,許多的**網站伺服器**都是採用 Linux 作業系統,除此之外,常見的 **Android**、**MacOS** 也都是建立在 Linux 上的作業系統。 那麼既然我們要學習網頁安全以及滲透測試,自然就需要了解我們的目標使用的作業系統囉!除此之外,透過學習如何使用 Linux 也可以習慣使用命令列操作,最後幾乎手不需離開鍵盤就可以完成許多工作呢! 現在常見的 Linux 發行版有 Debian、Ubuntu、Fedora ...等等,而所謂的發行版(distribution) 也就是 Linux kernal 再加上許多的工具、套件等等所組合成的作業系統,大致上可以依照安裝軟體的方式不同分成兩類,分別是 RPM 以及 dpkg。 接下來我會使用 Ubuntu 作為主要使用的作業系統,但話說回來,由於現在大家常用的仍然是 Windows 以及 MacOS,如果要使用 Linux 作業系統,除了重灌以外可以**使用虛擬機**。 ## 虛擬機 Virtual Machine 虛擬機是一種特殊的軟體,可以讓我們在電腦當中建立隔離的環境,執行其他系統或是軟體。主要是透過軟體來類比硬體的功能,來模擬出一個機器原有的運作方式。 目前常見模擬作業系統的虛擬機有 VirtualBox 、 VMware 、 Hyper-V ...等等。而接下來我會使用 VirtualBox 以及輕量的 Hyper-V ── WSL2 進行說明。 大家可以自行選擇要使用 VirtualBox 或是 WSL2,下面會分別說明兩個虛擬機的安裝方式。 至於不使用 WSL1 是為了後面使用 Docker 比較方便,所以使用 WSL2。 ## 使用 VirtualBox 接下來會說明如何下載並安裝 VirtualBox,這裡使用的版本是 **6.1.26**。 ### Step 1: 前往 VirtualBox 官網,並下載 VirtualBox 前往 [VirtualBox 官網](https://www.virtualbox.org/),可以看到這樣的畫面:  點擊 **Download VirtualBox** 後會看到這個畫面:  選擇相對應的平台,就會開始下載最新版本的 VirtualBox 了。由於我是使用 Windows ,所以選擇 **Windows hosts**。 如果需要過去的版本,可以到 [Download VirtualBox (Old Builds)](https://www.virtualbox.org/wiki/Download_Old_Builds) 當中尋找。 ### Step 2: 安裝 VirtualBox 將下載的檔案開啟後,就會進到安裝精靈 選擇**下一步**  選擇**下一步**  選擇**下一步**  選擇**是**  選擇**安裝**,等待安裝完成  選擇**完成**,到這邊就完成 VirtualBox 的安裝了。  到這邊我們已經安裝好虛擬機了,接下來要下載 Ubuntu 20.04 LTS,並新增到 VirtualBox 當中。 ## Step3: 下載 Ubuntu 20.04 LTS 前往 [Ubuntu 官網](https://ubuntu.com/download/desktop)下載 Ubuntu 20.04 LTS Desktop。 選擇 **Download**  ## Step4: 新增至 VirtualBox 下載完成後,到 VirtualBox 當中選擇**新增**  隨意輸入名稱、選擇虛擬機資料存放位置。 類型選擇 **Linux**, 版本選擇 **Ubuntu (64-bit)** 接下來選擇**下一個**  接下來要選擇這台虛擬機的記憶體大小,建議 2GB(2048MB) 以上。  選擇**建立**  選擇**下一個**  建議選擇**動態分配**,接下來選擇**下一個**  接下來要決定虛擬機的硬碟大小,這裡建議 20GB 以上。  到這邊就做好了虛擬機的基礎設定,接下來啟動虛擬機。 選擇**啟動**  接下來要插入我們剛剛下載的 Ubuntu 20.04 LTS iso 檔案。 選擇**資料夾圖案**  選擇加入,並選擇剛剛下載的檔案。  選擇後,檔案就會出現在下方,確定後選擇**選擇**  接下來選擇**開始**  建議語言選擇 English,接下來選擇 **Install Ubuntu**  接下來選擇鍵盤語言,建議選擇 **English (US)**  選擇 **Continue**  這裡會警告會刪除所有的檔案,但是不用擔心,因為 VirtualBox 會規畫出一塊與本機 OS 完全隔離的空間,所以並不會刪除原本存在在電腦中檔案喔! 選擇 **Install Now**  選擇 **Continue**  接下來要選擇位置,這裡選擇 **Taipei**  最後要設定 Ubuntu 的帳號與電腦名稱。 設定後選擇 **Continue**  接下來等待一段時間,出現這個畫面時選擇 **Restart Now**  點擊 **Enter**  啟動後會出現登入的畫面,選擇剛剛建立的帳號。  輸入密碼後按下 Enter。  到這裡就安裝結束了。 ### Step5: 插入 Guest Additions (選用) Guest Additions 可以提供本機與虛擬機之間的雙向互動,包含**雙向資料夾**、**雙向剪貼簿**以及**雙向托放**,除此之外,也可以讓虛擬機畫面的大小與視窗大小同步變化。 因為這些功能還蠻實用也很方便,所以建議使用。 首先要安裝所需的套件,需要先開啟終端機(Terminal)。 在桌面點擊滑鼠右鍵,選擇 **Open in Terminal**  接下來輸入以下指令下載 `gcc`, `make`, `perl`: ```bash= sudo apt install gcc make perl ``` 輸入後會問 `Do you want to continue? [Y/n]`,可以輸入 `Y` 或是直接按下 Enter 繼續。  等待安裝完成後,到畫面上方選擇**裝置>插入 Guest Additions CD 映像...**  選擇 **Run**  輸入密碼,並選擇 **Authenticate**  等待下載完成後點擊 Enter  重新開啟虛擬機,點擊畫面右上方的 **X**,選擇**關閉電腦電源**,再選擇**確定**。 之後如果要關閉虛擬機也是一樣的步驟。  最後啟動虛擬機  這樣就完成囉! 可以縮放一下虛擬機畫面大小,看看畫面有沒有隨著改變來確認是否完成安裝。  如果要開啟雙向剪貼簿或是雙向資料夾等等,都可以到**裝置**設定,下圖是開啟雙向剪貼簿的方式:  ## 使用 WSL2 WSL2,也就是 Windows Subsystem for Linux,是一款在 Windows 上可以直接執行 Linux 作業系統的 VM,因此如果要使用 WSL2 必須要是 Windows 系統喔! ### Step1: 啟用 WSL 這個選用功能預設是關閉的,所以我們需要先啟用。 **以系統管理員身分執行 PowerShell** 並執行: ```bash= dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart ``` ### Step2: 檢查執行 WSL2 的需求 詳細來說,如果你要使用 WSL2,需要符合以下幾個條件: 1. 使用 Windows10 作業系統 2. x64 系統的 Windows10 版本應在 1903 (含)以上 (組件 18362 以上) 3. ARM64 系統的 Windows10 版本應在 2004 (含)以上 (組件 19041 以上) 可以透過 **windows 鍵 + R** 呼叫執行介面,並輸入 **winver**,然後選擇**確定**。 可以閱讀 [Microsoft 官方文件](https://docs.microsoft.com/zh-tw/windows/wsl/install-win10)。  接下來就可以看到版本以及組建了。  ### Step3: 啟用虛擬機器功能 確定自己的 Windows10 版本是可以支援 WSL2 後,接下來要啟用虛擬機器功能。 **以系統管理員身分執行 PowerShell** 並執行: ```bash= dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart ``` 接下來重新啟動電腦。 ### Step4: 下載 Linux 核心更新套件 - [適用於 x64 系統](https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi) - [適用於 ARM 系統](https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_arm64.msi) 下載完成後,執行下載的更新套件。 ### Step5: 將 WSL 2 設定為預設版本 在 PowerShell 當中輸入: ```bash= wsl --set-default-version 2 ``` ### Step6: 安裝 Ubuntu 20.04 LTS 虛擬機的部分已經安裝完畢,接下來要安裝 Ubuntu,使用的版本是 **20.04 LTS**。 首先到 Microsoft Store 搜尋 Ubuntu,並找到 **Ubuntu 20.04 LTS**。 選擇 **取得**,並且選擇 **安裝**  ### Step7: 設定帳號密碼 第一次開啟 Ubuntu 會要求你輸入一組帳號密碼,輸入密碼時如果沒有顯示密碼是正常的,這樣可以避免密碼被看到。 由於我已經有下載過了,所以這邊就不示範設定的方式。 ### Step8: 安裝 Windows Terminal (選用) 個人喜歡使用 Windows Terminal 來操作 WSL 以及 CMD、PowerShell,除了方便以外,也提供許多個人化的功能,十分推薦大家來安裝使用。 在 Microsoft Store 當中搜尋 Windows Terminal 一樣選擇 **取得**,並且選擇 **安裝**  安裝後選擇上方的下拉箭頭,並選擇**設定**  在這裡可以把 Ubuntu 20.04 設定成預設啟動的系統。  ### Step9: 設定 WSL2 為預設架構 在 PowerShell 當中輸入以下指令: ```bash= wsl --set-default-version 2 ``` 到這邊就設定完成囉! 如果有遇到任何問題,可以參考 [Microsoft 官方文件](https://docs.microsoft.com/zh-tw/windows/wsl/install-win10),或是在底下留言。 ## 更改 WSL2 預設佔用空間的磁碟(選用) 由於 WSL2 預設會將資料通通塞在 系統碟(C:\ ),為了預防日後 WSL2 肥大,可以提前更改儲存位置至其他地方,下面以 D:\ 為範例: **先確認子系統名稱** ```bash= wsl.exe --list ```  **Export Ubuntu** ```bash= mkdir D:\backup wsl --export Ubuntu-20.04 D:\backup\ubuntu.tar ``` **Unregister the same distribution to remove it from the C: drive:** ```bash= wsl --unregister Ubuntu-20.04 ``` **Import Ubuntu** ```bash= mkdir D:\wsl wsl --import Ubuntu-20.04 D:\wsl\ D:\backup\ubuntu.tar ``` **By default Ubuntu will use root as the default user, to switch back to previous user** Go to the Ubuntu App Folder run command(use CMD) to set default user ```bash= cd %userprofile%\AppData\Local\Microsoft\WindowsApps dir ```  ```bash= ubuntu2004 config --default-user <username> ``` **Finish!** ## 參考資料 - [鳥哥的 Linux 私房菜 第一章、Linux是什麼與如何學習](http://linux.vbird.org/linux_basic/0110whatislinux.php) - [Windows 10 上適用於 Linux 的 Windows 子系統安裝指南](https://docs.microsoft.com/zh-tw/windows/wsl/install-win10) - [wikipedia - Linux](https://zh.wikipedia.org/zh-tw/Linux) - [wikipedia - 虛擬機器](https://zh.wikipedia.org/wiki/%E8%99%9B%E6%93%AC%E6%A9%9F%E5%99%A8) - [wikipedia - Linux 發行版](https://zh.wikipedia.org/zh-tw/Linux%E5%8F%91%E8%A1%8C%E7%89%88) - [Desktop Operating System Market Share Worldwide](https://gs.statcounter.com/os-market-share/desktop/worldwide) - [What is open source?](https://opensource.com/resources/what-open-source) - [move-wsl2-file-system-to-another-drive](https://superuser.com/questions/1550622/move-wsl2-file-system-to-another-drive) ###### tags: `第 13 屆 iT 邦幫忙鐵人賽`
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.