Linux系統安裝後的調優及相關配置
阿新 • • 發佈:2018-03-29
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系統安裝後的調優及相關配置