CentOS 7 日常优化
- 1.设置基本信息主机名、ip地址、系统时间和互联网同步
- 2.管理添加账户,禁用root账户直接登录
- 3.配置yum源、epel源,选择国内站点
- 4.配置selinux、防火墙
- 5.定时自动清理临时文件、日志文件(脚本)
- 6.优化调整文件描述符的数量
- 7.更改系统字符集为“zh_CN.UTF-8”,使其支持中文,防止出现乱码问题
- 8.锁定关键文件,如: passwd、/etc/shadow/、/etc/group/、/etc/gshadow、/etc/inittab,处理以上内容后把chattr、lsattr、改名为root,转移走,这样就安全多了
- 9.设置定义/etc/issue /etcissue.net,系统及内核版本登录前的屏幕显示
- 10.打补丁并升级有已知漏洞的软件
1.设置基本信息主机名、ip地址、系统时间和互联网同步
1>设置主机名
hostnamectl set-hostname mark01
2>设置IP地址
2.1>nmtui图形化设置参考
https://jingyan.baidu.com/article/22a299b593315b9e19376a00.html
2.2>编辑网卡配置文件
vi /etc/sysconfig/network-scripts/ifcfg-ens33
#注意ifcfg-ens33为网卡名,不同机器会有所不同
配置文件
TYPE="Ethernet"
BOOTPROTO="static" #启用静态IP地址
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
NAME="ens33"
UUID="8071cc7b-d407-4dea-a41e-16f7d2e75ee9"
ONBOOT="yes" #开启自动启用网络连接
IPADDR0="192.168.126.201" #设置IP地址
PREFIX0="24" #设置子网掩码
GATEWAY0="192.168.126.2" #设置网关
DNS1="119.29.29.29" #设置主DNS
DNS2="223.5.5.5" #设置备DNS
HWADDR="00:0C:29:EB:F2:B3"
IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"
3>设置时区,自动同步服务器
CentOS 7或基于RHEL 7操作系统,默认安装了chrony,因此我们无需再安装使用ntp
timedatectl set-timezone Asia/Shanghai
#设置时区
vi /etc/chrony.conf
#修改配置文件内网环境使用局域网主机地址
参考配置文件
# 使用pool.ntp.org项目中的公共服务器。以server开,理论上你想添加多少时间服务器都可以。
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
server 0.centos.pool.ntp.org iburst
server 1.centos.pool.ntp.org iburst
server 2.centos.pool.ntp.org iburst
server 3.centos.pool.ntp.org iburst
# 根据实际时间计算出服务器增减时间的比率,然后记录到一个文件中,在系统重启后为系统做出最佳时间补偿调整。
driftfile /var/lib/chrony/drift
# chronyd根据需求减慢或加速时间调整,
# 在某些情况下系统时钟可能漂移过快,导致时间调整用时过长。
# 该指令强制chronyd调整时期,大于某个阀值时步进调整系统时钟。
# 只有在因chronyd启动时间超过指定的限制时(可使用负值来禁用限制)没有更多时钟更新时才生效。
makestep 1.0 3
# 将启用一个内核模式,在该模式中,系统时间每11分钟会拷贝到实时时钟(RTC)。
rtcsync
# Enable hardware timestamping on all interfaces that support it.
# 通过使用hwtimestamp指令启用硬件时间戳
#hwtimestamp eth0
#hwtimestamp eth1
#hwtimestamp *
# Increase the minimum number of selectable sources required to adjust
# the system clock.
#minsources 2
# 指定一台主机、子网,或者网络以允许或拒绝NTP连接到扮演时钟服务器的机器
#allow 192.168.0.0/16
#deny 192.168/16
# Serve time even if not synchronized to a time source.
local stratum 10
# 指定包含NTP验证密钥的文件。
#keyfile /etc/chrony.keys
# 指定日志文件的目录。
logdir /var/log/chrony
# Select which information is logged.
#log measurements statistics tracking
2.管理添加账户,禁用root账户直接登录
sed -i 's/#Port 22/Port 2121/' /etc/ssh/sshd_config
#更改ssh端口
useradd user ; passwd user
#创建用户
修改配置文件限制root用户登录管理系统
vi /etc/ssh/sshd_config
#找到“PermitRootLogin yes”把注释去掉 保存,然后重启sshd服务
利用sudo控制用户的使用权限
vi /etc/sudoers
配置参考
root ALL=(ALL) ALL
joker ALL=(ALL) /usr/bin/rsync
user ALL=(ALL) NOPASSWD:ALL
解释:第一个ALL代表机器,就是所有机器,第二个ALL代表所有角色,第三个ALL代表可以执行所有命令,NOPASSWD代表提权命令时不需要提示密码
joker用户执行rsync命令添加sudo不需要输入root密码
user用户执行任何命令添加sudo不需要输入root密码
3.配置yum源、epel源,选择国内站点
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak #备份
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo #下载yum源
wget -P /etc/yum.repos.d/ http://mirrors.aliyun.com/repo/Centos-7.repo #下载epel源
4.配置selinux、防火墙
sed -i 's#SELINUX=enforcing#SELINUX=disabled#' /etc/selinux/config
#关闭selinux
firewall-cmd --permanent --add-port=80/tcp
#示例开放tcp80
端口
iptables/firewalld防火墙常用操作参考
https://blog.youkuaiyun.com/junweicn/article/details/84101737
5.定时自动清理临时文件、日志文件(脚本)
mkdir -p /data/sh/cleanlog
vi /data/sh/cleanlog/delOldLogs.sh #创建清理脚本
vi /data/sh/cleanlog/del_all_OldLogs.sh #指定目录调用delOldLogs.sh
#!/bin/sh
#删除输入路径下的修改时间在45天以前的日志文件
find $1 -mtime +45 -name "*log*" -exec rm -f {} \;
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”
chmod a+x /data/sh/cleanlog/del*.sh
#给脚本添加执行权限
添加计划任务
echo "10 0 * * 6 root /data/sh/cleanlog/del_all_OldLogs.sh" > /tmp/tmp.txt" >> /etc/crontab
crontab /etc/crontab #加载配置文件
crontab -l #查看配置是否生效
6.优化调整文件描述符的数量
\cp /etc/security/limits.conf{,.$(date +%F_%T).backup}
echo '* - nofile 65535' >> /etc/security/limits.conf
tail -1 /etc/security/limits.conf
# 重启生效
ulimit -n
7.更改系统字符集为“zh_CN.UTF-8”,使其支持中文,防止出现乱码问题
vi ~/.bash_profile
#添加
LANG="zh_CN.UTF-8"
export LANG
8.锁定关键文件,如: passwd、/etc/shadow/、/etc/group/、/etc/gshadow、/etc/inittab,处理以上内容后把chattr、lsattr、改名为root,转移走,这样就安全多了
chattr +a /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab
mv /usr/bin/chattr ~/.pki/root
mv /usr/bin/lsattr ~/.pki/toor
9.设置定义/etc/issue /etcissue.net,系统及内核版本登录前的屏幕显示
echo > /etc/issue
echo > /etc/issue.net