CentOS 6.x安裝完成後的優化

甄城發表於2017-06-28

檢視系統32位還是64位

[root@i-92x8m5i3 logs]# uname -r
2.6.32-504.16.2.el6.x86_64
[root@i-92x8m5i3 logs]# uname -a
Linux i-92x8m5i3 2.6.32-504.16.2.el6.x86_64 #1 SMP Wed Apr 22 06:48:29 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
[root@i-92x8m5i3 logs]# ls -d /lib64
/lib64

[root@local-dev ~]# uname -m
x86_64
[root@local-dev ~]# cat /etc/redhat-release 
CentOS release 6.5 (Final)

配置網路卡

使用setup命令或編輯/etc/sysconfig/network-scripts/ifcfg-eth0內容

網路卡配置完成後執行
ifup eth0 啟動網路卡
ifconfig eth0 檢視獲取的ip
·ping baidu.com· 檢測網路卡是否暢通

儘量不用/etc/init.d/network restart重啟網路卡,這會影響物理機上的所有網路卡

[root@localhost ~]# ifdown eth0 && ifup eth0 快速重啟

網路暢通步驟一,檢視網路卡

[root@local-dev ~]# ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:50:56:94:6B:B4  
          inet addr:10.0.1.16  Bcast:10.0.1.255  Mask:255.255.254.0
          inet6 addr: fe80::250:56ff:fe94:6bb4/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:9005200 errors:0 dropped:0 overruns:0 frame:0
          TX packets:11334373 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:1388103677 (1.2 GiB)  TX bytes:6820763127 (6.3 GiB)

網路暢通步驟二,檢視預設閘道器

[root@local-dev ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.0.0.0        0.0.0.0         255.255.254.0   U     0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0
0.0.0.0         10.0.0.1        0.0.0.0         UG    0      0        0 eth0

網路暢通步驟三,檢視dns設定

[root@local-dev ~]# cat /etc/resolv.conf 
# Generated by NetworkManager
nameserver 114.114.114.114

在centos6.6中,只在確定的ifcfg-eth0網路卡配置檔案上配置dns,如果在/etc/resolv.conf上配置dns,使用命令/etc/init.d/network restart會清除/etc/resolv.conf的dns配置

經過網路暢通三步驟應該就可以上網了

網路卡的配置檔案

[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0       # 網路卡名, eth1第二塊網路卡名,以此類推
TYPE=Ethernet     # 上網型別,乙太網
UUID=8d6bdf86-1fda-4334-99bb-74b634018e9d    # 唯一標誌碼
ONBOOT=yes        # 開機自啟動
NM_CONTROLLED=yes  # 是否通過NetworkManager管理網路卡裝置
BOOTPROTO=dhcp     # 啟動協議,none|bootp|dhcp三種選項
HWADDR=00:0C:29:50:98:80 # 網路卡mac地址
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no     # 是否支援IP6
NAME="System eth0"
LAST_CONNECT=1486401226

IPADDR=10.0.1.16      # 固定IP
PREFIX=23
GATEWAY=10.0.0.1
NETMASK=255.255.255.0 #子網掩碼
DNS1=114.114.114.114  # 主DNS,預設會覆蓋/etc/resolv.conf的配置

更新系統,打補丁

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
wget http://mirrors.163.com/.help/CentOS6-Base-163.repo
yum clean all
yum makecache
yum update -y  # 更新系統,打補丁

安裝額外的工具軟體包

 [root@localhost ~]# yum install tree telnet dos2unix sysstat lrzsz nc nmap -y

sysstat包含了iostat(cpu使用率和硬碟吞吐率)、mpstat(單個或多個)處理器相關的資料、sor(收集報告並儲存系統活躍資訊)
yum grouplist 檢視所有包名稱
yum groupinstall "Development Tools" 指定包組名安裝,注意需要雙引號

連線不上服務排查

一、檢查物理鏈路是否有問題(客戶端執行)
ping 10.0.0.7 # 排查線路問題
windows:tracert -d 10.0.0.7 # 檢查線路是否暢通 -d 不進行反向解析
linux:traceroute 10.0.0.7 -n

二、服務是否開啟埠(客戶端執行)
telnet 10.0.0.7 22
nmap 10.0.0.7 -p 22 (linux環境,需要安裝)

三、是否防火牆阻擋(服務端執行)
/etc/init.d/iptables status

例如:檢查ssh服務是否開啟

[root@i-92x8m5i3 backend]# ps -ef | grep sshd | grep -v grep
root      1075     1  0 May04 ?        00:00:00 /usr/sbin/sshd
root      2100  1075  0 10:25 ?        00:00:00 sshd: root@pts/2 
root      5565  1075  0 12:21 ?        00:00:00 sshd: root@pts/3 
root     19821  1075  0 Jun26 ?        00:00:03 sshd: root@pts/0,pts/1
[root@i-92x8m5i3 backend]# netstat -lntup | grep sshd
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      1075/sshd           
tcp        0      0 :::22                       :::*                        LISTEN      1075/sshd 

使用者

[root@local-dev ~]# useradd ljq
[root@local-dev ~]# passwd ljq
Changing password for user ljq.
New password: 
BAD PASSWORD: it is too simplistic/systematic
BAD PASSWORD: is too simple
Retype new password: 
passwd: all authentication tokens updated successfully.
[root@local-dev ~]# su - ljq
[ljq@chuangxin ~]$ whoami
ljq
[ljq@chuangxin ~]$ su - root
Password: 

一句話完成密碼設定,但是需要該使用者已存在
[root@local-dev ~]# echo “1234” | passwd –stdin ljq && history -c
Changing password for user ljq.
passwd: all authentication tokens updated successfully.

[ljq@chuangxin ~]$          普通使用者為$美元符號
[root@local-dev ~]#         root使用者為#符號

[root@i-92x8m5i3 backend]# whoami     # 檢視當前使用者
root
[root@i-92x8m5i3 backend]# hostname   # 檢視當前主機名
i-92x8m5i3

[root@local-dev ~]# echo $PS1      #設定PS1變數
[e[37;40m][[e[32;40m]u[e[37;40m]@local-dev [e[35;40m]W[e[0m]]$

安全設定

關閉SELinux

1、修改SELinux配置檔案,使之永遠失效

[root@localhost ~]#  sed -i `s/SELINUX=enforcing/SELinux=disabled/` /etc/selinux/config
[root@localhost ~]# grep SELINUX=disabled /etc/selinux/config
SELINUX=disabled

2、結合手動關閉,可避免重啟

[root@localhost ~]# setenforce 0
setenforce: SELinux is disabled
[root@localhost ~]# getenforce
Disabled

設定執行基本為3(文字模式)

[root@localhost ~]# runlevel
N 3
[root@localhost ~]# grep 3:initdefault /etc/inittab
id:3:initdefault:

實現精簡開機

預設啟動只需要開啟如下5種服務即可

  • sshd

  • rsylog 系統的守護程式使用rsylog程式將各種資訊寫到各個系統日誌檔案中

  • network 啟用或關閉各個網路介面

  • crond

  • sysstat 檢測系統效能及執行效率的工具

設定開機自自動項

方式一,執行命令完成設定
執行ntsysv命令或執行setup命令,選擇system service選項
退出按Tab鍵進行選擇Exit退出

方式二,使用shell完成設定

注意:只查詢3級別的服務項即可

1、先全部關閉,在開啟保留項

# 1、先檢視level 3的服務開關狀況
[root@localhost ~]# LANG=en
[root@localhost ~]# echo $LANG
en
[root@localhost ~]# chkconfig --list
auditd             0:off    1:off    2:on    3:on    4:on    5:on    6:off
blk-availability    0:off    1:on    2:on    3:on    4:on    5:on    6:off
crond              0:off    1:off    2:on    3:on    4:on    5:on    6:off
ip6tables          0:off    1:off    2:on    3:on    4:on    5:on    6:off
iptables           0:off    1:off    2:on    3:on    4:on    5:on    6:off
lvm2-monitor       0:off    1:on    2:on    3:on    4:on    5:on    6:off
messagebus         0:off    1:off    2:on    3:on    4:on    5:on    6:off
netconsole         0:off    1:off    2:off    3:off    4:off    5:off    6:off
netfs              0:off    1:off    2:off    3:on    4:on    5:on    6:off
network            0:off    1:off    2:on    3:on    4:on    5:on    6:off
postfix            0:off    1:off    2:on    3:on    4:on    5:on    6:off
rdisc              0:off    1:off    2:off    3:off    4:off    5:off    6:off
restorecond        0:off    1:off    2:off    3:off    4:off    5:off    6:off
rsyslog            0:off    1:off    2:on    3:on    4:on    5:on    6:off
saslauthd          0:off    1:off    2:off    3:off    4:off    5:off    6:off
sshd               0:off    1:off    2:on    3:on    4:on    5:on    6:off
udev-post          0:off    1:on    2:on    3:on    4:on    5:on    6:off

#2、關閉後,檢視關閉狀況
[root@localhost ~]# for oldboy in `chkconfig --list|grep 3:on|awk `{print $1}``;do chkconfig --level 3 $oldboy off;done
[root@localhost ~]# chkconfig --list
auditd             0:off    1:off    2:on    3:off    4:on    5:on    6:off
blk-availability    0:off    1:on    2:on    3:off    4:on    5:on    6:off
crond              0:off    1:off    2:on    3:off    4:on    5:on    6:off
ip6tables          0:off    1:off    2:on    3:off    4:on    5:on    6:off
iptables           0:off    1:off    2:on    3:off    4:on    5:on    6:off
lvm2-monitor       0:off    1:on    2:on    3:off    4:on    5:on    6:off
messagebus         0:off    1:off    2:on    3:off    4:on    5:on    6:off
netconsole         0:off    1:off    2:off    3:off    4:off    5:off    6:off
netfs              0:off    1:off    2:off    3:off    4:on    5:on    6:off
network            0:off    1:off    2:on    3:off    4:on    5:on    6:off
postfix            0:off    1:off    2:on    3:off    4:on    5:on    6:off
rdisc              0:off    1:off    2:off    3:off    4:off    5:off    6:off
restorecond        0:off    1:off    2:off    3:off    4:off    5:off    6:off
rsyslog            0:off    1:off    2:on    3:off    4:on    5:on    6:off
saslauthd          0:off    1:off    2:off    3:off    4:off    5:off    6:off
sshd               0:off    1:off    2:on    3:off    4:on    5:on    6:off
udev-post          0:off    1:on    2:on    3:off    4:on    5:on    6:off
# 3、開啟後,檢視開啟狀況
[root@localhost ~]# for oldboy in crond network rsyslog sshd sysstat;do chkconfig --level 3 $oldboy on;done
[root@localhost ~]# chkconfig --list
auditd             0:off    1:off    2:on    3:off    4:on    5:on    6:off
blk-availability    0:off    1:on    2:on    3:off    4:on    5:on    6:off
crond              0:off    1:off    2:on    3:on    4:on    5:on    6:off
ip6tables          0:off    1:off    2:on    3:off    4:on    5:on    6:off
iptables           0:off    1:off    2:on    3:off    4:on    5:on    6:off
lvm2-monitor       0:off    1:on    2:on    3:off    4:on    5:on    6:off
messagebus         0:off    1:off    2:on    3:off    4:on    5:on    6:off
netconsole         0:off    1:off    2:off    3:off    4:off    5:off    6:off
netfs              0:off    1:off    2:off    3:off    4:on    5:on    6:off
network            0:off    1:off    2:on    3:on    4:on    5:on    6:off
postfix            0:off    1:off    2:on    3:off    4:on    5:on    6:off
rdisc              0:off    1:off    2:off    3:off    4:off    5:off    6:off
restorecond        0:off    1:off    2:off    3:off    4:off    5:off    6:off
rsyslog            0:off    1:off    2:on    3:on    4:on    5:on    6:off
saslauthd          0:off    1:off    2:off    3:off    4:off    5:off    6:off
sshd               0:off    1:off    2:on    3:on    4:on    5:on    6:off
udev-post          0:off    1:on    2:on    3:off    4:on    5:on    6:off

2、一條命令shell搞定

預設情況下,需要保留的服務,已經開啟了,只需要把不用的狀態關閉掉即可

[root@localhost ~]# for oldboy in `chkconfig --list | grep "3:on" | awk `{print $1}` | grep -vE "crond|network|sshd|rsyslog|sysstat"`;do chkconfig $oldboy off;done
[root@localhost ~]# chkconfig --list
auditd             0:off    1:off    2:on    3:off    4:on    5:on    6:off
blk-availability    0:off    1:on    2:on    3:off    4:on    5:on    6:off
crond              0:off    1:off    2:on    3:on    4:on    5:on    6:off
ip6tables          0:off    1:off    2:on    3:off    4:on    5:on    6:off
iptables           0:off    1:off    2:on    3:off    4:on    5:on    6:off
lvm2-monitor       0:off    1:on    2:on    3:off    4:on    5:on    6:off
messagebus         0:off    1:off    2:on    3:off    4:on    5:on    6:off
netconsole         0:off    1:off    2:off    3:off    4:off    5:off    6:off
netfs              0:off    1:off    2:off    3:off    4:on    5:on    6:off
network            0:off    1:off    2:on    3:on    4:on    5:on    6:off
postfix            0:off    1:off    2:on    3:off    4:on    5:on    6:off
rdisc              0:off    1:off    2:off    3:off    4:off    5:off    6:off
restorecond        0:off    1:off    2:off    3:off    4:off    5:off    6:off
rsyslog            0:off    1:off    2:off    3:on    4:off    5:off    6:off
saslauthd          0:off    1:off    2:off    3:off    4:off    5:off    6:off
sshd               0:off    1:off    2:on    3:on    4:on    5:on    6:off
sysstat            0:off    1:on    2:on    3:on    4:on    5:on    6:off
udev-post          0:off    1:on    2:on    3:off    4:on    5:on    6:off

3、迴圈語句搞定

原理如2,使用命令拼出處理的字串,然後通過bash將其當做命令執行

[root@localhost ~]# chkconfig --list | grep -vE "crond|sshd|network|rsyslog|sysstat" | awk `{print "chkconfig " $1 " off"}` | bash

# 另外一種寫法
[root@localhost ~]# chkconfig --list | grep 3:on | grep -vE "crond|sshd|network|rsyslog|sysstat" | awk `{print $1}` | sed -r `s#(.*)#chkconfig 1 off#g` | bash

上面的操作會把iptables防火牆也關閉掉,當前系統沒有關閉,需要執行

[root@localhost ~]# /etc/init.d/iptables stop
iptables: Setting chains to policy ACCEPT: filter          [  OK  ]
iptables: Flushing firewall rules:                         [  OK  ]
iptables: Unloading modules:                               [  OK  ]
[root@localhost ~]# /etc/init.d/iptables stop  # 重複執行,確認關閉

修改ssh登入埠

1、改配置檔案方式

2、使用sed命令改

sudo命令控制使用者對系統命令的使用許可權

TBD

Linux中文顯示設定

[root@localhost ~]# cat /etc/sysconfig/i18n 
LANG="zh_CN.UTF-8"
[root@localhost ~]# cp /etc/sysconfig/i18n /etc/sysconfig/i18n.ori
[root@localhost ~]# echo `LANG="en_us.UTF-8"` > /etc/sysconfig/i18n
[root@localhost ~]# echo $LANG
en_us.UTF-8
[root@localhost ~]# source /etc/sysconfig/i18n # 馬上生效

設定Linux時間同步

TBD

歷史資料history檔案和登入超時設定

TBD

調整Linux檔案描述符數量

TBD

Linux核心引數優化

TBD

定時清理郵件服務臨時目錄垃圾檔案

TBD

隱藏Linux版本資訊顯示

TBD

鎖定關鍵檔案,防止篡改

TBD

清除多餘虛擬賬號

TBD

禁止系統被Ping

TBD

升級具有典型漏洞的軟體版本

TBD

基礎優化與安全

  • 不用root登入,使用普通使用者,通過sudo授權

  • 更改預設ssh埠,禁止root遠端登入,甚至修改ssh只監聽內網IP

  • 定時自動更新系統時間

  • 更新yum源

  • 關閉SELinux和iptables

  • 調整檔案描述符數量。程式及檔案的開啟都會消耗檔案描述符數量

  • 定時自動清零郵件臨時目錄,防止磁碟inode數量被小檔案佔滿

  • 精簡開機任務(如只保留crond、sshd、network、rsyslog、systat)

  • linux核心優化/etc/sysctl.conf,執行sysctl -p生效

  • 更改系統字符集LANG=en_us.UTF-8或LANG=zh_CN.UTF-8

  • 鎖定系統關鍵檔案,如/etc/passwd、/etc/shadow、/etc/group、/etc/gshadow、/etc/inittab,處理以上內容吧chattr、lsatr改名為oldboy並轉移,這樣就安全多了。

  • 清除系統版本資訊,清空或修改/etc/issue、/etc/issue.net,去除登入後的系統資訊顯示

  • 清除系統多餘的虛擬使用者賬號

相關文章