CentOS 7 服务器初始化完整流程

目录

前言

[一、软件源优化:配置国内 Yum 源(加速软件安装)](#一、软件源优化:配置国内 Yum 源(加速软件安装))

核心目标

关键步骤

二、系统基础配置:更新系统与安装必备工具

核心目标

关键步骤

[三、网络与标识配置:验证网络 + 设置主机名](#三、网络与标识配置:验证网络 + 设置主机名)

[1. 网络连接验证(基础前提)](#1. 网络连接验证(基础前提))

[2. 配置主机名(便于管理)](#2. 配置主机名(便于管理))

[四、时间校准:配置 Chrony 时间同步](#四、时间校准:配置 Chrony 时间同步)

核心目标

关键步骤

五、安全防护:配置防火墙(两种方法)

核心步骤

firewalld

[六.SSH 安全加固(防暴力破解,提升远程登录安全)](#六.SSH 安全加固(防暴力破解,提升远程登录安全))

[1. 强化密码策略(设置复杂密码,避免弱密码)](#1. 强化密码策略(设置复杂密码,避免弱密码))

[2. 修改 SSH 默认端口(避免 22 端口被暴力扫描)](#2. 修改 SSH 默认端口(避免 22 端口被暴力扫描))

[3. 启用 SSH 公钥登录(替代密码登录,更安全)](#3. 启用 SSH 公钥登录(替代密码登录,更安全))

[步骤 1:本地生成公钥私钥对(以 Windows 为例,用 Xshell / 终端;Linux 本地直接执行)](#步骤 1:本地生成公钥私钥对(以 Windows 为例,用 Xshell / 终端;Linux 本地直接执行))

[步骤 2:将公钥上传到服务器(授权登录)](#步骤 2:将公钥上传到服务器(授权登录))

[步骤 3:验证公钥登录](#步骤 3:验证公钥登录)

[步骤 4:禁用 SSH 密码登录(可选,进一步加固)](#步骤 4:禁用 SSH 密码登录(可选,进一步加固))

七.总结


前言

服务器初始化是保障系统安全、稳定运行的基础操作,核心围绕 "软件源优化、系统工具配置、网络与时间校准、安全防护" 四大维度展开,以下是上述内容的结构化总结:

一、软件源优化:配置国内 Yum 源(加速软件安装)

核心目标

替换默认国外 Yum 源为国内源(阿里云、清华源等),解决软件下载慢、超时问题,同时补充 EPEL 源获取更多软件包。

关键步骤

  1. 备份默认源 :防止配置错误后无法恢复

    复制代码
    sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
  2. 下载国内源配置 :以阿里云为例(稳定且速度快)

    复制代码
    sudo curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
  3. 配置 EPEL 源 :补充官方源没有的额外软件(如 htoplrzsz

    复制代码
    sudo yum install -y epel-release
    sudo sed -e 's|^metalink=|#metalink=|g' -e 's|^#baseurl=|baseurl=|g' -e 's|//download.fedoraproject.org/pub|//mirrors.aliyun.com|g' -i /etc/yum.repos.d/epel.repo
  4. 刷新缓存 :让 Yum 识别新源

    复制代码
    sudo yum clean all && sudo yum makecache

二、系统基础配置:更新系统与安装必备工具

核心目标

更新系统安全补丁,安装日常运维、开发所需的基础工具,保障系统功能完整性。

关键步骤

  1. 系统更新 :获取最新安全补丁(内核更新需重启生效)

    复制代码
    sudo yum update -y
  2. 安装必备工具 :覆盖 "编辑、下载、网络诊断、进程监控、文件传输" 等场景

    复制代码
    sudo yum install -y vim-enhanced wget curl telnet net-tools bash-completion lsof sysstat htop tree git unzip lrzsz
  3. 可选:安装开发环境 :若需编译软件,安装开发工具集

    复制代码
    sudo yum groupinstall -y "Development Tools"

三、网络与标识配置:验证网络 + 设置主机名

1. 网络连接验证(基础前提)

确保服务器能正常访问外网、解析域名,避免后续操作因网络问题失败。

复制代码
# 查看IP地址(确认网卡已启动)
ip addr show 或 ifconfig
# 测试DNS解析(百度域名)
ping -c 4 www.baidu.com
# 测试外网连通性(公共DNS)
ping -c 4 8.8.8.8
  • 若无法上网:检查网卡配置文件(/etc/sysconfig/network-scripts/ifcfg-xxx,xxx 为网卡名如 ens33),确认 ONBOOT=yes、IP/DNS 配置正确。

2. 配置主机名(便于管理)

用自定义主机名替代默认标识,避免仅靠 IP 地址识别服务器。

复制代码
# 查看当前主机名
hostname
# 设置新主机名(如 centos7-master)
sudo hostnamectl set-hostname centos7-master
# 配置 hosts 文件(避免软件因主机名解析失败报错)
sudo vim /etc/hosts  # 末尾添加:127.0.0.1 centos7-master
# 立即生效(或重新登录)
bash

四、时间校准:配置 Chrony 时间同步

核心目标

确保服务器时间准确,避免因时间偏差导致日志混乱、证书验证失败、定时任务执行异常。

关键步骤

  1. 安装 Chrony 服务 (CentOS 7 首选,比 NTP 更轻量)

    复制代码
    sudo yum install -y chrony
  2. 启动并设置开机自启

    复制代码
    sudo systemctl start chronyd && sudo systemctl enable chronyd
  3. 强制立即同步时间

    复制代码
    sudo chronyc -a makestep
  4. 验证同步状态

    复制代码
    sudo chronyc sources -v  # 查看时间服务器连接状态
    date  # 查看当前系统时间

五、安全防护:配置防火墙(两种方法)

防火墙是服务器安全的第一道防线,核心原则:默认拒绝所有入站流量,仅开放必要端口

核心步骤

  1. 关闭默认 firewalld :为 iptables 让路

    复制代码
    sudo systemctl stop firewalld && sudo systemctl disable firewalld
  2. 安装 iptables 服务 (提供规则保存、服务管理功能)

    复制代码
    sudo yum install -y iptables-services
  3. 设置基础规则(安全核心)

    复制代码
    # 默认策略:拒绝入站/转发,允许出站
    sudo iptables -P INPUT DROP
    sudo iptables -P FORWARD DROP
    sudo iptables -P OUTPUT ACCEPT
    # 允许本地回环(系统内部通信必需)
    sudo iptables -A INPUT -i lo -j ACCEPT
    # 允许已建立/关联连接(确保对外请求的返回流量能进入)
    sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
  4. 开放必要端口 (按需选择,SSH 必开)

    复制代码
    sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT  # SSH(远程管理生命线)
    sudo iptables -A INPUT -p icmp -j ACCEPT  # 允许 Ping(网络诊断)
    sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT  # HTTP(Web服务)
    sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT  # HTTPS(Web服务)
  5. 保存规则并启用服务 (避免重启失效)

    复制代码
    sudo service iptables save  # 保存规则到 /etc/sysconfig/iptables
    sudo systemctl start iptables && sudo systemctl enable iptables
  6. 验证配置

    复制代码
    sudo iptables -L -v -n --line-numbers  # 查看规则(显示行号,便于后续修改)

firewalld

CentOS 7 默认使用 firewalld 作为防火墙前端管理工具。配置原则是:默认拒绝所有传入连接,只开放必要的端口

复制代码
# 1. 查看防火墙状态
sudo systemctl status firewalld
# 如果未启动,则启动并设置开机自启
sudo systemctl start firewalld
sudo systemctl enable firewalld
​
# 2. 查看当前开放的端口和服务
sudo firewall-cmd --list-all
​
# 3. 放行常用的服务端口(根据需求选择)
# 放行 SSH 端口(默认22,极其重要,确保自己能连上)
sudo firewall-cmd --permanent --add-service=ssh
# 放行 HTTP (80) 和 HTTPS (443) 端口,用于Web服务
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
# 如果需要放行自定义端口,例如 8080
# sudo firewall-cmd --permanent --add-port=8080/tcp
​
# 4. 重新加载防火墙配置使其生效
sudo firewall-cmd --reload
​
# 5. 再次确认规则已生效
sudo firewall-cmd --list-all

重要安全提示:如果修改了 SSH 端口(例如改为 5922),一定要先放行新端口再关闭旧端口,否则可能导致自己无法远程连接!

复制代码
sudo firewall-cmd --permanent --add-port=5922/tcp
sudo firewall-cmd --permanent --remove-service=ssh
sudo firewall-cmd --reload

六.SSH 安全加固(防暴力破解,提升远程登录安全)

SSH 是远程管理服务器的主要方式,需通过「修改默认端口、强化密码策略、启用公钥登录」三重加固。

1. 强化密码策略(设置复杂密码,避免弱密码)
  • 编辑密码策略配置文件 /etc/pam.d/system-auth,添加密码复杂度校验:

    复制代码
    vim /etc/pam.d/system-auth

    password sufficient pam_unix.so sha512 shadow nullok_secure try_first_pass use_authtok 行前添加:

    复制代码
    # 密码至少 18 位,包含大小写字母、数字、特殊符号
    password    requisite    pam_cracklib.so minlen=18 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1
    • 参数解释:
      • minlen=18:密码最小长度 18 位。
      • ucredit=-1:至少 1 个大写字母。
      • lcredit=-1:至少 1 个小写字母。
      • dcredit=-1:至少 1 个数字。
      • ocredit=-1:至少 1 个特殊符号(如!@#$%)。
  • 修改用户密码(以 root 用户为例,设置符合策略的密码):

    复制代码
    passwd root  # 按提示输入新密码(需满足 18 位+复杂格式)
2. 修改 SSH 默认端口(避免 22 端口被暴力扫描)
  • 编辑 SSH 配置文件 /etc/ssh/sshd_config

    复制代码
    vim /etc/ssh/sshd_config
    • 找到 #Port 22 行,删除注释并修改为自定义端口(如 2222,建议 1024-65535 之间,避免与其他服务冲突):

      复制代码
      Port 2222
    • 保存退出后,重启 SSH 服务:

      复制代码
      systemctl restart sshd
    • 验证:新终端用新端口连接(如 ssh root@192.168.1.100 -p 2222),确保能正常登录(旧终端不要关闭,避免配置错误导致失联)。

3. 启用 SSH 公钥登录(替代密码登录,更安全)

公钥登录无需输入密码,且私钥仅保存在本地,比密码登录更抗暴力破解。

步骤 1:本地生成公钥私钥对(以 Windows 为例,用 Xshell / 终端;Linux 本地直接执行)
  • Windows(Xshell)

    1. 打开 Xshell,点击「工具」→「新建用户密钥生成向导」。
    2. 密钥类型选择「RSA」,密钥长度选择「2048 位」或「4096 位」(越长越安全)。
    3. 一路下一步,设置密钥名称和密码(可选,保护私钥),最后保存私钥(如 id_rsa.pub 公钥、id_rsa 私钥)。
  • Linux/macOS 本地

    复制代码
    ssh-keygen -t rsa -b 4096  # 生成 RSA 类型 4096 位密钥
    # 按提示回车(默认保存路径 ~/.ssh/,可设置密钥密码)
    • 生成后,公钥在 ~/.ssh/id_rsa.pub,私钥在 ~/.ssh/id_rsa
步骤 2:将公钥上传到服务器(授权登录)
  • 方法 1:用 ssh-copy-id 命令(推荐,自动配置权限)

    复制代码
    # 本地执行,将公钥上传到服务器(替换为服务器 IP 和新 SSH 端口)
    ssh-copy-id -p 2222 root@192.168.1.100
    • 按提示输入服务器 root 密码,公钥会自动添加到服务器的 ~/.ssh/authorized_keys 文件。
  • 方法 2:手动上传(无 ssh-copy-id 时用)

    1. 本地读取公钥内容:cat ~/.ssh/id_rsa.pub,复制输出的字符串。

    2. 远程服务器创建 .ssh 目录并设置权限:

      复制代码
      mkdir -p ~/.ssh
      chmod 700 ~/.ssh  # 仅所有者可读写执行,避免权限过高
    3. 将公钥写入 authorized_keys 并设置权限:

      复制代码
      vim ~/.ssh/authorized_keys  # 粘贴本地复制的公钥字符串
      chmod 600 ~/.ssh/authorized_keys  # 仅所有者可读写,确保 SSH 认可
步骤 3:验证公钥登录
  • 本地执行登录命令(无需输入服务器密码,若设置了私钥密码则输入私钥密码):

    复制代码
    ssh -p 2222 root@192.168.1.100
  • 若能成功登录,说明公钥配置生效。

步骤 4:禁用 SSH 密码登录(可选,进一步加固)
  • 编辑 SSH 配置文件 /etc/ssh/sshd_config

    复制代码
    vim /etc/ssh/sshd_config
    • 找到 PasswordAuthentication yes,修改为:

      复制代码
      PasswordAuthentication no  # 禁用密码登录,仅允许公钥登录
    • 重启 SSH 服务生效:

      复制代码
      systemctl restart sshd
    • 注意:必须先验证公钥登录正常,再禁用密码登录,否则会导致无法远程登录!

七.总结

  1. 顺序性‌:建议按软件源→系统工具→网络→安全顺序操作,避免依赖缺失。
  2. 备份意识 ‌:修改配置文件前备份(如mvcp),防止误操作导致系统异常。
  3. 验证步骤 ‌:每项配置完成后需验证(如ping测试网络、chronyc sources查看同步状态)。
  4. 最小化开放端口‌:防火墙仅开放业务必需端口,减少攻击面。

通过以上步骤,可快速完成服务器初始化,为后续应用部署奠定安全、高效的基础环境

相关推荐
四时久成12 分钟前
服务器认证系统
运维·服务器
iFulling14 分钟前
【云原生】CentOS安装Kubernetes+Jenkins
linux·云原生·kubernetes·centos·jenkins
徐子元竟然被占了!!18 分钟前
Windows Server 2019 DateCenter搭建 FTP 服务器
运维·服务器·windows
wayuncn2 小时前
影响服务器托管费用的因素
运维·服务器·数据中心·服务器托管·物理服务器租用·服务器机柜·idc机房托管
喜欢你,还有大家2 小时前
Linux笔记10——shell编程基础-4
linux·运维·服务器·笔记
玩转以太网2 小时前
基于 W55MH32Q-EVB 实现 FatFs 文件系统+FTP 服务器
服务器·单片机·物联网
不懂机器人2 小时前
linux编程----网络通信(TCP)
linux·服务器·tcp/ip
✎﹏赤子·墨筱晗♪2 小时前
服务器初始化
运维·服务器
会飞的鱼_1233 小时前
CentOS 7服务器初始化全攻略:从基础配置到安全加固
服务器·安全·centos
tanyongxi663 小时前
简易shell
linux·运维·服务器