linux系统优化方案
如果对运维课程感兴趣,可以在b站上、csdn或微信视频号 上搜索我的账号: 运维实战课程,可以关注我,学习更多免费的运维实战技术视频
1)关闭selinux
暂时关闭: setenforce 0
2)修改系统的运行级别(在命令行级别3运行)
[root@localhost ~]# sed -i '/id/s#[0-9]#3#g' /etc/inittab
3)添加普通用户,通过sudo提权管理 (sudo提权命令让普通用户shi拥有各种身份的功能)
[root@localhost ~]# visudo //或者 vim /etc/sudoers
root ALL=(ALL) ALL
shi ALL=(ALL) /bin/touch,/usr/sbin/useradd //shi用户使用sudo命令时需输入自己用户密码(仅自己指定权限)
4)sshd基本安全配置(修改默认端口号、禁止root远程连接、不许空密码登录、拒绝允许某些用户登录)
[root@localhost ~]# vim /etc/ssh/sshd_config
...............
5)使用时间同步命令ntpdate,定时自动更新服务器时间,使其与互联网时间同步
[root@localhost ~]#/usr/sbin/ntpdate time.nist.gov //临时执行时间同步,需能上网才行标准时间服务器,如果没了,重选别的
[root@localhost ~]#echo '*/5 * * * /usr/sbin/ntpdate time.nist.gov' > /dev/null 2>&1 >> /var/spool/cron/root
6)配置yum更新源,从国内更新源下载安装软件包
7)关闭iptables或者配置适当的iptables防火墙规则
8)调整(加大)文件描述符的数量,进程及文件的打开都会消耗文件描述符
文件描述符默认的是1024个会不够用,需要加大。如果文件描述符不够用了,进程就启动不了了。文件描述符也不是越大越好,一般只要够用就可。范围是0-65535,老男孩设置的最大值是:65535.
查看文件描述符个数:ulimit -n
临时加大:ulimit –HSn 数目 永久加大:echo '* - nofile 3000' >> /etc/security/limits.conf
#永久加大的,重新注销后,再登录系统后查看,就生效了。
9)定时自动清理/var/spool/clientmquene/目录及文件,防止inodes节点被占满
[root@localhost ~]# find /var/spool/clientmqueue/ -type f |xargs rm -f //手动清理,也可脚本清理
10)精简开机自启动服务(只保留:crond、sshd、network、syslog(rsyslog))
for i in `chkconfig --list |grep "3:on" |awk '{print $1}'`;do chkconfig $i off;done
//把在3级别上开机自启的服务全部关闭。
for i in crond network sshd rsyslog;do chkconfig $i on;done //把需要开启的开机自启让其开机自启。
11)更改字符集,支持中文,但建议还是用英文字符集,防止乱码,可以用chkconfig试验
[root@localhost 桌面]# cat /etc/sysconfig/i18n
LANG="en_CN.UTF-8" //英文 或 LANG="zh_CN.UTF-8" //中文 或 LANG=zh_CN.GB1803 //可根据需要设置
[root@localhost ~]# source /etc/sysconfig/i18n
12)锁定关键系统文件, 防止提权篡改(上锁后,用户不能对文件修改删除,root用户也不能)
chattr +i 文件名//锁定文件 chattr -i 文件名 //解锁文件 lsattr 文件名 //查看是否锁定(有i表示锁定)
13)清空/etc/issue,隐藏登录时候显示的系统版本号
[root@localhost ~]# > /etc/issue 或cat /dev/null > /etc/issue //清空系统版本号,计算机在重启登录时就看不到系统版本号了
14)linux内核参数优化/etc/sysctl.conf,刷新sysctl -p生效
内核生产环境优化参数:可根据实际情况作调整,参考网上火整理文档参数
[root@localhost 桌面]# vim /etc/sysctl.conf
#最后添加优化参数即可。
wq
[root@localhost 桌面]# sysctl -p #刷新生效
15)给grub设置密码,防止他人修改grub做内核等启动设置或他人破解密码
a)先用命令grub-md5-crypt输入明文密码再生成一个密文密码
b)在/boot/grub/grub.conf文件中添加:password --md5 生成的密文密码
//在title上面添加,这句要加在splashimage和title之间,否则可能不生效。
c)这样以后再重启系统破解密码时候,如果直接按e编辑会不起作用,必须先按p后,然后输入事先设置的grub密码,才能进入系统破解密码。
例子:
[root@localhost ~]# grub-md5-crypt
Password: 输入明文密码 123
Retype password: 重复明文密码123
$1$rSi.l/$kdU/qQBPpFpzvasfnj36o/ #生成一个密文密码
[root@localhost ~]# vim /boot/grub/grub.conf
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu #此为原有内容
password --md5 $1$rSi.l/$kdU/qQBPpFpzvasfnj36o/ #添加改行
title CentOS 6 (2.6.32-504.el6.x86_64) #此为原有内容
这样以后再重启系统破解密码时候,如果直接按e编辑会不起作用,必须先按p后,然后输入事先设置的grub密码:123,才能进入系统破解密码。如果不想有该设置,可以直接回车进入系统后,vim /etc/grub/grub.conf 把刚才设置的密码删除,就能恢复到正常状态了。
16) TCP WrapperS防护机制,可以限制某些机器是否能访问本地服务器的某些服务。
TCP WrapperS的配置文件:(/etc/hosts.allow,/etc/hosts.deny)
[root@localhost ~]# vim /etc/hosts.allow
服务名:客户机地址
……………… //想允许几个服务,就写几个
[root@localhost ~]# vim /etc/hosts.deny
服务名:客户机地址
……………… //想拒绝几个服务,就写几个
例子:在192.168.4.205上设置WrapperS防护:拒绝192.168.4.20访问vsftpd服务
[root@pc205 ~]# vim /etc/hosts.deny
vsftpd:192.168.4.20 添加,设置后,192.168.4.20这台机器就无法连接登录192.168.4.205机器的vsftpd服务.
17)合理规划系统分区,要求特定独立的分区: /, /boot, Swap, /home, /usr, /var
挂载分区时使用以下选项:(临时挂载和永久挂载(vim /etc/fstab))
-o nosuid 使分区不支持suid
-o noexec 使分区不支持可执行文件
-o noatime 使分区不再更新atime(访问时间)在对应分区加,如果不加,则
18)tty终端控制:允许启用哪些tty终端 (配置文件:/etc/sysconfig/init)
[root@localhost 桌面]# vim /etc/sysconfig/init
ACTIVE_CONSOLES=/dev/tty[1-6] 可以改成1-2或1-3等
19)只允许root从指定的几个终端登录:(vim /etc/securetty )
[root@localhost 桌面]# vim /etc/securetty
tty1 //写进去的都是root能用的。多余的尽量不要
20)禁止普通用户登录:在电脑上touch一个空文件:/etc/nologin即可
[root@localhost 桌面]# touch /etc/nologin //做后:任何普通用户会发现登录不成功。
[root@localhost 桌面]# rm -rf /etc/nologin //再登录,能成功。
如果对运维课程感兴趣,可以在b站上、csdn或微信视频号 上搜索我的账号: 运维实战课程,可以关注我,学习更多免费的运维实战技术视频