今天裝了一台 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. 改用 PieTTY 或 PuTTY 進行遠端 SSH 連線
由於 CentOS 最小安裝已經內建了 SSH 伺服器,所以只要這台主機能上網,就能從遠端 SSH 進行連線,透過 PieTTY 或 PuTTY 連線到這台 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 指令即可查看目前所有的防火牆設定值:
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 更新套件,系統就是完整、乾淨且安全的狀態摟!
相關連結