目录
[一、软件源优化:配置国内 Yum 源(加速软件安装)](#一、软件源优化:配置国内 Yum 源(加速软件安装))
[三、网络与标识配置:验证网络 + 设置主机名](#三、网络与标识配置:验证网络 + 设置主机名)
[1. 网络连接验证(基础前提)](#1. 网络连接验证(基础前提))
[2. 配置主机名(便于管理)](#2. 配置主机名(便于管理))
[四、时间校准:配置 Chrony 时间同步](#四、时间校准:配置 Chrony 时间同步)
[六.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 源获取更多软件包。
关键步骤
-
备份默认源 :防止配置错误后无法恢复
sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
-
下载国内源配置 :以阿里云为例(稳定且速度快)
sudo curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
-
配置 EPEL 源 :补充官方源没有的额外软件(如
htop
、lrzsz
)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
-
刷新缓存 :让 Yum 识别新源
sudo yum clean all && sudo yum makecache
二、系统基础配置:更新系统与安装必备工具
核心目标
更新系统安全补丁,安装日常运维、开发所需的基础工具,保障系统功能完整性。
关键步骤
-
系统更新 :获取最新安全补丁(内核更新需重启生效)
sudo yum update -y
-
安装必备工具 :覆盖 "编辑、下载、网络诊断、进程监控、文件传输" 等场景
sudo yum install -y vim-enhanced wget curl telnet net-tools bash-completion lsof sysstat htop tree git unzip lrzsz
-
可选:安装开发环境 :若需编译软件,安装开发工具集
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 时间同步
核心目标
确保服务器时间准确,避免因时间偏差导致日志混乱、证书验证失败、定时任务执行异常。
关键步骤
-
安装 Chrony 服务 (CentOS 7 首选,比 NTP 更轻量)
sudo yum install -y chrony
-
启动并设置开机自启
sudo systemctl start chronyd && sudo systemctl enable chronyd
-
强制立即同步时间
sudo chronyc -a makestep
-
验证同步状态
sudo chronyc sources -v # 查看时间服务器连接状态 date # 查看当前系统时间
五、安全防护:配置防火墙(两种方法)
防火墙是服务器安全的第一道防线,核心原则:默认拒绝所有入站流量,仅开放必要端口。
核心步骤
-
关闭默认 firewalld :为 iptables 让路
sudo systemctl stop firewalld && sudo systemctl disable firewalld
-
安装 iptables 服务 (提供规则保存、服务管理功能)
sudo yum install -y iptables-services
-
设置基础规则(安全核心)
# 默认策略:拒绝入站/转发,允许出站 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
-
开放必要端口 (按需选择,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服务)
-
保存规则并启用服务 (避免重启失效)
sudo service iptables save # 保存规则到 /etc/sysconfig/iptables sudo systemctl start iptables && sudo systemctl enable iptables
-
验证配置
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):
- 打开 Xshell,点击「工具」→「新建用户密钥生成向导」。
- 密钥类型选择「RSA」,密钥长度选择「2048 位」或「4096 位」(越长越安全)。
- 一路下一步,设置密钥名称和密码(可选,保护私钥),最后保存私钥(如
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
文件。
- 按提示输入服务器 root 密码,公钥会自动添加到服务器的
-
方法 2:手动上传(无 ssh-copy-id 时用):
-
本地读取公钥内容:
cat ~/.ssh/id_rsa.pub
,复制输出的字符串。 -
远程服务器创建
.ssh
目录并设置权限:mkdir -p ~/.ssh chmod 700 ~/.ssh # 仅所有者可读写执行,避免权限过高
-
将公钥写入
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
-
注意:必须先验证公钥登录正常,再禁用密码登录,否则会导致无法远程登录!
-
七.总结
- 顺序性:建议按软件源→系统工具→网络→安全顺序操作,避免依赖缺失。
- 备份意识 :修改配置文件前备份(如
mv
或cp
),防止误操作导致系统异常。 - 验证步骤 :每项配置完成后需验证(如
ping
测试网络、chronyc sources
查看同步状态)。 - 最小化开放端口:防火墙仅开放业务必需端口,减少攻击面。
通过以上步骤,可快速完成服务器初始化,为后续应用部署奠定安全、高效的基础环境