Linux系統的優化
優化內容有:
修改ip地址、網關、主機名、DNS等
關閉selinux,清空iptables
添加普通用戶並進行sudo授權管理
更新yum源及必要軟件安裝
定時自動更新服務器時間
精簡開機自啓動服務
變更默認的ssh服務端口,禁止root用戶遠程連接
鎖定關鍵文件系統
調整文件描述符大小
調整字符集,使其支持中文
去除系統及內核版本登錄前的屏幕顯示
內核參數優化
1.1修改IP地址,網管,主機名,DNS等
[root@localhost ~]# vi/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0 #網卡名字
BOOTPROTO=static #靜態IP地址獲取狀態如:DHCP表示自動獲取IP地址
IPADDR=192.168.186.128 #IP地址
NETMASK=255.255.255.0 #子網掩碼
ONBOOT=yes #引導時是否激活
GATEWAY=192.168.1.1
修改Linux系統的主機名:
[root@localhost ~]# vi/etc/sysconfig/network
HOSTNAME=lg #修改主機名,重啓生效
GATEWAY=192.168.1.1 #修改默認網關,如果上面eth0裏面不配置網關的話,默認就使用這裏的網關了。
修改Linux的DNS
[root@localhost ~]# vi/etc/resolv.conf #修改DNS信息
nameserver 192.168.1.1
配置完成後,重啓網卡,有3中方法:
1、#ifup eth0
2、#service network restart
3、#/etc/init.d/network restart
1. 關閉selinux,清空iptables
SELinux(Security-Enhanced Linux) 是美國國家安全局(NSA)對於強制訪問控制的實現,是 Linux 上最傑出的新安全子系統。
關閉seliunx
[root@lg~]#sed–I ‘s#SELINUX=enforcing#SELINUX=disables#g’ /etc/selinux/config #修改配置文件則永久生效,但是必須要重啓系統。
sed
[root@lg ~]# grep SELINUX=disabled/etc/selinux/config
SELINUX=disabled #查看更改後的結果
[root@lg ~]# setenforce 0 #臨時生效命令
[root@lg ~]# getenforce #查看selinux當前狀態
Permissive
清空iptables
[root@lg ~]# iptables –F #清理防火牆規則
[root@lg ~]# iptables –L #查看防火牆規則
[root@lg ~]#/etc/init.d/iptables save #保存防火牆配置信息
2.1添加普通用戶並進行sudo授權管理
[root@lg ~]#useradd lg
[root@lg ~]#passwd 設置密碼
[root@lg ~]#vi sudo
Lg ALL=(ALL) ALL NOPASSWD=ALL
:wq 保存退出
3.1更新yum源及必要軟件安裝
Linux下方便安裝軟件的優秀工具叫做yum工具,linux的二進制軟件包一般是rpm。
類似window下的EXE程序 相當於360軟件包
通過yum工具來安裝軟件,默認獲取rpm包的軟件配置是從國外centos官方源下載
因此,我們yum安裝軟件速度會比較慢,因此需要把默認獲取rpm包配置從國外官方源,改成國內的優秀yum源
[root@lg ~]#rpm –qa|grep yum #確保系統中安裝yum
[root@lg ~]#cd /etc/yum.repos.d/ 進入yum工具編輯
[root@lgyum.repos.d]#cp centos-base.repo centos-base.repo.ori 備份很重要
[root@lgyum.repos.d]#wgethttp://mirrors.163.com/.help/CentOS6-Base-163.repo下載
[root@lg yum.repos.d]#cpcentos-base-163.repo centos-base.repo 替換掉原來的yum 更新yum軟件
[[email protected]]#yum install tree telnet dos2unix sysstat lrzsz
安裝軟件包
[root@lg yum.repos.d]#yum update 更新到最新
更新到不是什麼好事,已經使用上的服務,不要更新,更新後會出現問題。
[root@lg yum.repos.d]#yum grouplist這個是包主
下載的地址:
http://mirrors.163.com/.help/CentOS6-Base-163.repo
安裝看網頁
http://mirrors.163.com/.help/centos.html
接下來執行如下命令,檢測yum是否正常
[root@lg~]# yum cleanall #清空yum緩存
[root@lg~]# yummakecache #建立yum緩存
4/1定時自動更新服務器時間
[root@lg ~]# echo '*/5 * * * * /usr/sbin/ntpdatetime.windows.com >/dev/null 2 >&1' >>/var/spool/cron/root
[root@lg ~]# echo '*/10* * * * /usr/sbin/ntpdate time.nist.gov >/dev/null 2>&1'>>/var/spool/cron/root
5/1精簡開機自啓動服務
命令的處理方法:1)ntsysv 2)setup –systemservice 3)腳本一鍵完成
剛裝完操作系統可以只保留crond(定時任務),network(網絡服務),rsyslog(日誌),sshd(遠程連接)這四個服務
[root@lg ~]# for sun in `chkconfig --list|grep3:on|awk '{print $1}'`;do chkconfig --level 3 $sun off;done
[root@lg~]# for sun in crond rsyslog sshd network;do chkconfig --level 3 $sun on;done
[root@lg ~]# chkconfig--list|grep 3:on
crond 0:off 1:off 2:on 3:on 4:on 5:on 6:off
network 0:off 1:off 2:on 3:on 4:on 5:on 6:off
rsyslog 0:off 1:off 2:on 3:on 4:on 5:on 6:off
sshd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
6/1變更默認的ssh服務端口,禁止root用戶遠程連接
ssh默認端口號是22,要更改端口號爲9688,需要編輯/etc/ssh/ssh_config和/etc/ssh/sshd_config兩個文件即可;
禁止root遠程登錄,則需要編輯/etc/ssh/sshd_config。(可能部分Linux目錄爲/etc/sshd,請根據實際情況修改)
#cd/etc/ssh //進去ssh目錄
#cpssh_config ssh_config.bak
#cpsshd_config sshd_config.bak //備份倆個文件
#vissh_config
將被註釋掉的Port 22前的註釋符號“#”去掉,並將22改爲如上的9688,保存退出。
#vi sshd_config
找到PermitRootLogin,將後面的yes改爲no,這樣root就不能遠程登錄了,保存退出。
重啓ssh:
#/etc/init.d/sshrestart
9.鎖定關鍵文件系統
[root@c64 ~]# chattr +i /etc/passwd
[root@c64 ~]# chattr +i /etc/inittab
[root@c64 ~]# chattr +i /etc/group
[root@c64 ~]# chattr +i /etc/shadow
[root@c64 ~]# chattr +i /etc/gshadow
使用chattr命令後,爲了安全我們需要將其改名
[root@c64 ~]# /bin/mv /usr/bin/chattr /usr/bin/任意名稱
10. Linux中修改字符,中文設置
第一步
#cat/etc/sysconfig/i18n //字符集的配置文件位置及查看
第二步
#cp i18ni18n.lg20150708 /etc/sysconfig/ //備份i18n配置文件
第三步
#sed -i's#LAND="en_US.UTF-8"#LAND="zh_CN.UTF-8"#g'/etc/sysconfig/il8n
第四步
#source/etc/sysconfig/i18n //讓剛配置的文件生效
第五步
#echo$LAND
第六步
將CRT客戶端字符集改成UTF-8
11.去除系統及內核版本登錄前的屏幕顯示
[root@c64 ~]# >/etc/RedHat-release
[root@c64 ~]# >/etc/issue
12.內核參數優化
說明:本優化適合apache,nginx,squid多種等web應用,特殊的業務也可能需要略作調整。
[root@c64~]# vi /etc/sysctl.conf
#by sun in 20131001
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
#一下參數是對iptables防火牆的優化,防火牆不開會有提示,可以忽略不理。
net.ipv4.ip_conntrack_max = 25000000
net.ipv4.netfilter.ip_conntrack_max = 25000000
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 180
net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait = 120
net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait = 60
net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait = 120
[root@localhost ~]# sysctl –p #使配置文件生效