1. 程式人生 > 實用技巧 >Linux 系統優化-workstation實踐

Linux 系統優化-workstation實踐

Linux 系統優化

關閉SELinux

[root@workstation ~]# sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config
[root@workstation ~]# setenforce 0
[root@workstation ~]# getenforce

關閉Firewalld防火牆

等業務除錯好之後再開啟,防止在部署業務期間,防火牆的影響。

[root@workstation ~]# systemctl stop firewalld
[root@workstation ~]# systemctl disable firewalld

修改字符集

根據嘗試修改適合的字符集即可,這裡該成中文字符集。

[root@workstation ~]# LANG=zh_CN.utf-8
[root@workstation ~]# vi /etc/locale.conf
LANG="zh_CN.UTF-8"

使用阿里雲映象做yum源

[root@workstation ~]# rm -fr /etc/yum.repos.d/*
cd /etc/yum.repos.d/

curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-6.repo

wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

安裝常用軟體

yum -y install tree nmap sysstat lrzsz dos2unix telnet bash-completion bash-completion-extras vim nc lsof net-tools rsync ntpdate

更改vim編輯器別名

[root@workstation ~]# alias vi='vim'
[root@workstation ~]# vi /etc/profile.d/vi.sh
alias vi='vim'

時間同步

echo '#Time synchronization time' >>/var/spool/cron/root
echo '0 0 * * * /usr/sbin/ntpdate ntp1.aliyun.com &>/dev/null' >>/var/spool/cron/root
crontab -l

加大檔案描述符

echo '* - nofile 65535 ' >>/etc/security/limits.conf
tail -1 /etc/security/limits.conf

PS1變數優化

[root@workstation ~]# vi /etc/profile.d/PS1.sh 
PS1="\[\e[37;40m\][\[\e[32;40m\]\u\[\e[37;40m\]@\h \[\e[36;40m\]\w\[\e[0m\]]\\$ "

核心優化

cat >>/etc/sysctl.conf<<EOF
net.ipv4.tcp_fin_timeout = 2
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_keepalive_time = 600
net.ipv4.ip_local_port_range = 4000 65000
net.ipv4.tcp_max_syn_backlog = 16384
net.ipv4.tcp_max_tw_buckets = 36000
net.ipv4.route.gc_timeout = 100
net.ipv4.tcp_syn_retries = 1
net.ipv4.tcp_synack_retries = 1
net.core.somaxconn = 16384
net.core.netdev_max_backlog = 16384
net.ipv4.tcp_max_orphans = 16384
EOF


[root@workstation ~]# sysctl -p

sshd遠端連線優化

sed -i 's/#UseDNS yes/UseDNS no/g' /etc/ssh/sshd_config
grep 'UseDNS no' /etc/ssh/sshd_config
sed -i 's/GSSAPIAuthentication yes/GSSAPIAuthentication no/g' /etc/ssh/sshd_config
grep 'GSSAPIAuthentication no' /etc/ssh/sshd_config
systemctl restart sshd

安全優化

>/etc/issue
>/etc/issue.net

>/etc/motd

# 使用者登陸超時
echo 'export TMOUT=900' >> /etc/profile

優化總結

不用root登入管理系統,而以普通使用者登入通過sudo授權管理。

更改預設的遠端連線SSH服務埠,禁止root使用者遠端連線,甚至要更改SSH服務只監聽內網IP。

定時自動更新伺服器的時間,使其和網際網路時間同步。

配置yum更新源,從國內更新源下載安裝軟體包。

關閉SELinux及iptables(在工作場景中,如果有外部IP一般要開啟iptables,高併發高流量的伺服器可能無法開啟)。

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

定時自動清理郵件臨時目錄垃圾檔案,防止磁碟的inodes數被小檔案佔滿(注意Centos6和Centos5要清除的目錄不同)。

精簡併保留必要的開機自啟動服務(如crond、sshd、network、rsyslog、sysstat)。

Linux核心引數優化/etc/sysctl.conf,執行sysctl -p生效。

更改系統字符集為“zh_CN.UTF-8”,使其支援中文,防止出現亂碼問題。

鎖定關鍵系統檔案如/etc/passwd、/etc/shadow、/etc/group、/etc/gshadow、/etc/inittab,處理以上內容

後把chattr、lsattr改名為luffy,轉移走,這樣就安全多了。

清空/etc/issue、/etc/issue.net,去除系統及核心版本登入前的螢幕顯示。

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

為grub引導選單加密碼。

禁止主機被ping。

打補丁並升級有已知漏洞的軟體。 新系統 yum –y install 已經在線上用的伺服器 web伺服器能夠停止。