1. 程式人生 > >Linux系統安裝後的調優及相關配置

Linux系統安裝後的調優及相關配置

SELinux YUM 運行級別 sudo提取 服務

整體規劃遵從最小化原則,具體包括:系統安裝最小化、YUM安裝軟件包最小化、開機自啟動服務最小化、操作命令最小化、登錄系統用戶最小化、普通用戶權限最小化、系統文件及目錄權限最小化!

修改用戶密碼

# echo "centos" |passwd --stdin root && history -c

清空iptables

企業中一般配置外網IP的Linux服務器才需要開啟防火墻,但針對有外網IP的高並發、高流量業務服務器不建議開啟防火墻,這樣會有較大的性能損失、導致訪問速度很慢,建議使用硬件防火墻!

# iptables -F
# /etc/init.d/iptables save
# /etc/init.d/iptables stop
# chkconfig iptables off

selinux設置

SELinux為Security-Enhanced Linux簡稱,實際生產環境中根據情況開啟,以下為關閉設置。

# sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/‘ /etc/selinux/config //重啟後永久生效
# setenforce 0 //臨時設置selinux,避免業務主機重啟
# getenforce //查看selinux狀態

配置靜態IP

# setup //圖形界面方式配置
或者
# vim /etc/sysconfig/network-scripts/ifcfg-eth0 //修改配置文件

註意:在虛擬機克隆後,出現網卡MAC地址一致、UUID、網卡名稱命名等問題的解決辦法。

# rm -rf /etc/udev/rules.d/70-persistent-net.rules 

配置主機和IP映射關系

# vim /etc/hosts
  127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
  ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
  192.168.1.63 demo63.cn server01
  192.168.1.64 demo64.cn client01

修改主機名

# vim /etc/sysconfig/network
  NETWORKING=yes
  HOSTNAME=demo63.cn
  NTPSERVERARGS=iburst 
# hostname //查看主機名
  demo63.cn

配置yum源方式

方法一:配置本地yum源

# mount /dev/sr0 /mnt/
# echo "/dev/sr0 /mnt iso9660 defaults 0 0" >> /etc/fstab
# rm -rf /etc/yum.repos.d/*
# cat > /etc/yum.repos.d/rhel6.repo <<EOF
> [rhel6-source]
> name=rhel6-source
> baseurl=file:///mnt
> enabled=1
> gpgcheck=0
> EOF

方法二:配置網絡yum源

# cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bk
# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
# sed -i ‘s/$releasever/6.9/g‘ /etc/yum.repos.d/CentOS-Base.repo 
# yum clean all
# yum repolist all
# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*

註意:

a)如下為實際生產中比較有用的軟件包,建議安裝。

# yum install tree telnet dos2unix sysstat lrzsz nc nmap -y 

b)如系統沒有安裝YUM軟件,可采用rpm安裝方式。

# rpm -qa |grep yum
# rpm -qa|grep yum|xargs rpm -e --nodeps //不檢查依賴,直接刪除rpm包
# wget -O /test/yum-3.2.29-81.el6.centos.noarch.rpm http://mirrors.163.com/centos/6.9/os/x86_64/Packages/yum-3.2.29-81.el6.centos.noarch.rpm
# wget -O /test/yum-metadata-parser-1.1.2-16.el6.x86_64.rpm http://mirrors.163.com/centos/6.9/os/x86_64/Packages/yum-metadata-parser-1.1.2-16.el6.x86_64.rpm
# wget -O /test/yum-plugin-fastestmirror-1.1.30-40.el6.noarch.rpm http://mirrors.163.com/centos/6.9/os/x86_64/Packages/yum-plugin-fastestmirror-1.1.30-40.el6.noarch.rpm
# rpm -ivh yum-3.2.29-81.el6.centos.noarch.rpm yum-metadata-parser-1.1.2-16.el6.x86_64.rpm yum-plugin-fastestmirror-1.1.30-40.el6.noarch.rpm

修改運行級別

# vim /etc/inittab
  id:3: initdefault://級別3,即為文本模式,更改配置文件永久生效
# runlevel//查看運行級別
# init0   //關機(init5圖形模式、init6重啟)

精簡開機系統自啟動

企業生產環境中建議保留的五個服務,包括sshd(遠程連接使用的服務)、rsyslog(記錄日誌時,系統調用的守護進程,CentOS6版本之前服務名為syslog)、network(激活/關閉網絡接口時使用的服務)、crond(周期性執行系統或用戶配置的任務時使用的服務)、sysstat(該服務用於監測系統性能及效率)。

方法一:調用圖形化界面

# ntsysv (或setup->system service) //選擇要啟用的服務

方法二:執行命令

# chkconfig --list |grep 3:on |grep -vE "crond|network|rsyslog|sshd|sysstat" |awk ‘{print “chkconfig ”$1 " off"}‘ |bash
或者
# chkconfig --list |grep 3:on |grep -vE "crond|network|rsyslog|sshd|sysstat" |awk ‘{print $1}‘ |sed -r ‘s#(.*)#chkconfig \1 off#g‘|bash //註意藍色處格式中無空格

方法三:執行腳本

# LANG=en //調整為英文字符集,方便過濾中文字符串
# chkconfig --list |grep 3:on //查看級別3上開啟的服務
# vim service-off.sh //執行腳本關閉不必要服務

a) Shell腳本一:
#!/bin/bash
LANG=en
for name in `chkconfig --list |grep 3:on |awk ‘{print $1}‘`;
do chkconfig --level 3 $name off;
done
for name in crond network rsyslog sshd sysstat;
do chkconfig --level 3 $name on;
done
chkconfig --list |grep 3:on

b) Shell腳本二:(默認情況下級別3文本模式都是開啟的狀態)
#!/bin/bash
LANG=en
for name in `chkconfig --list |grep 3:on |awk ‘{print $1}‘ |grep -vE "crond|network|rsyslog|sshd|sysstat" `;
do chkconfig --level 3 $name off;
done
chkconfig --list |grep 3:on

# chmod +x service-off.sh
# ./service-off.sh

遠程登錄配置

實際生產環境中,建議隱藏或更改默認ssh遠程連接端口!

# cp -a /etc/ssh/sshd_config{,.`date +"%F%H%M%S"`}

方法一:修改配置文件

# vim /etc/ssh/sshd_config
Port 2233   //sshd服務端口號
PermitRootLogin no  //是否允許root登錄
PermitEmptyPasswords no //是否允許密碼為空的用戶登錄
UseDNS no   //sshd是否對遠程主機名進行反向解析
GSSAPIAuthentication no //解決Linux之間使用ssh遠程連接慢的問題

方法二:通過sed快速修改增加內容

# sed -ir ‘13 iPort 2233\nPermitRootLogin no\nPermitEmptyPasswords no\nUseDNS no\nGSSAPIAuthentication no‘ /etc/ssh/sshd_config
# sed -n ‘13,17p‘ /etc/ssh/sshd_config
# /etc/init.d/sshd reload   //平滑重啟,不影響正在SSH連接的其他用戶
或者
# /etc/init.d/sshd restart

sudo提權配置

# cp -a /etc/sudoers{,.`date +"%F%H%M%S"`}
# echo "admin1 ALL=(ALL) NOPASSWD:ALL" >>/etc/sudoers
# tail -5 /etc/sudoers
或者
# visudo  //使用此命令可以直接修改配置文件
# visudo -c   //對修改的配置文件做語法檢查

中文顯示設置

實際生產環境中,建議使用英文顯示設置。

# cp -a /etc/sysconfig/i18n{,.`date +"%F%H%M%S"`}
# echo ‘LANG="zh_CN.UTF-8"‘ >/etc/sysconfig/i18n
# source /etc/sysconfig/i18n //使修改的配置文件生效
# echo $LANG

設置時間同步任務

# echo ‘# Time sync by Jerome at 2017-6-8 ‘ >> /var/spool/cron/root
# echo ‘*/5 * * * * /usr/sbin/ntpdate time.nist.gov > /dev/null 2>&1‘ >> /var/spool/cron/root
# crontab -l   //查看定時任務
或者
# crontab -e   //進行定時任務編輯

部分環境變量的設置

對配置文件/etc/profile進行修改為全局修改。

# echo ‘export TMOUT=300‘ >> /etc/profile  //設置賬號超時時間
# echo ‘export HISTSIZE=5‘ >> /etc/profile //設置命令行歷史記錄數
# echo ‘export HISTFILESIZE=5‘ >> /etc/profile //設置歷史文件記錄數量(~/.bash_history)
# source /etc/profile
# tail -3 /etc/profile

調整文件描述符數量

文件描述符是由無符號整數表示的句柄,進程使用它來標識打開的文件。

# ulimit -n

方法一:

# cp -a /etc/security/limits.conf{,.`date +"%F%H%M%S"`}
# echo ‘* - nofile 65535‘ >> /etc/security/limits.conf
# tail -1 /etc/security/limits.conf

方法二:

# cp -a /etc/rc.local{,.`date +"%F%H%M%S"`}
# cat >> /etc/rc.local <<EOF
# -S use the ‘soft‘ resource limit
# -H use the ‘hard‘ resource limit
# -n the maximum number of open file descriptors
  ulimit -HSn 65535
# -s the maximum stack size
  ulimit -s 65535
EOF

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

# vim /scripts/del_temp_mail.sh 
腳本內容:
#! /bin/bash
find /var/spool/postfix/maildrop/ -type f|xargs rm -f 
執行腳本:
# chmod +x /scripts/del_temp_mail.sh
設置定時任務:
# echo ‘00 00 * * * /bin/sh /scripts/del_temp_mail.sh > /dev/null 2>&1‘ >>/var/spool/cron/root
# crontab -l 
# df -i //查看磁盤inode總量、剩余量、使用量

隱藏Linux版本信息

# >/etc/issue
# >/etc/issue.net
# cat /etc/issue
# cat /etc/issue.net

鎖定系統關鍵文件

# chattr +i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab
# chattr -i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab
# lsattr /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab

為grub菜單加密

# /sbin/grub-md5-crypt
# cp -a /etc/grub.conf{,.`date +"%F%H%M%S"`}
# vim /etc/grub.conf

註意:password 最好加在splashimage和title之間,否則可能無法生效,設置完成後,在下次需要管理grub時,會有輸入密碼提示。

Linux系統安裝後的調優及相關配置