CentOS6.7系統最佳化操作流程
centos 6 mini安裝(內容極其精簡)
紅帽官方中文文檔
http://docs.redhat.com/docs/zh-CN/Red_Hat_Enterprise_Linux/index.html
預設郵件伺服器就是postfix
升級系統
# yum install epel-release -y
# yum update
精簡服務
1、chkconfig ip6tables off 關閉ipv6防火牆
2、chkconfig iscsi off 關閉iscsi服務
3、chkconfig iscsid off 關閉iscsi相關服務
4、chkconfig netfs off 關閉NFS,smaba和NetWare網路檔案系統
5、chkconfig auditd off linux的審計功能
6、chkconfig nfslock off 關閉TCP/IP網際網路共用檔案的協議的NFS的檔案鎖功能
7、chkconfig rpcgssd off 關閉 NFS v4
8、chkconfig rpcbind off 關閉RPC服務
9、chkconfig rpcidmapd off 關閉 NFS v4
10、chkconfig lvm2-monitor off 關閉系統對Logical Volume Manager 邏輯磁區的支援
11、chkconfig lldpad off 關閉鄰近發現協議
安裝基本配置程式(cronie 為安裝Cron)
# yum install -y setuptool ntsysv system-config-firewall-tui system-config-network-tui cronie wget vim unzip openssh-clients screen rsync ftp telnet (13)
setuptool Python的 distutilsde工具的增強工具(py2.3.5以上 64位py2.4)
ntsysv 設定系統的各種服務
system-config-firewall-tui 命令列使用者介面(TUI)的防火牆用戶端
system-config-network-tui 安裝Fedora網路設定的工具
記錄每次bash命令的執行時間
vi /etc/profile
這個檔案是每個使用者登入時都會啟動並執行環境變數設定,當使用者第一次登入時,該檔案被執行. 並從/etc/profile.d目錄的設定檔中搜集shell的設定。
加入(centos6最好加到第54行)
HISTTIMEFORMAT="%Y-%m-%d %H:%M:%S "
export HISTTIMEFORMAT
安全配置
禁用selinux
編輯# vi /etc/selinux/config
/etc/selinux/config是/etc/sysconfig/selinux軟串連的一個原檔案 提供強制存取控制(MAC)安全系統
SELINUX=disabled
su加固
編輯設定檔
# vi /etc/pam.d/su
大約第六行去掉#
#auth required pam_wheel.so use_uid
禁用非wheel使用者是用su
運行
# echo "SU_WHEEL_ONLY yes" >> /etc/login.defs
SU_WHEEL_ONLY yes 只允許wheel使用者su到root
/etc/login.defs 設定使用者帳號限制的檔案,在這裡我們可配置密碼的最大到期天數,密碼的最大長度約束等內容。該檔案裡的配置對root使用者無效。
設定可以su的使用者到wheel組
# useradd -G wheel yezhiqiu
# passwd yezhiqiu
SSH部分
# vim /etc/ssh/sshd_config
配置sshd伺服器
修改連接埠號碼
大約第13行
1、Port 58022 定義ssh的串連連接埠
不允許用root進行登入
大約第42行
2、PermitRootLogin no
不允許空密碼登入
大約第65行
3、PermitEmptyPasswords no
禁用DNS
大約第81行
4、GSSAPIAuthentication no
大約第122行
5、UseDNS no
最後一行只允許指定使用者登入ssh
6、AllowUsers yezhiqiu
編輯防火牆檔案
# vi /etc/sysconfig/iptables
加入
-A INPUT -m state --state NEW -m tcp -p tcp --dport 58022 -j ACCEPT
重啟服務
# /etc/init.d/sshd restart
# /etc/init.d/iptables restart
添加監控寶的snmpd監控
# yum -y install net-snmp 是一個免費的、開放源碼的網路監控
# vi /etc/snmp/snmpd.conf
# ------添加監控寶帳號------
rocommunity jiankongbao 60.195.249.83 “rocommunity”表示這是一個唯讀存取權限,監控寶只可以從你的伺服器上擷取資訊,而不能對伺服器進行任何設定
“jiankongbao”相當於密碼
如果您使用的是外掛程式 此處的ip 應該安裝採集器的機器的ip
rocommunity jiankongbao 60.195.252.107
rocommunity jiankongbao 60.195.252.110
重啟服務
# /etc/init.d/snmpd start
# chkconfig snmpd on
修改防火牆配置
# vi /etc/sysconfig/iptables
# ------添加防火牆規則------
-A INPUT -p udp -m udp --dport 161 -j ACCEPT
開啟udp協議
重啟防火牆
# /etc/init.d/iptables restart
校時
# yum install -y ntp
# /usr/sbin/ntpdate time.nist.gov IP為時間伺服器IP
硬體同步
# /sbin/hwclock --systohc
加入備份指令碼
# crontab -e
5 */6 * * * /usr/sbin/ntpdate time.nist.gov > /dev/null 2>&1
有些機房禁用UDP 可以使用rdate
# yum install -y rdate
5 */6 * * * /usr/bin/rdate -s stdtime.gov.hk > /dev/null 2>&1
安裝第三方軟體倉庫
EPEL
# wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
# rpm -ivh epel-release-6-8.noarch.rpm
修改enabled = 0預設不啟用
# vim /etc/yum.repos.d/epel.repo
# yum --enablerepo=epel -y install htop pbzip2
rpmforge逐步淘汰不用
# wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
# rpm -ivh rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
修改enabled = 0預設不啟用
# vim /etc/yum.repos.d/rpmforge.repo
# yum --enablerepo=rpmforge -y install htop unrar axel
htop即時監控
unrar 壓縮軟體60%以上壓縮比
axel 一種下載軟體 實行分段下載
最佳化Linux核心參數
# vi /etc/sysctl.conf
是配置一些系統資訊,而且它的內容全部是對應於/proc/sys/這個目錄的子目錄及檔案。
在末尾增加以下內容:
引用
# Add
1、net.ipv4.tcp_max_syn_backlog = 65536
表示用於向外串連的連接埠範圍。預設情況下很小:32768到61000,改為1024到65000。
2、net.core.netdev_max_backlog = 32768
每個網路介面接收資料包的速率比核心處理這些包的速率快時,允許送到隊列的資料包的最大數目
3、net.core.somaxconn = 32768
定義了系統中每一個連接埠最大的監聽隊列的長度,這是個全域的參數,預設值為1024
4、net.core.wmem_default = 8388608
該檔案指定了發送通訊端緩衝區大小的預設值(以位元組為單位)。
5、net.core.rmem_default = 8388608
該檔案指定了接收通訊端緩衝區大小的預設值(以位元組為單位)
6、net.core.rmem_max = 16777216
指定了接收通訊端緩衝區(接收視窗)大小的最大值(以位元組為單位) 最大的TCP資料接收緩衝
7、net.core.wmem_max = 16777216
指定了發送通訊端緩衝區(接收視窗)大小的最大值(以位元組為單位) 最大的TCP資料發送緩衝
8、net.ipv4.tcp_timestamps = 0
以一種比重發逾時更精確的方法(請參閱 RFC 1323)來啟用對 RTT 的計算;為了實現更好的效能應該啟用這個選項,時間戳記在(請參考RFC 1323)TCP的包頭增加12個位元組
9、net.ipv4.tcp_synack_retries = 2
syn-ack握手狀態重試次數,預設5,遭受syn-flood(Dos與DDos)攻擊時改為1或2
10、net.ipv4.tcp_syn_retries = 2
外向syn握手重試次數,預設4
11、net.ipv4.tcp_tw_recycle = 1
預設0,tw快速回收
12、#net.ipv4.tcp_tw_len = 1
表示開啟重用。允許將TIME-WAIT sockets 重新用於新的TCP串連,預設為0,表示關閉
13、net.ipv4.tcp_tw_reuse = 1
表示開啟重用。允許將TIME-WAIT sockets重新用於新的TCP串連,預設為0,表示關閉;
14、net.ipv4.tcp_mem = 94500000 915000000 927000000
確定 TCP 棧應該如何反映記憶體使用量;每個值的單位都是記憶體頁(通常是 4KB)。第一個值是記憶體使用量的下限。第二個值是記憶體壓力模式開始對緩衝區使用應用壓力的上限。
第三個值是記憶體上限。在這個層次上可以將報文丟棄,從而減少對記憶體的使用。對於較大的 BDP 可以增大這些值(但是要記住,其單位是記憶體頁,而不是位元組)
15、net.ipv4.tcp_max_orphans = 3276800
系統中最多有多少個TCP通訊端不被關聯到任何一個使用者檔案控制代碼上。如果超過這個數字,孤兒串連將即刻被複位並列印出警告資訊。
這個限制僅僅是為了防止簡單的DoS攻擊,你絕對不能過分依靠它或者人為地減小這個值,更應該增加這個值(如果增加了記憶體之後)
16、#net.ipv4.tcp_fin_timeout = 30
表示如果通訊端由本端要求關閉,這個參數決定了它保持在FIN-WAIT-2狀態的時間。
17、#net.ipv4.tcp_keepalive_time = 120
表示當keepalive起用的時候,TCP發送keepalive訊息的頻度。預設是2小時,改為20分鐘。
18、net.ipv4.ip_local_port_range = 1024 65535
指定連接埠範圍的一個配置,預設是32768 61000
目前可以確定的是
#######
19、fs.aio-max-nr = 1048576
同時可以擁有的的非同步IO請求數目
20、fs.file-max = 6815744
系統中可以同時開啟的檔案數目。
21、kernel.shmall = 2097152
參數是控制共用記憶體頁數
22、kernel.shmmax = 536870912
核心參數定義單個共用記憶體段的最大值
23、kernel.shmmni = 4096
整個系統共用記憶體段的最大數目。
24、kernel.sem = 250 32000 100 128
表示設定的訊號量,這4個參數內容大小固定。
25、net.ipv4.ip_local_port_range = 9000 65500
表示用於向外串連的連接埠範圍。預設情況下很小:32768到61000,改為1024到65000。
26、net.core.rmem_default = 262144
該檔案指定了接收通訊端緩衝區大小的預設值(以位元組為單位)。
27、net.core.rmem_max = 4194304
指定了接收通訊端緩衝區(接收視窗)大小的最大值(以位元組為單位) 最大的TCP資料接收緩衝
28、net.core.wmem_default = 262144
該檔案指定了發送通訊端緩衝區大小的預設值(以位元組為單位)。
29、net.core.wmem_max = 1048586
指定了發送通訊端緩衝區(接收視窗)大小的最大值(以位元組為單位) 最大的TCP資料發送緩衝
#######
使配置立即生效:
/sbin/sysctl -p
-p 從指定的檔案載入系統參數,如不指定即從/etc/sysctl.conf中載入;
調整ulimit
# vi /etc/security/limits.conf
Linux PAM中 pam_limits.so 的設定檔,而且只針對於單個會話。
在檔案末加上:
* soft nofile 65535
* hard nofile 65535
soft nofile:單個使用者可用的最大進程數量(軟式節流)
hard nofile:單個使用者可用的最大進程數量(硬限制)
# vi /etc/security/limits.d/90-nproc.conf
修改
* soft nproc 1024
為
* soft nproc 65535
soft nproc: 可開啟的檔案描述符的最大數(軟式節流)
hard nproc: 可開啟的檔案描述符的最大數(硬限制)
設定logwatch發給指定郵箱
# yum install logwatch -y logwatch 日誌監視器
# echo "MailTo = yezhiqiu.cn@gmail.com" >>/etc/logwatch/conf/logwatch.conf
添加
MailTo = yezhiqiu.cn@gmail.com
刪除對httpd的日誌分析在 /usr/share/logwatch/default.conf/logwatch.conf加入大約在86行
Service = "-http"
不監控的服務前面加 “-” , 如 -httpd , 即不監控 httpd 服務 , 可以寫多條
如果需要自己編譯軟體
# yum install gcc gcc-c++ make automake autoconf patch
LAMP伺服器做如下步驟:
# yum --enablerepo=epel install cronolog
cronolog日誌切割工具
# yum install httpd mysql-server
# yum install postgresql-devel mysql-devel httpd-devel openssl-devel libxml2-devel zlib-devel curl-devel libmcrypt-devel mhash-devel libjpeg-devel libpng-devel gd-devel freetype-devel libtool-ltdl-devel
# yum install libevent-devel libc-client-devel readline-devel
# yum install libXpm-devel libxslt-devel krb5-devel net-snmp-devel
# cd /usr/lib64
# ln -s /usr/lib64/mysql/libmysqlclient.so
# yum install php53 php53-gd php53-devel php53-mbstring php53-mysql php53-xml php53-xmlrpc
附:
硬體檢測:
# wget http://aspersa.googlecode.com/svn/trunk/summary
# chmod +x summary
# ./summary
CentOS升級流程:
yum clean all
yum update glibc\* -y
yum update yum\* rpm\* pyth\* -y
yum clean all
yum update mkinitrd nash -y
yum update selinux\* -y
yum update -y
shutdown -r now
安裝常用附加軟體
# yum install screen sysstat iptraf
iptraf :CLI 流量監視軟體
screen:遠端工作階段管理
sysstat:系統效能分析工具包
磁碟IO測試
yum --enablerepo=rpmforge install iozone
去掉atime提高檔案系統效能:
可以在/etc/fstab中增加,noatime,nodiratime參數
降低檔案系統許可權
nosuid,noexec,nodev參數
殺毒軟體
# yum --enablerepo=epel install clamd
升級病毒庫
# freshclam --verbose
# clamscan -i -r /dir
備選庫
http://rpms.famillecollet.com/
可以安裝在centos5等低版本中安裝php-fpm等軟體