1. 程式人生 > >CentOS系統的優化

CentOS系統的優化

   優化之前,首先檢視版本資訊

複製程式碼
# cat /etc/redhat-release  
CentOS release 6.7 (Final)                    # 系統版本資訊
# uname –r
2.6.32-573.el6.x86_64                           # 核心版本資訊
# uname -m
x86_64                                                  #表示為64位系統
# uname –a                                          # 顯示全部資訊
Linux hostname2.
6.32-573.el6.x86_64 #1 SMP Thu Jul 23 15:44:03 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
複製程式碼
Linux基礎優化與安全重點小結
複製程式碼
 1  不用root登入管理系統,而以普通使用者登入通過sudo授權管理
 2  更改預設的遠端連線SSH服務埠,禁止root使用者遠端連線,甚至要更改SSH服務只監聽內網IP
 3  定時自動更新伺服器時間,使其和網際網路同步
 4  配置yum更新源,從國內更新源下載安裝軟體包
 5  關閉SELinux及iptables
 6  定時自動清理郵件臨時目錄垃圾檔案,防止磁碟inodes數被小檔案佔滿
 7  調整檔案描述符的數量,程序及檔案的開啟都會消耗檔案描述符的數量
 8 精簡併保留必要的開機啟動服務
 9 Linux核心引數優化/etc/sysctl.config,執行sysetl –p生效
10 更改系統字符集, 為“zh_CN.UTF-8”,使其支援中文,防止出現亂碼問題。
11 鎖定關鍵檔案,如: passwd、/etc/shadow/、/etc/group/、/etc/gshadow、/etc/inittab,處理以上內容後把chattr、lsattr、改名為root,轉移走,這樣就安全多了。
12 清空/etc/issue /etcissue.net,去除系統及核心版本登入前的螢幕顯示
13 清除多餘的系統虛擬使用者賬號
14 為grub引導選單加密碼
15 禁止主機被ping
16 打補丁並升級有已知漏洞的軟體
複製程式碼

 拓展

掌握Linux系統的7種執行級別

複製程式碼
1 執行級別0:系統停機狀態,系統預設執行級別不能設為0,否則不能正常啟動
2 執行級別1:單使用者工作狀態,root許可權,用於系統維護,禁止遠端登陸
3 執行級別2:多使用者狀態(沒有NFS)
4 執行級別3:完全的多使用者狀態(有NFS),登陸後進入控制檯命令列模式
5 執行級別4:系統未使用,保留
6 執行級別5:X11控制檯,登陸後進入圖形GUI模式
7 執行級別6:系統正常關閉並重啟,預設執行級別不能設為6,否則不能正常啟動
複製程式碼

 掌握Linux系統從開機到登入之前的啟動流程。是由etc/inittab控制

1.    使用阿里雲映象做樣本源

預設國外的yum源比較慢,所以換成國內的。

複製程式碼
1 #  cd /etc/yum.repos.d/
2 #  ls
3 CentOS-Base.repo       CentOS-Media.repo
4 CentOS-Debuginfo.repo  CentOS-Vault.repo
5 CentOS-fasttrack.repo
6 # cp CentOS-Base.repo CentOS-Base.repo.ori                    更改配置檔案之前進行備份
7 # wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo                         centos6系統
8 # echo "192.168.14.200 mirrors.aliyun.com" >>/etc/hosts    公網地址換成內網地址 
9 # yum -y install tree nmap sysstat lrzsz dos2unix telnet                                        安裝必要的軟體包(tree)
複製程式碼

2.    關閉SELinux功能

1)  修改配置檔案,使關閉SELinux永久生效:

l        第一種方法

1 # vim /etc/selinux/config
2 然後找到SELINUX=enforcing改成SELINUX=disabled
3 ESC:wq結束

l        第二種方法

1 sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
2 sed -i 's#SELINUX=enforcing#SELINUX=disabled#' /etc/selinux/config

2)  臨時關閉SELinux,可在命令列執行如下命令:

複製程式碼
 1 [[email protected] ~]# getenforce                  <--檢視現在狀態
 2 
 3 Enforcing
 4 
 5 [[email protected] ~]# setenforce 
 6 
 7 usage:  setenforce [ Enforcing | Permissive | 1 | 0 ]
 8 
 9 [[email protected] ~]# setenforce 0          <-- 臨時將selinux調成下面的狀態
10 
11 [[email protected] ~]# getenforce 
12 
13 Permissive
複製程式碼

命令說明:setenforce:用於命令列管理SELinux的級別,

                  getenforce:檢視SELinux當前級別

提示:修改配置SELinux後,要想其生效,必須要重啟系統。再生產場景中不能隨意重啟系統。  

3)    關閉iptables防火牆

l        臨時關閉,關機之後會重新啟動

1 /etc/init.d/iptables status                <-- 檢視看是否開啟
2 /etc/init.d/iptables stop                   <-- 關閉防火牆

l        關閉開機自啟動的防火牆

第一種方法

1 [[email protected] ~]# chkconfig --list|grep ipt        <-- 檢視狀態
2 iptables        0:off   1:off   2:on    3:on    4:on    5:on     6:off
3 [[email protected] ~]# chkconfig iptables off          <--下一次系統開啟不執行防火牆
4 [[email protected] ~]# chkconfig --list|grep ipt
5 iptables        0:off   1:off   2:off   3:off   4:off   5:off    6:off

第二種方法  

1        /etc/init.d/iptables stop            <--當前關閉防火牆
2        chkconfig iptables off               <--關閉開機自啟動命令 

4)    設定執行級別為3(文字模式)

1 設定執行級別(runlevel)為3(一般安裝系統後預設為3)即表示使用文字命令模式管理linux
2 
3 grep 3:initdefault /etc/inittab      <-- 檢查命令
4 runlevel                                      <--另一種簡單方法
5 init 3                                           <--切換執行級別

5)    精簡開機系統啟動

1)系統開機必須要開啟的服務

l        sshd

遠端連線linux伺服器時需要用到這個服務程式,所以必須開啟

l        rsyslog

日誌相關軟體,

l        network

網路服務

l        crond

會週期的執行系統和使用者配置的任務計劃。

l        sysstat

sysstat是一個軟體包,包含檢測系統性能及效率的一組工具.\

2)設定開啟自啟動服務的方法

手動關閉用setup

chkconfig --list|grep 3:on   <--檢視開機自啟動的專案
第一種快速處理方法:先全關閉,再開啟需要保留的。
操作思路:先將3級別文字模式下預設開啟的服務都關閉,然後開啟需要開啟的服務。
操作命令如下:
1 LANG=en
2 for root in `chkconfig --list|grep 3:on|awk '{print $1}'`;do chkconfig --level 3 $root off;done 
3 for root in crond network rsyslog sshd sysstat ;do chkconfig --level 3 $root on;done
4 chkconfig --list|grep 3:on
第二種快速處理方法
1 for root in `chkconfig --list|grep "3:on"|awk '{print $1}'|grep -vE "crond|network|sshd|rsyslog|sysstat"`;do chkconfig $root off;done
第三種快速處理方法(逼格最高)
chkconfig --list|grep 3:on|grep -vE "crond|sshd|network|rsyslog|sysstat " |awk '{print "chkconfig " $1 " off"}'|bash

6)    新增普通使用者賬號

linux/unix是一個多使用者,多工的作業系統

超級管理員(root):擁有最高許可權

普通使用者

l     一條命令設定密碼

echo '123456'|passwd --stdin root       <--root使用者名稱,密碼為123456

|    使用命令新增一個普通使用者,命令如下: 

1 useradd  root                           <--新增使用者
2 passwd  root                            <--設定使用者密碼

l    嘗試切換使用者角色,命令如下:

1 [[email protected] ~]# su – root                  <--由root管理員,切換到普通使用者root
2 [[email protected] ~]$ whoami            <--檢視當前使用者
3 root                                 
4 [[email protected] ~]$ su -                   <--切到root使用者
5 Password:

l        linux命令提示符由PS1環境變數

檢視環境變數:    echo $PS1  

7)    利用sudo控制使用者的使用許可權

為了方便管理,可以給使用者授權,過程:輸入vi sudoers找到98行,在下面放入如下內容:

oldboy   ALL=(ALL)   NOPASSWD: ALL      <--all表示完全的系統許可權,NOPASSWD表示提示許可權命令時不需要密碼

配置完成後要進行檢查,命令如下:

[[email protected] ~]# grep root /etc/sudoers
oldboy    ALL=(ALL)   NOPASSWD: ALL

此時再以oldboy使用者登入系統時,就可以通過執行sudo ls –l  /root (sudo後面跟正常命令)的命令以root使用者的許可權管理系統了,如下:

[[email protected] ~]$ ls /root/
ls: cannot open directory /root/: Permission denied
[[email protected] ~]$ sudo ls /root/
HostKeyDB.txt       test.txt      12345                         install.log         woaini

8)    Linux系統安全最小化原則說明

a)         安裝Linux系統最小化,即選包最小化。

b)        開機自啟動服務最小化,即不用的服務不開啟。

c)         操作命令最小化。

d)        登入Linux使用者最小化。平時沒有特殊需要就用普通使用者登入即可。

e)         普通使用者授權許可權最小化。只給使用者必要的管理系統的命令。

f)         Linux系統檔案及目錄的許可權設定最小化。禁止隨意建立,更改,刪除檔案。

g)        程式服務執行最小化,即程式服務執行儘量不用root身份進行。

9)    更改SSH服務端遠端登入的配置

windows伺服器的預設遠端管理埠是3389,管理員使用者是administrator,普通使用者guest。Linux管理使用者是root,遠端連線預設埠port22。

複製程式碼
1 [[email protected] ~]#cp /etc/ssh/sshd_config /etc/ssh/sshd_config.ori <--備份配置檔案,簡單寫法cp /etc/ssh/sshd_config{,.ori}2 [[email protected] ~]# vim /etc/ssh/sshd_config  
3
進入17行加入:
4
####by root#2011-11-24##
5
rt 52113
6
PermitRootLogin no
7
PermitEmptyPasswords no
8
UseDNS no
9
GSSAPIAuthentication no
10 ####by root#2011-11-24##
11 /etc/init.d/sshd reload     <--reload為平滑重啟,不會影響正在SSH連線的其他使用者,restart直接斷開生效
複製程式碼

然後就連不上了,因為埠改了。

然後更改會話選項裡的SSH2裡的埠還有使用者名稱。就OK了

10)         Linux中文顯示設定

此選項為優化可選項,即調整Linux系統的字符集設定。

簡單的說,字符集就是一套文字元號及其編碼。目前linux下常用的字符集有:

  GBK:定長雙位元組

  UTF-8:非定常,1~4位元組,廣泛支援

臨時生效,命令:LANG=”zh_CN.UTF-8’

永久生效,可以通過快捷的命令方式在/etc/sysconfig/i18n中新增如下內容,使其支援中文顯示:

複製程式碼
 1 [[email protected] ~]# echo $LANG
 2 en_US.UTF-8
 3 [[email protected] ~]# cat /etc/sysconfig/i18n
 4 LANG="en_US.UTF-8"
 5 SYSFONT="latarcyrheb-sun16"
 6 [[email protected] ~]# cp /etc/sysconfig/i18n  /etc/sysconfig/i18n.ori
 7 [[email protected] ~]#echo ‘LANG=”zh_CN.UTF-8”’>/etc/sysconfig/i18n

            
           

相關推薦

centos 系統優化

linux 系統開機自啟動優化 關閉所有:for zdw in `chkconfig --list|grep "5:on"|awk ‘ {print $2}‘ `;do chkconfig $zdw off;donefor zdw in `chkconfig --list|grep "5:on"|awk

CentOS系統優化腳本,未完結

CentOS 系統優化 最小化安裝 #!/bin/bash#判斷一個當前用戶是不是root用戶,不是則提示需要使用sudo來提升權限if [ $user != "root"] then echo "需要使用 sudo 才能使用的腳本"】

Linux CentOS 6.9系統優化腳本

互聯網 時間 lan optimize /etc/ cal track 文件 rip 系統版本CentOS release 6.9 (Final)2.6.32-696.el6.x86_64 x86_64 [root@yuguotianqing scripts]# cat o

Centos 6系統優化

iptable nta con ket 開機 for 時間 cor cal #!/bin/bash export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin mkdi

2-09 CentOS系統參數優化

backlog 建立 長度 系統 back 一個 服務 客戶端 net 對於一個tcp連接來說,服務器與客戶端之間需要三次握手,來建立網絡的連接,當三次握手成功之後,我們可以通過netstat 命令查看端口的狀態由監聽轉變成連接,就可以在這連接上傳輸數據了,對於一個監聽狀態

Centos 6 系統優化

linux centos6 系統初始優化 Centos 6 系統優化1.系統安裝的包 最小化安裝時,自定義額外包組Base,Compatibility libraries,Debugging Tools,Development tools. 自

CentOS系統參數優化

容易 數據庫 進行 重啟 禁用 linux 有一個 請求 max 內核相關參數(/etc/sysctl.conf)   以下參數可以直接放到sysctl.conf文件的末尾:     net.core.somaxconn = 65535     net.core.netde

mysql之 CentOS系統針對mysql參數優化

內核參數 mysq 特殊 app 參數 bsp 緩沖池 dea 磁盤分區 內核相關參數(/etc/sysctl.conf)   以下參數可以直接放到sysctl.conf文件的末尾:    net.core.somaxconn = 65535    net.core.net

mysql之 CentOS系統針對mysql引數優化

核心相關引數(/etc/sysctl.conf)    以下引數可以直接放到sysctl.conf檔案的末尾:     net.core.somaxconn = 65535     net.core.netdev_max_backlog = 65535     net.ipv

CentOS系統優化

   優化之前,首先檢視版本資訊# cat /etc/redhat-release CentOS release 6.7 (Final) # 系統版本資訊 # uname –r 2.6.32-573.el6.x86_64

CentOS 6.x 系統優化指令碼

每次都優化很麻煩,整理了一個指令碼: #!/bin/bash SERVICES="abrt-ccpp abrt-oops abrtd acpid atd auditd avahi-daemon autofs avahi-daemon bluetooth certmonger

VirtulBox虛擬機搭建Linux Centos系統

流量 -- span 名稱 ftp 註意 img blank style 簡要說明   該文章目的是基於搭建hadoop的前置文章,當然也可以搭建Linux的入門文章。那我再重復一下安裝準備軟件。   環境準備: http://pan.baidu.com/s/1dFrH

CentOS系統yum報錯Cannot find a valid baseurl for repo

val 成功 start network valid 搜索 解決 base 連接 今天在嘗試安裝apache2服務器時候遇到了問題:在使用新安裝的CentOS系統下使用yum命令行直接報錯。 搜索了一下解決方法,首先嘗試第一個,修改DNS vi /etc/resolv.co

Centos系統通過tar.gz包安裝Mysql5.7

light 修改 class ads basedir 創建 datadir 遠程 root 1.安裝mysql之前需要確保系統中有libaio依賴,使用如下命令: yum search libaio yum install libaio 2.進入centos終端操作

局域網如何通過SSH連接虛擬機裝的centOS系統

nbsp 1-1 images image 但是 通過 一個 其他 ping 首先,在一個局域網內的一臺機器上裝了虛擬機,虛擬機上裝了centos系統; 但是,只有本機能連接centos,其他電腦都連不上; ping了一下發現不通,然後排查原因。 我發現局域網內的機器IP都

Linux系統優化

系統優化   系統   優化 linux1、修改ip地址、網關、主機名、DNS等[[email protected]/* */ ~]# cat/etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 #網卡

VMware12 中CENTOS系統中網絡(橋接模式)靜態ip設置

start 3.1 打開 設備 一段 引導 打開文件 虛擬網絡 -- 1.菜單欄:--》編輯 –》虛擬網絡編輯 2.虛擬機設置 3.啟動虛擬機   3.1打開文件ifcfg-eth0 命令如下: vi

“Vbox安裝CentOS系統”之低級錯誤一例:版本號的選擇

作品 檢查 span fontsize 分析 版本 系列 ast 網卡 日 期:2014年7月18日 錯誤描寫敘述:虛擬機系統版本號選擇錯誤,導致無法引導進入光盤安裝 錯誤重演: 因為混淆了centos和rehat的版本號概念。錯

CentOS系統編譯安裝服務如何添加開機自啟動

開機自啟 rc.local生效 今天在重啟CentOS系統時,發現已設置開機自啟動的服務並沒有隨開機自啟動,於是查閱資料,定位原因,特更此文,以備查閱。 首先,之前的做法是將命令寫入/etc/rc.local文件中,如下: vi /etc/rc.local #!/bin/ba

2017.7.7 長尾關鍵詞系統優化

名稱 布局 產生 網站 排名 tro 蜘蛛 文章標題 設計 挖掘長尾思路: 1.定位目標用戶 2.思考目標用戶搜索行為 3.用目標用戶搜索詞進行關鍵詞擴展 5118 找出行業20個網站,分析流量來源的關鍵詞 麻辣燙裝修店面 酸辣粉店面裝修 同義詞替換 萬科網站設