Linux操做系統優化

第18章 Linux操做系統優化

1. 更改Yum源和添加epel源

 
 
 
xxxxxxxxxx
 
 
 
 
默認國外的yum源(軟件倉庫)比較慢,因此換成國內的。
#一、備份
[root@qls ~]# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
#二、下載新的CentOS-Base.repo 到/etc/yum.repos.d/
[root@qls ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
#3.添加epel源
[root@qls ~]# curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
 
 

2. 關閉SELinux

 
 
 
xxxxxxxxxx
 
 
 
 
SELinux(Security-Enhanced Linux)是美國國家安全局(NSA)對於強制訪問控制的實現,這個功能讓系統管理員又愛又恨,這裏咱們仍是把它給關閉了吧,至於安全問題,後面經過其餘手段來解決,這也是大多數生產環境的作法,若是非要開啓也是能夠的。
#臨時關閉
[root@qls ~]# setenforce 0
#永久關閉
[root@qls ~]# sed 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config
#檢查結果
[root@qls ~]# grep "disabled" /etc/selinux/config
 
 

3. 關閉防火牆(Firewalld)

 
 
 
xxxxxxxxxx
 
 
 
 
關閉防火牆的目的是爲了讓初學者學習更方便,未來在學了Firewalld技術後可再統一開啓。 在企業環境中,通常只有配置外網IP的linux服務器才須要開啓防火牆,但即便是有外網IP,對於高併發高流量的業務服務器還是不能開的,由於會有較大性能損失,致使網站訪問很慢,這種狀況下只能在前端加更好的硬件防火牆了。
#臨時關閉
[root@qls ~]# systemctl stop firewalld
#永久關閉
[root@qls ~]# systemctl disable firewalld
 
 

4. 關閉NetworkManager

 
 
 
xxxxxxxxxx
 
 
 
 
#臨時關閉
[root@qls ~]# systemctl stop NetworkManager
#永久關閉
[root@qls ~]# systemctl disable NetworkManager
 
 

5. 同步系統時間

 
 
 
xxxxxxxxxx
 
 
 
 
#給定時任務加上註釋
[root@qls ~]# echo '#Timing synchronization time' >>/var/spool/cron/root
#定時任務
[root@qls ~]# echo '*/5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com &>/dev/null' >>/var/spool/cron/root
#檢查結果
[root@qls ~]# crontab -l
 
 

6. 加大文件描述

 
 
 
xxxxxxxxxx
 
 
 
 
#加大文件描述符
[root@qls ~]# echo '*               -       nofile         65535 ' >>/etc/security/limits.conf 
#檢查結果
[root@qls ~]# tail -1 /etc/security/limits.conf
 
 

7. 別名及環境變量優化

 
 
 
xxxxxxxxxx
 
 
 
 
#設置
[root@qls ~]# cat>>/etc/profile.d/color.sh<<"EOF"
alias ll='ls -l --color=auto --time-style=long-iso'
PS1="\[\e[37;40m\][\[\e[32;1m\]\u\[\e[37;40m\]@\h \[\e[36;40m\]\w\[\e[0m\]]\[\e[32;1m\]\\$ \[\e[0m\]"
export HISTTIMEFORMAT='%F-%T '
EOF
#生效
[root@qls ~]# source /etc/profile
 
 

8. 內核優化

 
 
 
xxxxxxxxxx
 
 
 
 
#設置
[root@qls ~]# 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@qls ~]# sysctl -p
 
 

9. 配置SSH遠程管理服務

 
 
 
xxxxxxxxxx
 
 
 
 
#禁止DNS進行反向解析
[root@qls ~]# sed -i 's/#UseDNS yes/UseDNS no/g' /etc/ssh/sshd_config
#檢查結果
[root@qls ~]# grep 'UseDNS no' /etc/ssh/sshd_config 
#禁止GSS認證,減小鏈接時產生的延遲
[root@qls ~]# sed -i 's/GSSAPIAuthentication yes/GSSAPIAuthentication no/g' /etc/ssh/sshd_config
#檢查結果
[root@qls ~]# grep 'GSSAPIAuthentication no' /etc/ssh/sshd_config
#生效
[root@qls ~]# systemctl   restart   sshd
 
 

10. 修改主機名和IP腳本

 
 
 
xxxxxxxxxx
 
 
 
 
#腳本以下
[root@qls ~]# cat>/root/hostname_ip.sh<<"EOF"
#!/usr/bin/sh
source /etc/init.d/functions
if [ $# -ne 2 ];then
  echo "/bin/sh $0 新的主機名 新的IP地址主機位"
  exit 1
fi
hostnamectl set-hostname   $1
if [ $? -eq 0 ];then
action "hostname update Successful!" /bin/true
else
action "hostname update Failed!" /bin/false
fi
sed -ri  "/^IPA/s#(.*\.).*#\1$2#g" /etc/sysconfig/network-scripts/ifcfg-eth[01]
if [ $? -eq 0 ];then
action "IP update Successful!" /bin/true
else
action "IP update Failed!" /bin/false
fi
systemctl  restart network
bash
EOF
 
 

11. 安裝經常使用軟件

 
 
 
xxxxxxxxxx
 
 
 
 
[root@qls ~]# yum -y install tree nmap sysstat lrzsz dos2unix telnet bash-completion bash-completion-extras vim nc lsof net-tools rsync ntpdate
 
 

12. Linux基礎優化及安全小結

 
 
 
xxxxxxxxxx
 
 
 
 
1)不用root登陸管理系統,而以普通用戶登陸經過sudo受權管理。
2)更改默認的遠程鏈接SSH服務端口,禁止root用戶遠程鏈接,甚至要更改SSH服務只監聽內網IP。
3)定時自動更新服務器的時間,使其和互聯網時間同步。
4)配置yum更新源,從國內更新源下載安裝軟件包。
5)關閉SELinux及iptables(在工做場景中,若是有外部IP通常要打開iptables,高併發高流量的服務器可能沒法開啓)。
6)調整文件描述符的數量,進程及文件的打開都會消耗文件描述符數量。
7)定時自動清理郵件臨時目錄垃圾文件,防止磁盤的inodes數被小文件佔滿(注意Centos6和Centos5要清除的目錄不一樣)。
8)Linux內核參數優化/etc/sysctl.conf,執行sysctl -p生效。
9)更改系統字符集爲「zh_CN.UTF-8」,使其支持中文,防止出現亂碼問題。
10)鎖定關鍵系統文件如/etc/passwd、/etc/shadow、/etc/group、/etc/gshadow、/etc/inittab,處理以上內容後把chattr、lsattr更名爲luffy,轉移走,這樣就安全多了。
11)清空/etc/issue、/etc/issue.net,去除系統及內核版本登陸前的屏幕顯示。
12)清除多餘的系統虛擬用戶帳號。
13)爲grub引導菜單加密碼。
14)禁止主機被ping。
15)打補丁並升級有已知漏洞的軟件。
相關文章
相關標籤/搜索