The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

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

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

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

1. 設定網路(臨時網路介面)

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

  • IP位址: 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.0
route add default gw 192.168.0.1
echo "nameserver 168.95.1.1" > /etc/resolv.conf

 

2. 改用 PieTTYPuTTY 進行遠端 SSH 連線

由於 CentOS 最小安裝已經內建了 SSH 伺服器,所以只要這台主機能上網,就能從遠端 SSH 進行連線,透過 PieTTYPuTTY 連線到這台 CentOS 至少比從本機操作來的方便些,因為你接下來就可以利用 Windows 的複製/貼上幫你輸入一些常用但可能比較長的 Linux 指令。

改用 PieTTY 還有一個好處,哪就是你可以看到中文的錯誤訊息,不過要注意 CentOS 預設字集已經都改成用 Unicode 了,所以如果你用 PieTTY 連線的話,記得要修改字元編碼才能正常顯示錯誤訊息。

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

 

3. 設定網路(讓重開機時也能載入固定的網路設定)

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

yum install system-config-network-tui

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

system-config-network-tui

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

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

最後,為了讓重開機也能自動啟動 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

以下是執行時期的畫面:

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

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

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

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

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

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

接著切換到 [自訂規則] 設定,這裡能設定進階的 iptables 自訂規則:

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

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

iptables -L

 

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

請參考我先前寫的【如何使用 RepoForge 擴充 CentOS Linux 套件不足的情況】文章。

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

 

相關連結