Linux系统调优权威指南

Posted 小宁哥

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux系统调优权威指南相关的知识,希望对你有一定的参考价值。

1.关闭SELINUX功能
1.1 修改配置文件,使关闭SELINUX永久生效
sed ‘s#SELINUX=enforcing#SELINUX=disables#g‘ /etc/selinux/config ===>重启系统生效
1.2临时关闭SELINUX
[[email protected] xningge]# setenforce
usage: setenforce [ Enforcing | Permissive | 1 | 0 ]
===>数字0表示Permissive 即警告提示,不会阻止操作,相当于disabled
===>数字1表示Enforcing 即SELINUX开启状态
[[email protected] xningge]# setenforce 0 ====>临时将SELINUX修改成Permissive状态
[[email protected] xningge]# getenforce ===>查看SELINUX当前状态
Permissive

2.设定运行级别
Linux下的7个运行级别:

0:系统停机状态,系统默认运行级别不能设置为0,否则不能正常启动,机器关闭。
1:单用户工作状态,root权限,用于系统维护,禁止远程登陆,就像Windows下的安全模式登录。
2:多用户状态,没有NFS支持。
3:完整的多用户模式,有NFS,登陆后进入控制台命令行模式。
4:系统未使用,保留一般不用,在一些特殊情况下可以用它来做一些事情。例如在笔记本电脑的电池用尽时,可以切换到这个模式来做一些设置。
5:X11控制台,登陆后进入图形GUI模式,XWindow系统。
6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动。运行init6机器就会重启。

2.1
[[email protected] xningge]# grep 5:initdefault /etc/inittab ===>系统默认运行级别
id:5:initdefault:

[[email protected] xningge]# runlevel ===>查看运行级别
N 5

[[email protected] xningge]# init 3 ===> 设置运行级别

3.关闭iptables防火墙
1.
[[email protected] xningge]# /etc/init.d/iptables stop ===>临时关闭防火墙
iptables: Setting chains to policy ACCEPT: filter [ OK ]
iptables: Flushing firewall rules: [ OK ]
iptables: Unloading modules: [ OK ]

[[email protected] xningge]# chkconfig iptables off ===》关闭开机自启动命令

4.sudo 控制用户对系统命令的使用权限
4.1第一步 visudo ===》相当于vi /etc/sudoers
4.2第二步 xningge ALL=(ALL) NOPASSWD:ALL ===>大约在98行
4.3第三步查看是否修改成功
[[email protected] ~]$ sudo grep xningge /etc/sudoers
xningge ALL=(ALL) NOPASSWD:ALL
4.4 查看当前用户被授予的sudo权限命令集合
[[email protected] ~]$ sudo -l

5.Linux中文显示设置
5.1查看Linux当前使用语言
[[email protected] ~]# cat /etc/sysconfig/i18n
LANG="zh_CN.UTF-8"
5.2设置成中文语言
[[email protected] ~]# sudo echo ‘LANG="zh_CN.UTF-8"‘ >/etc/sysconfig/i18n
[[email protected] ~]# source /etc/sysconfig/i18n ===》 使修改文件生效
[[email protected] ~]# echo $LANG ===》查看当前使用语言 相当于
zh_CN.UTF-8

6.设置Linux服务器时间同步
6.1
[[email protected] ~]# /usr/sbin/ntpdate ntp1.aliyun.com
24 Dec 21:45:17 ntpdate[31374]: step time server 182.92.12.11 offset -28774.000359 sec
6.2
[[email protected] ~]# which ntpdate
/usr/sbin/ntpdate ===>注意这个目录,centos5为 /sbin
6.3利用定时任务每5分钟自动执行一次
[[email protected] ~]# echo ‘*/5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com >/dev/null 2>&1‘>>/var/spool/cron/root
[[email protected] ~]# crontab -l ===>这个命令其实就是写一个定时任务,相当于执行 crontab -e然后加入内容
#time sync by xningge at 2017-12-24
*/5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com >/dev/null 2>&1

7.历史记录数及登录超时环境变量设置
7.1 设置闲置账号超时时间
[[email protected] ~]$ export TMOUT=10 ===》设置连接会话的超时时间 临时有效
[[email protected] ~]$ timed out waiting for input: auto-logout
7.2设置Linux的命令行历史记录数
[[email protected] ~]# export HISTSIZE=5 ===》
[[email protected] ~]# history
39 crontab -e
40 su - xingge
41 su - xningge
42 export HISTSIZE=5
43 history

7.3设置历史记录文件的命令的数量变量 (~/.bash_history)
[[email protected] ~]# export HISTFILESIZE=5
[[email protected] ~]# cat ~/.bash_history
which ls
which iptables
getenforce
cat /etc/selinux/config
export TMOUT=10

7.4使上述命令永久生效
[[email protected] ~]# echo ‘export TMOUT=300‘>>/etc/profile
[[email protected] ~]# echo ‘export HISTSIZE=5‘>>/etc/profile
[[email protected] ~]# echo ‘export HISTFILESIZE=5‘>>/etc/profile
[[email protected] ~]# tail -3 /etc/profile
export TMOUT=300
export HISTSIZE=5
export HISTFILESIZE=5
[[email protected] ~]# source /etc/profile

7.5
TMOUT=300 ===》连接的超时时间控制变量
HISTSIZE=5 ===》命令行的历史记录数量变量
HISTFILESIZE=5 ===》历史记录文件的命令数量变量
8.调整Linux系统文件描述符数量
8.1查看Linux服务器文件描述符设置情况 默认大小是1024
[[email protected] ~]$ ulimit -n
1024
8.2对于高并发业务Linux服务器来说,需要调整
[[email protected] ~]$ vim /etc/security/limits.conf 在这个文件结尾加一句 (* - nofile 65535)

9. 定时清理邮件服务临时目录垃圾文件
9.1手动清理
[[email protected] ~]# find /var/spool/postfix/maildrop/ -type f|xargs rm -f ===>适合centos 6 的Postfix服务
[[email protected] ~]# find /var/spool/clientmqueue/ -type f|xargs rm -f ===>适合centos 5 的Sendmall服务
9.2定时清理
[[email protected] ~]# mkdir -p /server/scripts
[[email protected] ~]# echo "find /var/spool/postfix/maildrop/ -type f|xargs rm -f" >/server/scripts/del_file.sh
[[email protected] ~]# cat /server/scripts/del_file.sh
find /var/spool/postfix/maildrop/ -type f|xargs rm -f
[[email protected] ~]# echo "00 00 * * * /bin/sh /server/scripts/del_file.sh >/dev/null 2>&1" >> //var/spool/cron/root
[[email protected] ~]# crontab -l
#time sync by xningge at 2017-12-24
*/5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com >/dev/null 2>&1
00 00 * * * /bin/sh /server/scripts/del_file.sh >/dev/null 2>&1
9.3查看磁盘inode 总量、剩余量、使用量
[[email protected] ~]# df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sda3 1234576 122241 1112335 10% /
tmpfs 125514 6 125508 1% /dev/shm
/dev/sda1 51200 38 51162 1% /boot
10.隐藏Linux版本信息显示
10.1查看终端显示内容的实际存放文件
[[email protected] ~]# cat /etc/issue
CentOS release 6.9 (Final)
Kernel \r on an \m
[[email protected] ~]# cat /etc/issue.net
CentOS release 6.9 (Final)
Kernel \r on an \m
10.2清楚Linux系统版本及内核信息
[[email protected] ~]# > /etc/issue
[[email protected] ~]# cat /etc/issue
[[email protected] ~]# > /etc/issue.net
[[email protected] ~]# cat /etc/issue.net
[[email protected] ~]#

11.锁定关键系统文件,防止被提权篡改
11.1上锁
[[email protected] ~]# chattr +i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab
11.2 解锁
[[email protected] ~]# chattr -i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab

12.3.防止黑客利用,chattr 转移
[[email protected] ~]# mv /usr/bin/chattr /usr/bin/xningge1
[[email protected] ~]# xningge1 +i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab
[[email protected] ~]# chattr -i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab
-bash: /usr/bin/chattr: 没有那个文件或目录
[[email protected] ~]# xningge1 -i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab
[[email protected] ~]# xningge1 +i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab
[[email protected] ~]#

12.清除多余的系统虚拟账号
13.为grub菜单加密码
目的:防止他人修改grub进行内核等启动设置,以及用单用户模式启动进行破解root密码等操作
设定步骤:
(1)先利用/sbin/grub-md5-crypt 产生一个MD5密码串
[[email protected] ~]$ /sbin/grub-md5-crypt
Password:
Retype password:
$1$X85We/$cdytOERYCKB.aPBqbL9ef.
(2)修改grub.conf文件
在splashimage和title之间加一行(password --md5 $1$X85We/$cdytOERYCKB.aPBqbL9ef.)

14. 禁止Linux系统被ping
14.1禁止命令为
[[email protected] ~]# echo "net.ipv4.icmp_echo_ignore_all=1" >>/etc/sysctl.conf
[[email protected] ~]# tail -1 /etc/sysctl.conf
net.ipv4.icmp_echo_ignore_all=1
14.2还原禁止ping操作
删除/etc/sysctl.conf 中的net.ipv4.icmp_echo_ignore_all=1 保存即可。
并执行如下命令
[[email protected] ~]# echo 0 >/proc/sys/net/ipv4/icmp_echo_ignore_all

14.3因为禁止ping 我们测试连网情况就不可以了,做好的做法就是通过iptables 设置让特定的ip可以ping
iptables -t filter -I INPOT -p icmp --icmp-type 8 -i eth0 -s 10.0.0.0/24 -j ACCEPT

15.升级具有典型漏洞的软件版本
15.1查看相关软件的版本号
[[email protected] ~]# rpm -qa openssl openssh bash
bash-4.1.2-48.el6.x86_64
openssh-5.3p1-122.el6.x86_64
openssl-1.0.1e-57.el6.x86_64
15.2升级已知漏洞的软件版本到最新
[[email protected] ~]# yum install openssl openssh bash -y

16.Linux服务器内核参数优化


17.Linux系统安全最小化原则说明


18.更改ssh服务器端远程登录的配置


19.精简开机系统自启动
19.1重要的开机自启动服务
1》sshd:远程连接Linux服务器时需要用到这个服务程序,所以必须要开启,否则Linux服务器就无法提供远程连接服务了。
2》rsyslog: 日志相关软件,这是操作系统提供的一种机制,系统的守护程序通常会使用rsyslog程序将各种信息写到各个系统日志文件中。在centos 6 以前此服务的名字为syslog。
3》network:系统启动时,若想激活/关闭各个网络接口,则应考虑开启此服务。
4》crond:该服务用于周期性的执行系统及用户配置的任务计划,有要周期性的执行任务时,就要开启。
5》sysstat:是一个软件包,包含检测系统性能及效率的一组工具。这些工具对于我们收集系统性能数据很有帮助,比如CPU使用率、硬盘和网络吞吐数据等
sysstat软件包集成的主要工具为:
iostat:工具提供CPU使用率及硬盘吞吐效率的数据
mpstat:工具提供与单个或多个处理器相关的数据
sar:工具负责收集、报告并存储系统活跃的信息

19.2设置开机自启动服务的常用方法
方法1:执行ntsysv命令,然后在弹出的窗口中进行设置。
方法2:执行setup命令->system service,然后在弹出的窗口中进行设置

以上是关于Linux系统调优权威指南的主要内容,如果未能解决你的问题,请参考以下文章

ElasticSearch集群部署系统参数配置调优

ElasticSearch集群部署系统参数配置调优

ElasticSearch集群部署系统参数配置调优

ElasticSearch集群部署系统参数配置调优

Linux性能及调优指南(翻译)之Linux进程管理

入门」全方位盘点和总结调优技术专题指南