RHEL/CentOS 7最小化安装后需做的30件事情

 

CentOS7.5 系统最小化安装与初始化配置


1.安装标准化的系统

 

1.1.系统安装期间的语言

  • 选择:中文-简体中文,安装完成也会默认支持中文输出,便于管理

 

1.2.时区选择

  • 亚洲上海,CST时区(东八区用)

 

1.3.分区方式

挂载路径分区格式分区大小备注信息
swap分区---内存的2倍交换分区,如果是虚拟机可以不创建
/boot---500MB启动分区,如果不分配磁盘被占满会无法启动系统
/ext4剩余空间后续有其他需求,可以增加磁盘独立创建分区

 

1.4.安装包的选择

  • 如果是一般的DVD镜像,建议选择最小化安装,然后手动选择安装以下软件包组:
类别安装包备注信息
基本系统(Base System)Base基本,系统组件
---compatibility libraries兼容程序库
---Debugging Tools调试工具
开发(Development)Development Tools开发工具,cmake,gcc
语言支持English英语
---Chinese汉语
  • 如果是minimal的镜像,需要的安装包在装完系统后安装即可

 

1.5.创建系统用户

管理员用户:root
普通用户:自定义一个

 

1.6.安全选项

  • kdump:一般用不着关闭即可

2.修改 CentOS7.5 的网络配置

 

2.1.修改IP地址为固定地址

  • 1)方法1:图形界面修改
nmtui      # 类似 CentOS6 下的 setup 命令,可以用图形界面配置IP,主机名,DNS等信息
  • 2)方法2:手动修改网卡配置文件
vi /etc/sysconfig/network-scripts/ifcfg-eth0
------------------------------------
[ tools]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
NAME=ens33
DEVICE=ens33
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=none
DEFROUTE=yes
IPADDR=192.168.1.200
PREFIX=24
GATEWAY=192.168.1.1
IPV4_FAILURE_FATAL=no
DNS1=202.106.0.20
DNS2=8.8.8.8
IPV6INIT=no
IPV6_AUTOCONF=no
IPV6_DEFROUTE=no
IPV6_PEERDNS=no
IPV6_PEERROUTES=no
IPV6_PRIVACY=no
IPV6_FAILURE_FATAL=no
ARPCHECK=no        # 禁用ARP检查
--------------------------------------
  • 配置完成重启网卡,进行测试,之后就可以使用 CRT 等工具进行连接配置
systemctl restart network
ip add
ping www.baidu.com
  • 备注:默认最小化安装完CentOS7,网络并不会启动需要手动启动
  • 删除 UUID,MAC 地址,禁用 IPv6 配置等便于虚拟机克隆

 

2.2.创建工作目录

mkdir -p /opt/{tools,scripts}
mkdir -p /data/backup
cd /opt/tools/

 

2.3.设置 DNS 和主机名

  • 修改服务器主机名
vi /etc/hostname 
--------------------------------
demohost
-------------------------------
  • 设置hosts域名解析
vi /etc/hosts
--------------------------------
192.168.1.200    demohost
--------------------------------
  • 设置DNS解析
vi /etc/resolv.conf 
--------------------------------
nameserver 223.5.5.5        # alidns 出问题还是较少的
nameserver 223.6.6.6
nameserver 8.8.8.8          # Google dns
--------------------------------

3.配置阿里云 yum 源

 

3.1.配置阿里云 base 源

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo  
cat /etc/yum.repos.d/CentOS-Base.repo

 

3.2.配置阿里云 epel 源

mv /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel.repo.backup  
mv /etc/yum.repos.d/epel-testing.repo /etc/yum.repos.d/epel-testing.repo.backup  
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
cat /etc/yum.repos.d/epel.repo

 

3.3.创建 yum 缓存进行测试

yum clean all
yum makecache fast

 

3.4.安装常用工具

  • 主要有 wget,vim,rz,sz,tree,dos2unix,ifconfig,nslookup 等
yum install gcc gcc-c++ cmake pcre pcre-devel zlib zlib-devel openssl openssl-devel vim wget telnet setuptool lrzsz dos2unix net-tools bind-utils tree screen iftop ntpdate tree lsof iftop iotop -y
yum groupinstall "Development tools" -y

4.配置系统环境变量

 

4.1.历史命令记录

sed -i s#HISTSIZE=1000#HISTSIZE=10000#g /etc/profile
cat /etc/profile|grep HISTSIZE=10000

 

4.2.设置超时自动注销登陆

# 8h=28800s
echo " " >> /etc/profile
echo "# Auto-Logout for 4 hours by zhaoshuai on $(date +%F)." >> /etc/profile
echo "export TMOUT=28800" >> /etc/profile
tail -4 /etc/profile
source /etc/profile
echo $TMOUT

5.修改内核参数(根据实际需求选择)

 

5.1.修改文件句柄数

vim /etc/security/limits.conf 
-----------------------------------
# 系统最大连接数
*    soft    nofile    65535
*    hard   nofile    65535
*    soft    nproc    65535
*    hard   nproc    65535
-----------------------------------

 

5.2.配置 TIME_WAIT 参数,清理超时连接

netstat -anptl|grep TIME_WAIT|wc -l
echo " " >> /etc/sysctl.conf
echo "# made by zhaoshuai for kill time_wait on $(date +%F)." >> /etc/sysctl.conf
echo "net.ipv4.tcp_syncookies = 1" >> /etc/sysctl.conf
echo "net.ipv4.tcp_tw_reuse = 1" >> /etc/sysctl.conf
echo "net.ipv4.tcp_tw_recycle = 1" >> /etc/sysctl.conf
echo "net.ipv4.tcp_fin_timeout = 30" >> /etc/sysctl.conf
echo "net.ipv4.tcp_orphan_retries = 2" >> /etc/sysctl.conf
echo "net.ipv4.ip_local_port_range = 1024 65000" >> /etc/sysctl.conf
tail -8 /etc/sysctl.conf
sysctl -p 
netstat -anptl|grep TIME_WAIT|wc -l

 

5.3.让系统自动回收内存 cache

echo " ">>/etc/sysctl.conf
echo "# Automatic recovery memory on $(date +%F)">>/etc/sysctl.conf
echo "vm.extra_free_kbytes=209196">>/etc/sysctl.conf
sysctl -p

6.配置系统安全设置

 

6.1.修改 ssh 配置

  • 加速远程 ssh 连接,只监听 IPv4 端口,关闭 GSSAPI 秘钥认证,关闭 DNS 解析
# vim /etc/ssh/sshd_config
------------------------------------
sed -i s/‘#ListenAddress 0.0.0.0‘/‘ListenAddress 0.0.0.0‘/g /etc/ssh/sshd_config
sed -i s/‘GSSAPIAuthentication yes‘/‘GSSAPIAuthentication no‘/g /etc/ssh/sshd_config
sed -i s/‘#UseDNS yes‘/‘UseDNS no‘/g /etc/ssh/sshd_config

grep ListenAddress /etc/ssh/sshd_config
grep GSSAPIAuthentication /etc/ssh/sshd_config
grep UseDNS /etc/ssh/sshd_config
------------------------------------
  • 重启 sshd 服务
/bin/systemctl restart  sshd.service
/bin/systemctl status  sshd.service

 

6.2.关闭 selinux

  • 关闭selinux(立即生效,重启失效)
getenforce
setenforce 0
getenforce
  • 永久关闭selinux(重启也生效)
sed -i s#SELINUX=enforcing#SELINUX=disabled#g /etc/selinux/config
cat /etc/selinux/config |grep SELINUX=disabled
  • 备注:
# Enforcing/enabled			    # 执行,强制执行,开启状态1
# Permissive/disabled			# 许可的,自由的,关闭状态0

 

6.3.关闭防火墙

  • 内网环境一般不需要使用防火墙
systemctl status  firewalld
systemctl stop firewalld
systemctl disable firewalld
systemctl status  firewalld

7.关闭其他不用的服务

 

7.1.关闭邮箱服务

  • CentOS7 默认安装并启动 postfix,而不是 sendmail
netstat -anptl
systemctl stop  postfix
systemctl disable  postfix
systemctl status  postfix
netstat -anptl

8.配置时间同步

 

8.1.安装ntp服务并配置开机自启动

  • CentOS7 默认的时间同步服务是chrony,这里为了方便使用ntp服务
yum -y install ntp
systemctl enable ntpd
systemctl start ntpd
systemctl status ntpd

 

8.2.手动进行时间同步

date
/usr/sbin/ntpdate ntp1.aliyun.com

 

8.3.配置定时任务自动同步时间

echo "# made by zhaoshuai for sync time on $(date +%F)">> /var/spool/cron/root
echo ‘*/5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com > /dev/null 2>&1‘ >>/var/spool/cron/root
crontab -l
  • 注意:
1)时区应该为CST为中部时区,如果是EST则为东部时区
2)安装CentOS系统时要去掉夏令时的选项,否则在夏令时的那一天会有时间的自动变换,
3)如果某个服务在时间上有要求就会导致该服务承载的业务出现问题,所以要关闭夏令时

9.更新系统内核

 

9.1.更新依据

1)一般来说建议更新到最新的内核版本,防止已知的系统漏洞问题
2)如果要安装指定版本的软件则不能随意升级内核版本
3)如果是集群中的一台新增节点,需要保持集群的统一性,也不能进行升级

 

9.2.内核升级的方法

  • 1)升级前后需要查看内核版本
cat  /etc/redhat-release 
----------------------------
[ tools]# cat  /etc/redhat-release 
CentOS Linux release 7.5.1804 (Core) 
----------------------------
  • 2)更新内核
yum update
  • 3)内核升级完成需要重启系统才可以生效
reboot
  • 注意:
1)内核升级期间一定不可以中断操作,否则重启后会无法进入系统
2)内核升级期间出错的处理方法:
需要连到 tty 终端手动调整开机启动的内核,登陆系统后手动修改内核启动顺序,然后再次进行内核升级尝试修复

 

9.3.拓展:yum update 与 upgrade 的区别?

1)update会查询互联网上最新的内核软件包进行升级
2)upgrade只查询当前yum源中比目前已安装软件版本高的那些
3)总体来说update升级更加彻底,我一般使用这个