###### tags: `系統技術` # 一個機器以最省資源安裝CentOS作為server方式 * Motivation 每次安裝Linux server,每次都要從頭找資料安裝,想以筆記方式提供安裝的guide line,往後按此原則進行即可。 * 安裝Linux OS (CentOS為例) 新機器先以最小安裝方式安裝,避免安裝其他非必要軟體,減少系統負載。 1. 先download最新版CentOS iso檔 2. 以此iso檔做光碟安裝系統 3. 安裝系統選擇"最小安裝"安裝系統 * 調整網卡 最小安裝若是安裝過程中沒有調整網路設定,內定為dhcp方式取得IP,若該段網路沒有dhcp,就無法取得網路IP;並且,通常server都是使用固定IP,因此需要調整IP。 1. 首先關掉 NetworkManager (開始採用新的指令): ```Linux Script # systemctl disable NetworkManager.service # systemctl stop NetworkManager.service # chkconfig network on # systemctl stop network ``` 2. 接下來請編輯 /etc/sysconfig/network-scripts/ifcfg-你的網路卡編號(請利用 vim 編輯器,或是 gedit),修改內容如下: ``` TYPE="Ethernet" BOOTPROTO=none #原本可能是dhcp,固定IP改為none DEFROUTE="yes" IPV4_FAILURE_FATAL="no" IPV6INIT="yes" IPV6_AUTOCONF="yes" IPV6_DEFROUTE="yes" IPV6_FAILURE_FATAL="no" NAME="eno16777736" UUID="b06e0794-79ce-4d9d-9703-4eff3dc7e38d" ONBOOT="yes" #改為開機即啟動網卡 HWADDR=00:0C:29:5B:84:12 IPADDR0=192.168.1.40 #給於固定IP GATEWAY=192.168.1.2 #設定Gateway DNS1=8.8.8.8 #設定DNS ``` 3. 啟動網路 ``` # systemctl start network ``` 4. 升級官方套件 ``` # yum update -y ``` 5. 安裝第三方伺服器EPEL套件庫 有些「特殊應用」沒有放在官方的套件庫中,此時就需要第三方的套件庫。 目前比較知名的有:EPEL套件庫。 安裝前先確認是否已經安裝 ``` # yum list installed | grep epel ``` 確定沒安裝後可以下指令安裝 ``` yum install epel-release ``` 或者 ``` # yum install http://ftp.jaist.ac.jp/pub/Linux/Fedora/epel/7/x86_64/e/epel-release-7-5.noarch.rpm ``` 或者 ``` # yum --enablerepo=extras install epel-release ``` 6. 安裝REMI repo (Option, for PHP+MySql) REMI repository 是包含最新版 PHP 和 Mysql 的一個套件庫,由 Remi 提供維護,要安裝 PHP 和 Mysql 的同學請務必安裝!之後要更新 PHP 版本(或者降版本)將會非常方便。 安裝前先確認是否已經安裝 ``` # yum list installed | grep remi ``` 使用 wget+rpm安裝 ``` wget http://rpms.famillecollet.com/enterprise/remi-release-7.rpm # rpm -Uvh remi-release-7.rpm ``` 開啟使用 REMI repo 安裝完後如果發現在找安裝套件時沒有出現 remi 的套件,那可能是沒有開啟使用 remi,請至/etc/yum.repos.d/(這是預設位置)找 remi.repo ,或是任何「remi」開頭的repo,開啟檔案並找到 [remi] 這個標籤底下的enabled: ``` [remi] enabled=1 ``` 將 enabled 改為 1 表示啟用,接著儲存即可。 7. 安裝系統定時自動更新套件 設定系統定時自動更新,第一步確定伺服器是否安裝了自動執行指令的工具,跟著使用 yum 一個名叫 yum-cron 插件。 CentOS 7 使用數個軟件來自動執行指令:cron、anacron、at 和 batch,其中 cron 和 anacron 用來定期重複執行指令,At 和 batch 則用來在特定時間執行一次性的指令。 使用以下指令安裝 cron 和 anacron: ``` # yum -y install cronie ``` 下一步就是安裝 yum-cron: ``` # yum -y install yum-cron ``` 可以使用一個指令同時安裝 cronie 和 yum-cron,甚至單獨安裝 yum-cron 也可以,因為 yum 會自動檢測到 yum-cron 需要 cronie 然後自動替你安裝,上面分開兩個指令純粹令大家容易明白。 8. 設定系統定時自動更新配置檔案 完成cron安裝後系統多了數個檔案,比較重要的包括: * /etc/cron.daily/0yum.cron Anacron 每天執行這個檔案一次,它根據配置檔案 /etc/yum/yum-cron.conf 來更新軟件 * /etc/yum/yum-cron.conf 這是每天執行 yum-cron 的配置檔案,預設只會下載更新的軟件,並不安裝,用意是讓管理員檢視 yum-cron 的輸出,選取需要更新的軟件進行手動安裝。 修改配置檔案,讓 yum-cron 自動更新軟件,使用 vim (或任何文本編輯器) 開啓 /etc/yum/yum-cron.conf,尋找:apply_updates,將等於後面的no改為yes ``` apply_updates = yes ``` 並確認確認一下 update_messages = yes, download_updates = yes, apply_updates = yes 9. 新增一個非 root 的一般使用者 ``` # adduser XXXX ``` 10. 禁止 root 使用 ssh 登入 CentOS 7 預設容許任何帳號透過 ssh 登入,包括 root 和一般帳號,為了不讓 root 帳號被黑客暴力入侵,我們必須禁止 root 帳號的 ssh 功能,事實上 root 也沒有必要 ssh 登入伺服器,因為只要使用 su 或 sudo (當然需要輸入 root 的密碼) 普通帳號便可以擁有 root 的權限。 使用 vim (或任何文本編輯器) 開啓 /etc/ssh/sshd_config,尋找: ``` #PermitRootLogin yes ``` 把#去除,並把yes改為no,修改為: ``` PermitRootLogin no ``` 重新啟動sshd ``` # systemctl restart sshd.service ``` 11. 防火牆 過濾封包功能的 netfilter 已經內建在 CentOS 7 的內核,但是配置 netfilter 的界面程式 firewalld 卻未必有安裝,不論是否已經安裝,都可以執行下面的安裝指令: ``` yum -y install firewalld ``` 跟著查看一下防火牆現在開啟了哪些服務和端口: ``` firewall-cmd --list-all ``` 在services:後有ssh與dhcpv6-client,表示防火牆只開啟了 DHCP 客戶端和 ssh 兩個服務的通訊端口。
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up