系统的优化
优化之前,首先查看版本信息
1 | cat /etc/redhat-release |
查看内核版本
1 | uname -a |
基础优化与安全重点小结
1 不用root登录管理系统,而以普通用户登录通过sudo授权管理
2 更改默认的远程连接SSH服务端口,禁止root用户远程连接,甚至要更改SSH服务只监听内网IP
3 定时自动更新服务器时间,使其和互联网同步
4 配置yum更新源,从国内更新源下载安装软件包
5 关闭SELinux
6 定时自动清理临时目录日志,防止磁盘inodes数被小文件占满
7 调整文件描述符的数量,进程及文件的打开都会消耗文件描述符的数量
8 精简并保留必要的开机启动服务
9 Linux内核参数优化/etc/sysctl.config,执行sysetl –p生效
10 更改系统字符集, 为“zh_CN.UTF-8”,使其支持中文,防止出现乱码问题。
11 锁定关键文件,如: passwd、/etc/shadow/、/etc/group/、/etc/gshadow、/etc/inittab,处理以上内容后把chattr、lsattr、改名为root,转移走,这样就安全多了。
12 清空/etc/issue /etcissue.net,去除系统及内核版本登录前的屏幕显示
13 禁止主机被ping
14 打补丁并升级有已知漏洞的软件
1.禁用root用户登陆管理系统
添加用户设置密码
1 | useradd user |
利用sudo控制用户的使用权限
为了方便管理,可以给用户授权,过程:
输入vi sudoers找到98行,在下面放入如下内容:1
2
3
4user ALL=(ALL) NOPASSWD: ALL <--all表示完全的系统权限,NOPASSWD表示提示权限命令时不需要密码
#配置完成后要进行检查,命令如下:
grep root /etc/sudoers
oldboy ALL=(ALL) NOPASSWD: ALL
此时再以user用户登录系统时,就可以通过执行sudo ls –l /root (sudo后面跟正常命令)的命令以root用户的权限管理系统了,如下:1
2
3
4ls /root/
ls: cannot open directory /root/: Permission denied
sudo ls /root/
HostKeyDB.txt test.txt 12345 install.log woaini
2.修改ssh端口
1 | sed -i 's/#Port 22/Port 2121/' /etc/ssh/sshd_config |
3.设置服务器时间同步
1 | ntpdate time.nist.gov<--时间同步 |
利用定时任务crond把上述命令每5分钟自动执行一次,命令如下:1
2
3
4
5echo '#time sync by root at 2017-11-03' >>/var/spool/cron/root
echo '0 2 * * * /usr/sbin/ntpdate ntp1.aliyun.com >/dev/null 2>&1' >>/var/spool/cron/root
crontab –l
#time sync by root at 2017-11-03
0 2 * * * /usr/sbin/ntpdate ntp1.aliyun.com >/dev/null 2>&1
4.配置yum更新源并增加epel源
1 | mv /etc/yum.repos.d/CentOS-Base.repo{,.$(date +%F_%T).backup} |
5.关闭selinux
1 | sed -i 's#SELINUX=enforcing#SELINUX=disabled#' /etc/selinux/config |
6.定时清理日志缓存文件,清理日志脚本delOldLogs.sh:
1 | vim /data/sh/cleanlog/delOldLogs.sh |
指定清理哪些路径的日志的脚本1
2
3
4
5vim /data/sh/cleanlog/del_all_OldLogs.sh
#!/bin/bash
/data/sh/cleanlog/delOldLogs.sh “/home/usr/ewp/logs”
/data/sh/cleanlog/delOldLogs.sh “/home/usr/h5/logs”
/data/sh/cleanlog/delOldLogs.sh “/home/usr/Payment/logs”
给脚本添加执行权限:1
chmod a+x /data/sh/cleanlog/del*.sh
添加定时任务:1
2
3
4
5vim /var/spool/cron/root
#添加以下内容:
10 0 * * 6 /data/sh/cleanlog/del_all_OldLogs.sh
注:
1.为了防止出现权限不够的情况,因此这里设置了一个root用户的定时任务
2.这句代码的意思是:在每周6的0:10执行/data/sh/cleanlog/del_all_OldLogs.sh 这个脚本
查看定时任务:1
crontab -l
7.加大文件描述
1 | \cp /etc/security/limits.conf{,.$(date +%F_%T).backup} |
8.精简并保留必要的软件启动(如cron、network、sshd、rsyslog、sysstat)
1 | chkconfig --list|egrep -v "crond|ssh|network|rsyslog|sysstat"|awk '{print "chkconfig",$1,"off"}'|bash |
9.内核优化
1 | \cp /etc/sysctl.conf{,.$(date +%F_%T).backup} |
10.更改系统字符集, 为“zh_CN.UTF-8”,使其支持中文,防止出现乱码问题。
1 | vim ~/.bash_profile |
11.锁定关键文件,如: passwd、/etc/shadow/、/etc/group/、/etc/gshadow、/etc/inittab,处理以上内容后把chattr、lsattr、改名为root,转移走,这样就安全多了。
1 | chattr +a /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab |
12.清空/etc/issue /etcissue.net,去除系统及内核版本登录前的屏幕显示
1 | echo > /etc/issue |
13.禁止Linux系统被ping
1 | # 禁止ping |