Linux服務(wù)器 CentOS 6系列最小化安裝優(yōu)化腳本詳解01————yum優(yōu)化、優(yōu)化啟動服務(wù)、調(diào)整TTY數(shù)量、調(diào)整TCP/IP網(wǎng)絡(luò)參數(shù)
前言
當(dāng)最小化安裝CentOS 6系列時,在使用過程中,可以基于性能和安全做一些優(yōu)化,篇幅較多,這里我分篇幅寫,希望各位大佬批評指正。
完整的腳本晚些時候會上傳至github的。
yum優(yōu)化
CentOS自帶的yum源在國內(nèi)使用,速度十分緩慢。一般運(yùn)維人員可以將其更換為國內(nèi)的yum源。使用網(wǎng)易源或者阿里云都是可以。這里我使用網(wǎng)易源。
詳細(xì)步驟:
wget http://mirrors.163.com/.help/CentOS6-Base-163.repo
cd /etc/yum.repos.d/
mv CentOS-Base.repo CentOS-Base.repo.bak
mv CentOS6-Base-163.repo CentOS-Base.repo
yum clean all
yum makecache #重建yum緩存
# yum update #升級Linux系統(tǒng)(系統(tǒng)升級的操作根據(jù)各自業(yè)務(wù)的需求進(jìn)行選擇,部分公有云平臺不建議升級)
企業(yè)版 Linux 附加軟件包(以下簡稱 EPEL)是一個由特別興趣小組創(chuàng)建、維護(hù)并管理的,針對 紅帽企業(yè)版 Linux(RHEL)及其衍生發(fā)行版(比如 CentOS、Scientific Linux、Oracle Enterprise Linux)的一個高質(zhì)量附加軟件包項(xiàng)目。
增加epel源,詳細(xì)操作步驟:
(1)下載rpm文件進(jìn)行安裝,命令如下:
cd /usr/local/src #用戶存放源碼程序的位置,可以任意放置
wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -ivh epel-release-6-8.noarch.rpm
(2)安裝yum-priorities源優(yōu)先級工具
Linux 發(fā)行版比較多,同時還有很多個人或組織維護(hù)了某些特定用途的安裝/升級源。Yum Priorities 插件可以用來強(qiáng)制保護(hù)源。它通過給各個源設(shè)定不同的優(yōu)先級,使得系統(tǒng)管理員可以將某些源(比如 Linux 發(fā)行版的官方源)設(shè)定為最高優(yōu)先級,從而保證系統(tǒng)的穩(wěn)定性(同時也可能無法更新到其它源上提供的軟件最新版本)。
用來給yum源分優(yōu)先級的。比如你在centos下有centos,epel,rpmfusion三個yum源。三個yum源中可能含有相同的軟件,補(bǔ)丁之類的東西。yum管理器為了分辨更新系統(tǒng)或者安裝軟件的時候用那個yum源的軟件所以才有這么個東西。如果說,設(shè)置centos官方的yum源優(yōu)先級最高,epelyum源第二,rpmfusion第三。(用1到99來表示,1最高)那在安裝程序的時候,先尋找centos的yum源,如果源里面有要的程序,那就停止尋找,直接安裝找到的,如果沒有找到,就依次尋找epel和rpmfusion的源。
如果說三個yum源都含有同一個軟件,那就安裝優(yōu)先級最高的yum源的。
添加yum源優(yōu)先級需要在對于的repo文件末尾添加:priority=優(yōu)先級數(shù)字
命令如下:
yum install yum-priorities
如果要開啟yum源的優(yōu)先級功能,就要先確保priorities.conf文件配置正確。
[root@private src]# cat /etc/yum/pluginconf.d/priorities.conf
[main]
enabled = 1
關(guān)閉不必要的服務(wù)
眾所周知,服務(wù)越少,系統(tǒng)占用的資源就會越少,所以應(yīng)當(dāng)關(guān)閉不必要的服務(wù)。這樣可以極大的節(jié)省內(nèi)存和CPU資源占用。
首先查看系統(tǒng)中存在哪些已經(jīng)啟動了的服務(wù),查看命令:ntsysv
使用該命令會出現(xiàn)Linux字符圖形顯示目前已經(jīng)自啟動的服務(wù)。

服務(wù)器根據(jù)業(yè)務(wù)所需進(jìn)行調(diào)整,列出幾個需要啟動的服務(wù):
- crond:自動計劃任務(wù)
- network:Linux系統(tǒng)的網(wǎng)絡(luò)服務(wù)
- sshd:OpenSSH服務(wù)器守護(hù)進(jìn)程
- rsyslog:Linux的日志系統(tǒng)服務(wù)(CentOS5.8以下叫做syslog)
關(guān)閉不必要的TTY
需要修改"/etc/init/start-ttys.conf"文件
查看該文件內(nèi)容:
[root@private ~]# cat /etc/init/start-ttys.conf
#
# This service starts the configured number of gettys.
#
# Do not edit this file directly. If you want to change the behaviour,
# please create a file start-ttys.override and put your changes there.
start on stopped rc RUNLEVEL=[2345]
env ACTIVE_CONSOLES=/dev/tty[1-6]
env X_TTY=/dev/tty1
task
script
. /etc/sysconfig/init
for tty in $(echo $ACTIVE_CONSOLES) ; do
[ "$RUNLEVEL" = "5" -a "$tty" = "$X_TTY" ] && continue
initctl start tty TTY=$tty
done
end script
這段代碼使init打開了6個控制臺,可分別用ALT+F1到ALT+F6進(jìn)行訪問。此6個控制臺默認(rèn)都駐留在內(nèi)存中,可以使用ps aux
命令查看。
[root@private ~]# ps aux | grep tty | grep -v grep
root 1582 0.0 0.0 4064 548 tty1 Ss+ 12:58 0:00 /sbin/mingetty /dev/tty1
root 1584 0.0 0.0 4064 548 tty2 Ss+ 12:58 0:00 /sbin/mingetty /dev/tty2
root 1586 0.0 0.0 4064 548 tty3 Ss+ 12:58 0:00 /sbin/mingetty /dev/tty3
root 1588 0.0 0.0 4064 548 tty4 Ss+ 12:58 0:00 /sbin/mingetty /dev/tty4
root 1590 0.0 0.0 4064 548 tty5 Ss+ 12:58 0:00 /sbin/mingetty /dev/tty5
root 1592 0.0 0.0 4064 552 tty6 Ss+ 12:58 0:00 /sbin/mingetty /dev/tty6
[root@private ~]#
事實(shí)上沒有必要使用這么多,可以關(guān)閉不用的進(jìn)程,通常保留兩個控制臺即可。
需要修改的操作流程:
1.打開"/etc/init/start-ttys.conf",其中有:"env ACTIVE_CONSOLES=/dev/tty[1-6]"
需要將其修改為:"env ACTIVE_CONSOLES=/dev/tty[1-2]"
2.打開"/etc/sysconfig/init "文件,其中有:"ACTIVE_CONSOLES=/dev/tty[1-6]",將其修改為
"ACTIVE_CONSOLES=/dev/tty[1-2]"
可以使用sed命令直接修改:
sed -i "/env ACTIVE/ s/6/2/" /etc/init/start-ttys.conf
sed -i "/ACTIVE_CONSOLES/ s/6/2/" /etc/sysconfig/init
修改完成后,需要重啟機(jī)器。
調(diào)整TCP/IP網(wǎng)絡(luò)參數(shù)
調(diào)整TCP/IP網(wǎng)絡(luò)參數(shù),可以加強(qiáng)對抗SYN Flood的能力。
SYN Flood是一種廣為人知的DoS(拒絕服務(wù)攻擊)是DDoS(分布式拒絕服務(wù)攻擊)的方式之一,這是一種利用TCP協(xié)議缺陷,發(fā)送大量偽造的TCP連接請求,從而使得被攻擊方資源耗盡(CPU滿負(fù)荷或內(nèi)存不足)的攻擊方式。
從防御角度來說,有幾種簡單的解決方法:第一種是縮短SYN Timeout時間;第二種方法是設(shè)置SYN Cookie;
net.ipv4.tcp_syncookies = 1
表示開啟SYN Cookies。當(dāng)出現(xiàn)SYN等待隊列溢出時,啟用cookies來處理,可防范少量SYN攻擊,默認(rèn)為 0,表示關(guān)閉。
使用命令:
[root@private shell]# echo "net.ipv4.tcp_syncookies = 1" >> /etc/sysctl.conf
[root@private shell]# sysctl -p