CentOS 6.4 x86_64 最小化安裝---基礎優化總結

CentOS6.4x86_64最小化安裝---基礎優化總結

目錄

1、默認情況下最小化安裝網卡是不啓動的,首先就是調整網絡的配置。...1

2、修改主機名以及hosts文件...1

3、修改默認的yum...2

4、安裝必備的軟件,並且更新系統的軟件。...3

5、關閉SElinux,關閉不必要的服務(優化系統啓動服務)...3

6、關閉IPv6.4

7、調整啓動級別,設置文本界面啓動。...5

8、關閉ctrl+alt+del.5

9、關閉多餘的tty.5

10、修改默認登錄信息,不顯示內核信息...5

11、設置時間同步的定時任務...6

12、適當的調整shell命令的history記錄個數...6

13、關閉文件系統的atime時間。以提升磁盤的I/O性能。...6

14、調整內核參數...6

15、加大服務器的文件描述符...7

16、添加一個普通用戶...7

17、使用sudo給賬戶適當的權限...7

18、禁止root用戶遠程登錄...8

19、鎖定日誌文件...8

20、設置linux控制檯自動註銷...9

服務器使用的一個原則:系統的安裝包越少越好,這樣的機器纔會更加穩定。

1、默認情況下最小化安裝網卡是不啓動的,首先就是調整網絡的配置。

網卡配置信息如下:

[root@localhost~]#cat/etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

HWADDR=08:00:27:00:B3:0B

TYPE=Ethernet

UUID=387b6df9-1683-4bf9-97cd-35f30fc19903

ONBOOT=yes

NM_CONTROLLED=yes

BOOTPROTO=static

IPADDR=192.168.100.211

NETMASK=255.255.255.0

GATEWAY=192.168.100.1

[root@localhost~]#

DNS配置信息如下:

[root@localhost~]#cat/etc/resolv.conf

nameserver8.8.8.8

nameserver8.8.4.4

[root@localhost~]#

2、修改主機名以及hosts文件

臨時修改主機名:

[root@localhost~]#hostnamenight

[root@localhost~]#echo$HOSTNAME

localhost.localdomain

[root@localhost~]#exit

logout

Lastlogin:FriOct1811:03:022013from192.168.100.101

[root@night~]#echo$HOSTNAME

night

[root@night~]#

臨時修改,註銷用戶重新登錄後生效。

永久修改主機名:

[root@night~]#cat/etc/sysconfig/network

NETWORKING=yes

HOSTNAME=night

[root@night~]#

永久修改重啓生效。

修改hosts文件

[root@night~]#cat/etc/hosts

127.0.0.1localhostlocalhost.localdomainlocalhost4localhost4.localdomain4

::1localhostlocalhost.localdomainlocalhost6localhost6.localdomain6

192.168.100.211night

[root@night~]#ping-c1night//測試

PINGnight(192.168.100.211)56(84)bytesofdata.

64bytesfromnight(192.168.100.211):icmp_seq=1ttl=64time=0.198ms

---nightpingstatistics---

1packetstransmitted,1received,0%packetloss,time0ms

rttmin/avg/max/mdev=0.198/0.198/0.198/0.000ms

[root@night~]#

3、修改默認的yum源

默認情況下是沒有下載工具的,現在安裝一個linux字符界面下的下載工具wget

[root@night~]#mount/dev/cdrom/media/

mount:blockdevice/dev/sr0iswrite-protected,mountingread-only

[root@night~]#rpm-ivh/media/Packages/wget-1.12-1.8.el6.x86_64.rpm

warning:/media/Packages/wget-1.12-1.8.el6.x86_64.rpm:HeaderV3RSA/SHA1Signature,keyIDc105b9de:NOKEY

Preparing...###########################################[100%]

1:wget###########################################[100%]

[root@night~]#umount/dev/cdrom

[root@night~]#

備份原有的repo文件,下載163repo文件

[root@night~]#wgethttp://mirrors.163.com/.help/CentOS6-Base-163.repo

--2013-10-1811:22:31--http://mirrors.163.com/.help/CentOS6-Base-163.repo

Resolvingmirrors.163.com...123.58.173.106

Connectingtomirrors.163.com|123.58.173.106|:80...connected.

HTTPrequestsent,awaitingresponse...200OK

Length:2006(2.0K)[application/octet-stream]

Savingto:“CentOS6-Base-163.repo”

100%[===========================================================================================>]2,006--.-K/sin0.01s

2013-10-1811:22:32(165KB/s)-“CentOS6-Base-163.repo”saved[2006/2006]

[root@night~]#ls

anaconda-ks.cfgCentOS6-Base-163.repoinstall.loginstall.log.syslog

[root@night~]#cd/etc/yum.repos.d/

[[email protected]]#ls

CentOS-Base.repoCentOS-Debuginfo.repoCentOS-Media.repoCentOS-Vault.repo

[[email protected]]#mvCentOS-Base.repoCentOS-Base.repo.bak

[[email protected]]#mv/root/CentOS6-Base-163.repo./

[[email protected]]#ls

CentOS6-Base-163.repoCentOS-Base.repo.bakCentOS-Debuginfo.repoCentOS-Media.repoCentOS-Vault.repo

[[email protected]]#

生成yum緩存

[root@night~]#yumcleanall

Loadedplugins:fastestmirror

Cleaningrepos:baseextrasupdates

CleaningupEverything

Cleaninguplistoffastestmirrors

[root@night~]#yummakecache

Loadedplugins:fastestmirror

Determiningfastestmirrors

base|3.7kB00:00

base/group_gz|212kB00:02

base/filelists_db|5.9MB00:19

base/primary_db|4.4MB00:25

base/other_db|2.7MB00:06

extras|3.4kB00:00

extras/filelists_db|10kB00:01

extras/prestodelta|905B00:00

extras/primary_db|18kB00:01

extras/other_db|5.7kB00:00

updates|3.4kB00:00

updates/filelists_db|4.3MB00:14

updates/prestodelta|1.0MB00:10

updates/primary_db|5.0MB00:21

updates/other_db|720kB00:01

MetadataCacheCreated

[root@night~]#

4、安裝必備的軟件,並且更新系統的軟件。

默認情況下只安裝了EmailServer這個軟件包組。這個時候可以安裝一些必備的軟件,刪除一些不必要的軟件。

[root@night~]#yumgrouplist

Loadedplugins:fastestmirror,security

SettingupGroupProcess

Loadingmirrorspeedsfromcachedhostfile

InstalledGroups:

AdditionalDevelopment//額外的開發

Base//基礎

DesktopPlatformDevelopment//桌面平臺開發

Developmenttools//開發工具

E-mailserver//郵件服務(不用郵件服務可以關掉25端口,但是最好不要刪除)

GeneralPurposeDesktop//通用桌面

Hardwaremonitoringutilities//硬件監控實用工具

LegacyUNIXcompatibility//老的UNIX兼容

LegacyXWindowSystemcompatibility//傳統的xwindow系統兼容

NetworkingTools//網絡工具

PerformanceTools//性能工具

PerlSupport//perl支持

InstalledLanguageGroups:

ChineseSupport[zh]

更新系統

[root@night~]#yumupgrade

5、關閉SElinux,關閉不必要的服務(優化系統啓動服務)

臨時關閉SElinux

[root@night~]#getenforce

Enforcing//嚴格模式

[root@night~]#setenforce0

[root@night~]#getenforce

Permissive//只報警,但是不做處理

[root@night~]#

臨時關閉啓動系統失效。

永久關閉SElinux

[root@night~]#cat/etc/sysconfig/selinux

#ThisfilecontrolsthestateofSELinuxonthesystem.

#SELINUX=cantakeoneofthesethreevalues:

#enforcing-SELinuxsecuritypolicyisenforced.

#permissive-SELinuxprintswarningsinsteadofenforcing.

#disabled-NoSELinuxpolicyisloaded.

SELINUX=disabled//徹底關閉SElinux

#SELINUXTYPE=cantakeoneofthesetwovalues:

#targeted-Targetedprocessesareprotected,

#mls-MultiLevelSecurityprotection.

SELINUXTYPE=targeted//SElinux使用的策略集

[root@night~]#

永久關閉需要重新啓動系統。

調整開機自啓動服務的腳本內容如下:

[root@nightscript]#catser.sh

#!/bin/bash

##setsystembootservices

#setsystemlanguage

LANG=en

#setservicesoff

forvarin$(/sbin/chkconfig--list|/bin/grep3:on|/bin/awk'{print$1}')

do

/sbin/chkconfig--level3$varoff;

done

#setserviceson

forvarincrondsshdnetworkrsyslogiptablesirqbalance

do

/sbin/chkconfig--level3$varon;

done

[root@nightscript]#

提示:irqbalance能合理的調整cpu各個核心的平均負載。iptables一般都可以關閉。

6、關閉IPv6

查看IPv6的模塊是否被加載

[root@night~]#lsmod|grepip

ipt_REJECT23512

nf_conntrack_ipv495062

nf_defrag_ipv414831nf_conntrack_ipv4

iptable_filter27931

ip_tables178311iptable_filter

ip6t_REJECT46282

nf_conntrack_ipv687482

nf_defrag_ipv6111821nf_conntrack_ipv6

nf_conntrack793573nf_conntrack_ipv4,nf_conntrack_ipv6,xt_state

ip6table_filter28891

ip6_tables194581ip6table_filter

ipv632142215ip6t_REJECT,nf_conntrack_ipv6,nf_defrag_ipv6

[root@night~]#

關閉IPv6

[root@night~]#cat/etc/sysconfig/network

NETWORKING=yes

HOSTNAME=night

NETWORKING_IPV6=no

[root@night~]#tail-2/etc/modprobe.d/dist.conf

aliasnet-pf-10off

aliasipv6off

[root@night~]#

重啓生效。

7、調整啓動級別,設置文本界面啓動。

[root@night~]#grepid:3/etc/inittab

id:3:initdefault:

[root@night~]#

8、關閉ctrl+alt+del

[root@night~]#tail-3/etc/init/control-alt-delete.conf

#startoncontrol-alt-delete

#exec/sbin/shutdown-rnow"Control-Alt-Deletepressed"

[root@night~]#

9、關閉多餘的tty

[root@night~]#grep"1-2"/etc/init/start-ttys.conf

envACTIVE_CONSOLES=/dev/tty[1-2]

[root@night~]#grep"1-2"/etc/sysconfig/init

ACTIVE_CONSOLES=/dev/tty[1-2]

[root@night~]#

CentOS5.x系統中步驟8和步驟9可以在/etc/inittab中完成。

10、修改默認登錄信息,不顯示內核信息

[root@night~]#cat/etc/issue

welcometoserver!

[root@night~]#cat/etc/issue.net

welcometoserver!

[root@night~]#cat/etc/motd

welcometoserver!

[root@night~]#

11、設置時間同步的定時任務

[root@night~]#catscript/syncdate.sh

#!/bin/bash

#syncdate

/usr/sbin/ntpdatetime.nist.gov

[root@night~]#crontab-l

#syncdate

*/10****/bin/sh/root/script/syncdate.sh>/dev/null2>&1

[root@night~]#

12、適當的調整shell命令的history記錄個數

[root@night~]#grep-i"300"/etc/profile

HISTSIZE=300

[root@night~]#

默認是1000,我這裏修改爲300.這個看情況而定。

13、關閉文件系統的atime時間。以提升磁盤的I/O性能。

[root@night~]#tail-1/etc/fstab

/dev/sda5/appext4defaults,noatime,nodiratime00

[root@night~]#chattr-R+A/app/

[root@night~]#mount|grep/app

/dev/sda5on/apptypeext4(rw,noatime,nodiratime)

[root@night~]#lsattr/app/

-------A-------/app/lost+found

-------A-----e-/app/aa

-------A-----e-/app/bb

[root@night~]#

這裏是兩種不同方法,一種是通過設置隱藏屬性,一種是通過文件系統掛載命令mount的功能實現。適合用在大訪問量的分區。

14、調整內核參數

[root@night~]#tail-12/etc/sysctl.conf

##bythinkdba

net.ipv4.tcp_syncookies=1#開啓SYNcookies。當出現SYN等待隊列溢出的時候,啓用cookies來處理,可防範少量的SYN***

net.ipv4.tcp_fin_timeout=30#表示如果套接字由本段要求關閉,這個參數決定了它保持在FIN-WAIT-2狀態的時間

net.ipv4.tcp_keepalive_time=1200#表示當keepalive啓用的時候,TCP發送keepalive消息的頻度。默認是2小時,這裏改爲20分鐘

net.ipv4.tcp_tw_reuse=1#表示開啓重用,允許將TIME-WAIT套接字重新用於新的TCP連接

net.ipv4.tcp_tw_recycle=1#表示開啓TCP連接中TIME-WAIT套接字的快速回收

net.ipv4.ip_local_port_range=102465000#表示向外連接的端口的範圍

net.ipv4.tcp_max_syn_backlog=8192#表示SYN隊列的長度,加大隊列的長度,可以容納更多等待連接的網絡鏈接數

net.ipv4.tcp_max_tw_buckets=5000#表示系統同時保持TIME-WAIT套接字的最大數量,如果超過這個數字,TIME-WAIT套接字將立刻被清除並打印警告信息

net.ipv4.conf.all.rp_filter=1#打開方向路由過濾功能,防止IP地址欺騙

net.ipv4.tcp_max_syn_backlog=4096#限定SYN隊列的長度

net.ipv4.ip_forward=0#禁止ip轉發功能

[root@night~]#

[root@night~]#sysctl–p#立即生效

15、加大服務器的文件描述符

linux下面部署應用的時候,有時候會遇上Socket/FileCan’topensomanyfiles這樣的問題,這個值會影響服務器的最大併發數。其實linux是有文件句柄限制的,但默認不是很高,一般都是1024,生產服務器很容易會達到這個值,所以需要改動此值。

[root@night~]#egrep-v"^$|^#"/etc/security/limits.conf

*softnofile60000

*hardnofile65535

[root@night~]#

註銷之後查看

[root@night~]#ulimit-n

60000

[root@night~]#

重啓後也生效

ulimit的其他一些用法可以參考manual文檔。

[root@night~]#ulimit-a

corefilesize(blocks,-c)0

datasegsize(kbytes,-d)unlimited

schedulingpriority(-e)0

filesize(blocks,-f)unlimited

pendingsignals(-i)7818

maxlockedmemory(kbytes,-l)64

maxmemorysize(kbytes,-m)unlimited

openfiles(-n)60000//同時打開的文件數量

pipesize(512bytes,-p)8

POSIXmessagequeues(bytes,-q)819200

real-timepriority(-r)0

stacksize(kbytes,-s)10240//堆棧大小

cputime(seconds,-t)unlimited

maxuserprocesses(-u)7818//單一用戶的最大進程數

virtualmemory(kbytes,-v)unlimited//可以使用的最大虛擬內存

filelocks(-x)unlimited

[root@night~]#

16、添加一個普通用戶

[root@night~]#passwdthinkdba

Changingpasswordforuserthinkdba.

Newpassword:

BADPASSWORD:itisbasedonadictionaryword

Retypenewpassword:

passwd:allauthenticationtokensupdatedsuccessfully.

[root@night~]#

在一般的使用過程中,我們儘量使用普通用戶。

17、使用sudo給賬戶適當的權限

[root@night~]#grep"thinkdba"/etc/sudoers

thinkdbaALL=(ALL)NOPASSWD:ALL

[root@night~]#

thinkdba”這個賬戶可以讓管理員平時用來維護系統。可以讓thinkdba在不知道root密碼的情況下,切換到root用戶。還可以添加其他的帳號,分配相應功能的權限。

18、禁止root用戶遠程登錄

[root@night~]#egrep-v'^$|^#'/etc/ssh/sshd_config

Port22//默認的端口號,我這裏是測試環境,就不修改了

Protocol2

SyslogFacilityAUTHPRIV

PermitRootLoginno//允許root登錄,默認是yes,這裏改爲no,不允許root登錄

PasswordAuthenticationyes

ChallengeResponseAuthenticationno

GSSAPIAuthenticationyes

GSSAPICleanupCredentialsyes

UsePAMyes

AcceptEnvLANGLC_CTYPELC_NUMERICLC_TIMELC_COLLATELC_MONETARYLC_MESSAGES

AcceptEnvLC_PAPERLC_NAMELC_ADDRESSLC_TELEPHONELC_MEASUREMENT

AcceptEnvLC_IDENTIFICATIONLC_ALLLANGUAGE

AcceptEnvXMODIFIERS

X11Forwardingyes

PrintMotdno//打印歡迎信息,默認是yes,改爲no

PrintLastLogno//打印最後一次的登錄信息,默認是yes,我改爲no

Subsystemsftp/usr/libexec/openssh/sftp-server

[root@night~]#

這裏只是一些基礎的ssh服務的優化。

19、鎖定日誌文件

[root@night~]#chattr+a/var/log/messages//鎖定日誌文件,只允許添加,不允許修改

[root@night~]#chattr+a/var/log/secure

[root@night~]#chattr+a/var/log/cron

[root@night~]#chattr+a/var/log/spooler

[root@night~]#chattr+a/var/log/maillog

[root@nightlog]#cat/etc/logrotate.d/syslog

/var/log/cron

/var/log/maillog

/var/log/messages

/var/log/secure

/var/log/spooler

{

prerotate//輪詢前

/usr/bin/chattr-a/var/log/messages

/usr/bin/chattr-a/var/log/cron

/usr/bin/chattr-a/var/log/secure

/usr/bin/chattr-a/var/log/maillog

/usr/bin/chattr-a/var/log/spooler

endscript

postrotate//輪詢後

/bin/kill-HUP`cat/var/run/syslogd.pid2>/dev/null`2>/dev/null||true

/usr/bin/chattr+a/var/log/messages

/usr/bin/chattr+a/var/log/cron

/usr/bin/chattr+a/var/log/secure

/usr/bin/chattr+a/var/log/maillog

/usr/bin/chattr+a/var/log/spooler

endscript

}

[root@nightlog]#

測試:

[root@nightlog]#logrotate-fv/etc/logrotate.conf//強制輪詢

[root@nightlog]#logrotate-d/etc/logrotate.conf//debug模式

20、設置linux控制檯自動註銷

[root@night~]#tail-1/etc/profile

exportTMOUT=120

[root@night~]#

補充:如果安裝了sendmail並且關閉了sendmail服務的話,定時清理/var/spool/clientmqueue,否則磁盤的inode會被佔滿。CentOS6.x默認安裝的是postfix,沒有安裝sendmail

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章