Centos7学习笔记(九)- 基础系统优化
本部分内容是针对运维管理过程中,为了达到规范、便捷、增强基础安全性等目的,而对初始安装的生产(也包括测试)用操作系统,做各项系统优化、规范工作。(持续更新。。。)
1、做好服务器的用途规划(含IP规划)和磁盘目录(比如一般备份用的服务器,独立建立/data目录)
2、如有必要,尽量做本地hosts解析;或者搭建本地dns解析服务器,所有非dns服务器dns指向该服务器。
3、分组各服务器,各组指定更改yum源为不同的公网yum源(比如阿里源、163源、清华源等),如有可能,自行搭建yum源服务器,所有其他服务器更新指向该服务器。
4、如有必要,更改selinux状态为disabled。
实例:
systemctl list-unit-files |grep enable|egrep -v "sshd.service|crond.service|syssta.service|rsyslog.service|^NetworkManager.service|irqbalance.service"|awk '{print "systemctl disable",$1}'|bash
5、精简开机自启动程序。除必要使用的系统程序和自行安装的应用程序外,其他都disabled掉。
6、添加普通用户并提权,一般为添加一个sudo用户。根据具体使用需要,对该用户定义sudo使用的命令组。
7、检查并设置系统字符集。生产环境中,都需要把系统字符集设定为“en_US.UTF-8”。CentOS7下用“localectl set-locale "LANG=en_US.UTF-8"”来设定,具体可以man localectl来查看。
实例:
cp /etc/locale.conf{,.bak}
echo 'LANG="zh_CN.UTF-8"' >/etc/locale.conf
source /etc/locale.conf
echo $LANG
8、时间同步问题。如果网络规模不大,可以用ntpdate和crontab方式设置所有服务器同步公网ntp服务器,如果网络规模很大,就需要自行搭建ntp服务器(保障其安全),所有其他服务器同步该ntp服务器。
9、指定合理的ssh连接超时时间,不允许root远程ssh登录,修改ssh监听端口等。修改/etc/ssh/sshd_config文件。
实例:
echo 'export "TIMEOUT=600"' >>/etc/profile
. /etc/profile
sed -i -e "17s/.*/Port 52113/g" /etc/ssh/sshd_config
sed -i -e "64s/.*/PermitEmptyPasswords no/g" /etc/ssh/sshd_config
sed -i -e "38s/.*/PermitRootLogin no/g" /etc/ssh/sshd_config
10、系统ulimit的相关优化配置。具体参见“学习笔记(七)— 性能调优一”
实例:
ulimit -n 65535
11、优化内核。具体参见“学习笔记(七)— 性能调优一”
12、设定自己习惯的命令别名。
13、锁定并备份系统关键文件如/etc/passwd、/etc/shadow、/etc/group、/etc/gshadow、/etc/inittab、/etc/fstab
14、清空/etc/issue、/etc/issue.net。
15、清空多用的账号(含虚拟账号)
16、更新系统补丁。

