﻿# CentOS 6.3 最小安裝 (minimal) 初始化設定筆記

今天裝了一台 CentOS 6.3 起來，有鑑於個人對伺服器安裝設定的”**潔癖**”，每次都會用**最小安裝** (Minimal Installation) 從頭裝起，但最小安裝經常缺少許多好用的套件 (man, wget, sudo, …)，安裝過程也不會將網路設定自動設定好，所以對 Linux 初學者來說可能稍稍有那麼一點難度，我趁這次安裝把我的設定過程分享出來，透過這些設定的步驟應該很輕鬆就能設定出一台乾淨清爽的 CentOS 伺服器。

下載 ISO 與基本安裝的過程就不用多做介紹了，我的設定過程從第一次登入主機開始講起。

**1\. 設定網路（臨時網路介面）**

由於 CentOS 最小安裝在登入後會發現沒有網路可用，所以我們先用最簡單、最迅速的方式先啟用網路，首先我們先準備好這台伺服器的網路設定資訊：

-   ＩＰ位址: 192.168.0.22
-   網路遮罩: 255.255.255.0
-   網路閘道: 192.168.0.1
-   名稱伺服器: 168.95.1.1

上述網路資訊，可以直接換成以下三行指令，只要執行完成，主機就能直接上網：  
**注意**：這裡的網路設定在重開機後會全部消失，本文後續會提到讓開機時保留設定的方法。

```
ifconfig eth0 192.168.0.22 netmask 255.255.255.0route add default gw 192.168.0.1echo "nameserver 168.95.1.1" > /etc/resolv.conf
```

**2\. 改用** [**PieTTY**](http://ntu.csie.org/~piaip/pietty/) **或** [**PuTTY**](https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html) **進行遠端 SSH 連線**

由於 CentOS 最小安裝已經內建了 SSH 伺服器，所以只要這台主機能上網，就能從遠端 SSH 進行連線，透過 [PieTTY](http://ntu.csie.org/~piaip/pietty/) 或 [PuTTY](https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html) 連線到這台 CentOS 至少比從本機操作來的方便些，因為你接下來就可以利用 Windows 的複製/貼上幫你輸入一些常用但可能比較長的 Linux 指令。

改用 [PieTTY](http://ntu.csie.org/~piaip/pietty/) 還有一個好處，哪就是你可以看到中文的錯誤訊息，不過要注意 CentOS 預設字集已經都改成用 Unicode 了，所以如果你用 [PieTTY](http://ntu.csie.org/~piaip/pietty/) 連線的話，記得要修改字元編碼才能正常顯示錯誤訊息。

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/efc01576e7fe74975deb-image_1633.png)

切換成功後就能看到正確的中文錯誤訊息了：

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/99702abd71593f1081eb-image_1634.png)

**3\. 設定網路（讓重開機時也能載入固定的網路設定）**

為了降低網路設定的複雜度，我們透過 yum 安裝文字模式的網路設定工具 **system-config-network-tui**

```
yum install system-config-network-tui
```

安裝好之後，直接執行 system-config-network-tui 即可啟動設定程式：

```
system-config-network-tui
```

接下來不用我講解，大家應該都有能力設定完成，以下帶出幾個設定過程的截圖：

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/0dc74971cacf94ebc22a-image_1635.png)

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/5c5d58f1afa08dea8186-image_1636.png)

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/bd4986f11a33a04b9144-image_1637.png)

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/cb80ab788d8ee83b6b08-image_1638.png)

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/94993fbd3c5e368e936b-image_1639.png)

如果你想修改主機名稱，也可以透過 **system-config-network-tui** 工具的 **DNS 組態設定**來變更：

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/3eaa5e62474775974463-image_1640.png)

最後，為了讓重開機也能自動啟動 eth0 網卡，必須修正 /etc/sysconfig/network-scripts/ifcfg-eth0 網路設定檔的內容，將 ONBOOT 設定從 no 改成 yes 即可！你可以用 vi 編輯器修改，也可以用以下這一行指令直接更新該檔案的內容 (我使用 sed 命令)：

```
sed -i -e 's/ONBOOT=no/ONBOOT=yes/' /etc/sysconfig/network-scripts/ifcfg-eth0
```

**4\. 設定防火牆 ( iptables )**

網路設定完成後，當然要先強化伺服器的網路安全，否則網路上許多潛水的駭客隨時都會掃瞄到你的 IP 位址，並立即嘗試用 SSH 登入你的新電腦。我多年前就曾經在公司裡安裝好一台 Linux 因為剛設定好網路後就外出用餐，回來後我的 Linux 主機已經被駭客登入並植入木馬，前後才兩個小時而已，所以安全的議題永遠不可輕忽，而且預設的 root 密碼也不可草率設定！

在 CentOS 預設安裝完成後，預設將會開啟 ICMP 與 SSH 連線，但其他 Ports 都是預設封鎖的，若要開啟網路連接，必須設定 iptables 才行，但這對許多 Linux 新手來說還是有點困難，而我其實也不太願意記憶那麼多 iptables 參數與指令，所以我選擇利用文字模式的防火牆設定工具 **system-config-firewall-tui** 來設定，讓設定防火牆的學習曲線大幅降低！

我們先利用 yum 安裝此套件：

```
yum install system-config-firewall-tui
```

安裝完後一樣可以透過 system-config-firewall-tui 啟動該工具：

```
system-config-firewall-tui
```

以下是執行時期的畫面：

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/ac09d51e5661aaaad125-image_1641.png)

若你選取 \[**自訂**\] 將可透過勾選的方式 (使用空白鍵選取) 啟用那些 CentOS 內建的服務清單，選取的服務將會自動設定 iptables 開放對外的網路連接：

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/011dff02f55b1e80b5ff-image_1642.png)

接著下一步會看到 \[**其他通訊埠**\] 的設定，你可以點選 \[**新增**\] 增加需要額外開放的埠號 (Port)：

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/66ee7276db52acfe235f-image_1643.png)

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/a1aa086b900baff12d44-image_1644.png)

接著切換到 \[**信任的介面卡**\] 設定，如果你只有一張網路卡，建議不要勾選，如果有兩張網卡，且一張走內網、一張走外網的話，你可以考慮把「內網」的網路介面勾選，如此一來這個介面將不會套用任何防火牆設定！

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/cbd031c45ef4a1cb6cda-image_1645.png)

接著切換到 \[**偽裝**\] (Masquerade) 設定，如果你要讓這台 CentOS 擔任 NAT 的角色，才需要將**外網**的網路介面設定為偽裝介面 (Masquerade)：

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/ab900c599bea2026a049-image_1646.png)

接著切換到 \[**通訊埠轉發(Port Forwarding)**\] 設定，這也是 NAT 相關的網路設定，可以讓內部網路直接讓外部網路連接：（註：如果沒有啟用偽裝網路介面設定了通訊埠轉發也不會有效果）

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/b78dd2796b0f1a6e1945-image_1647.png)

接著切換到 \[**ICMP 過濾程式**\] 設定，如果你不想讓外部網路執行 PING 的要求，可以勾選特定幾種 ICMP 封包類型，如此一來外面就無法得知有這台主機的存在。

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/6e78892b2298a4f54c8b-image_1648.png)

接著切換到 \[**自訂規則**\] 設定，這裡能設定進階的 iptables 自訂規則：

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/bed235032761c047495c-image_1649.png)

最後記得要按下 \[**確定**\] 按鈕來儲存設定：

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/b20fec8567ac92c3400f-image_1650.png)

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/5bb129a1fa878ce4944a-image_1651.png)

最後我們用 **iptables -L** 指令即可查看目前所有的防火牆設定值：

```
iptables -L
```

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/bb3ae8cc02ad580f442b-SNAGHTML25437d1e.png)

**5\. 安裝 RepoForge 套件與其他常用的工具套件**

請參考我先前寫的【[如何使用 RepoForge 擴充 CentOS Linux 套件不足的情況](/post/2012/07/17/Using-RepoForge-extend-CentOS-Linux-package-repository.aspx)】文章。

```
rpm -Uvh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
```

```
yum install denyhosts rdate sudo wget man mlocate
```

**6\. 更新所有套件**

最後執行 yum update 更新套件，系統就是完整、乾淨且安全的狀態摟！

```
yum update
```

**相關連結**

-   [The Community ENTerprise Operating System](https://www.centos.org/) ( [www.centos.org](http://www.centos.org) ) (官方網站)
-   [CentOS Wiki](http://wiki.centos.org/) (官方文件知識庫)
-   [不自量力 の Weithenn: Linux 筆記](https://www.weithenn.org/)

-   [CentOS 5.x-初始環境設定](https://www.weithenn.org/2011/01/centos5-Initial-setting.html)

-   伺服器安裝第一首選 CentOS 6 帶來寧靜革命
-   18.5.1. Postrouting and IP Masquerading
-   [Common threads: Sed by example, Part 2](http://www.ibm.com/developerworks/linux/library/l-sed2/index.html)
