惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

N
Netflix TechBlog - Medium
罗磊的独立博客
H
Help Net Security
I
Intezer
G
Google Developers Blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
T
Troy Hunt's Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
U
Unit 42
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
N
News and Events Feed by Topic
J
Java Code Geeks
S
Security Affairs
T
The Blog of Author Tim Ferriss
Recent Commits to openclaw:main
Recent Commits to openclaw:main
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
D
Docker
The GitHub Blog
The GitHub Blog
F
Full Disclosure
N
News and Events Feed by Topic
Webroot Blog
Webroot Blog
S
Security @ Cisco Blogs
腾讯CDC
人人都是产品经理
人人都是产品经理
M
MIT News - Artificial intelligence
Blog — PlanetScale
Blog — PlanetScale
T
Threatpost
D
DataBreaches.Net
Recent Announcements
Recent Announcements
博客园 - 三生石上(FineUI控件)
MongoDB | Blog
MongoDB | Blog
博客园 - 【当耐特】
L
LINUX DO - 最新话题
Google Online Security Blog
Google Online Security Blog
S
Schneier on Security
S
Securelist
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Help Net Security
Help Net Security
P
Proofpoint News Feed
Project Zero
Project Zero
S
SegmentFault 最新的问题
H
Hackread – Cybersecurity News, Data Breaches, AI and More
MyScale Blog
MyScale Blog
Google DeepMind News
Google DeepMind News
宝玉的分享
宝玉的分享
Y
Y Combinator Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
博客园 - 叶小钗

静观小窗

一个有趣的项目背后的难点--MC的3D皮肤生成器 power by Qwen 博客俱乐部,最有社区氛围的中文博客联盟 文化决定语言,语言决定思想:我们赖以生存的隐喻(读后感) 我开发了一款博客图片压缩工具,支持PicGo一键压缩上传 寻找网络友邻 整合全网102个二次元动漫随机图片API接口,2025年十月最新 宋代的遗憾 搭建个人起始网站,便于控制浏览器使用和时间规划 Google Gemini CLI 免费安装配置指南:支持Gemini 2.5 Pro (2025最新) NixOS深度评测:一个六年Linux用户的初体验,为何惊艳的设计哲学仍让我望而却步 我的NS2使用体验记录,为什么因为马里奥派对空前盛会入坑 关于秦制的个人理解,为什么秦制在我看来是功过鲜明的必然 拜访一个人,在千年之后 Vercel/Netlify国内加速:EdgeOne免费CDN优选IP实战指南 C/C++程序员必看:JavaScript核心概念深度解析(动态类型、原型链、事件循环) C/C++程序员转向JavaScript:一份超详细的语法映射与避坑指南 从C++到JS:函数、this与闭包的核心差异与实践指南 VSCode配置JavaScript开发环境:Node.js安装与调试指南 C/C++程序员必看:JavaScript变量与作用域深度解析(从var到const) 博客迁移实战:从WordPress到Next.js的零成本高性能之路 《原则》读书笔记:如何将瑞·达利欧的智慧应用到日常 MATLAB入门教程:面向C++/OIer的数据可视化与科学计算指南 LaTeX公式与三线表教程:从入门到精通的排版指南 软路由远程访问提速:SMB压缩与50M上行优化实战 Hyprland 安装与配置超详细教程 (Arch Linux):含 Waybar 及一键脚本 Linux文件系统与磁盘分区:从入门到精通的实战指南 Guide to Installing a USB WiFi Adapter on OpenWrt (LuCI) WordPress个人博客搭建指南:从服务器到主题美化全攻略 Arch/Windows双系统终极指南:无缝鼠标共享与显卡配置 NAS怎么选?黑群晖、CentOS自建与绿联NAS深度对比与选型指南 Arch Linux 安装 KDE Plasma 6:一篇来自老用户的深度评测(2025版) 我的第一份Ubuntu安装与美化笔记(新手超详细避坑指南)
阿里云CentOS 9服务器从零到一:安全配置与宝塔面板安装指南
间窗 (Vindo) · 2025-01-06 · via 静观小窗

阿里云ECS服务器控制台界面截图

前言

本文是一篇详尽的 阿里云服务器配置 指南,旨在从零开始,完成一台全新 CentOS 9 服务器的基础配置,并安装宝塔(BT-Panel)管理面板。本文的重点在于“可复现的命令、最小化安全清单与常见风险规避”。

通过本教程,您将完成:

  • 安全的服务器登录与用户管理方法。
  • CentOS 9 系统的初始化与核心配置。
  • 防火墙(firewalld & 阿里云安全组)的正确配置。
  • 一键安装并访问 宝塔面板
  • 服务器后期的安全与维护要点。

快速通道:如果你是经验丰富的老手,只想快速在 CentOS 9 上安装宝塔,可以从本文的 第四步 开始。但我们强烈建议新用户按照顺序完成所有的基础安全配置。

第一步:准备工作

在开始之前,请确保您已具备以下条件:

  1. 一台阿里云ECS服务器:已购买并成功创建,操作系统为 CentOS 9 Stream
  2. 公网IP地址:记下您服务器的公网 IP。
  3. root用户密码:记录好创建实例时设置或系统生成的初始密码。
  4. SSH工具:Windows用户推荐使用 PuTTY 或 Xshell;macOS/Linux 用户直接使用系统自带的终端即可。

第二步:首次登录与基础安全设置

首次登录服务器后,我们不应立即安装软件,而是先完成基础的 服务器配置 与安全加固。

1. 远程登录服务器

2. 更新系统

3. 创建日常管理用户(重要)

我的建议:直接使用 root 用户是服务器安全的最大隐患。创建一个低权限的日常用户,配合 sudo 使用,能有效防止因误操作或脚本漏洞导致整个系统崩溃。

# 1. 创建新用户(将 <用户名> 替换为您想要的名称,如 admin)
sudo useradd -m <用户名>

# 2. 为新用户设置一个强密码
sudo passwd <用户名>

# 3. 将用户添加到 wheel 用户组,赋予其 sudo 权限
sudo usermod -aG wheel <用户名>

4. 切换为新用户并配置SSH密钥登录(推荐)

之后的操作,都应使用这个新用户。为了达到最高的安全性,我们应配置密钥登录,并彻底禁用密码登录。

在本地生成密钥(若已有可跳过):

ssh-keygen -t ed25519 -C "<your_email>"

将公钥传到服务器新用户:

ssh-copy-id <用户名>@<您的服务器IP>

在服务器侧编辑 SSH 配置,禁用密码和root登录:

sudo sed -i 's/^#\?PasswordAuthentication.*/PasswordAuthentication no/' /etc/ssh/sshd_config
sudo sed -i 's/^#\?PermitRootLogin.*/PermitRootLogin no/' /etc/ssh/sshd_config
sudo systemctl reload sshd

避坑提示:在执行 systemctl reload sshd 前,请务必新开一个终端窗口,测试密钥登录是否成功。否则,一旦配置错误,你可能会被永远锁在服务器外面!

5. 基础时间同步与日志

sudo timedatectl set-timezone Asia/Shanghai
sudo timedatectl set-ntp true
sudo systemctl enable --now systemd-journald

第三步:核心:配置双重防火墙

防火墙是服务器的“网络门神”。在 阿里云服务器 上,我们需要配置两个层面的防火墙,两者必须同时放行,外部才能访问。

1. 配置 firewalld (系统层)

CentOS 9 默认使用 firewalld 作为防火墙管理工具。

# 查看防火墙运行状态,应为 running
sudo firewall-cmd --state

# 永久开放 SSH 端口(默认为 22),防止自己被锁在外面
sudo firewall-cmd --zone=public --add-port=22/tcp --permanent

# 永久开放 Web 服务端口(HTTP/80, HTTPS/443)
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
sudo firewall-cmd --zone=public --add-port=443/tcp --permanent

# 【关键】为宝塔面板预留端口(默认 8888)
sudo firewall-cmd --zone=public --add-port=8888/tcp --permanent

# 重载防火墙规则,使新配置生效
sudo firewall-cmd --reload

# 查看已开放的所有端口,确认配置成功
sudo firewall-cmd --list-ports

2. 配置阿里云安全组 (云服务商层)

  1. 登录阿里云控制台

  2. 进入您的 ECS 实例列表,点击对应的实例ID。

  3. 在实例详情页,找到并点击 “安全组” 标签页。

  4. 点击安全组ID,进入配置页面,选择 “入方向” 规则。

  5. 点击 “手动添加”,按照上一步的端口列表,依次添加规则:

    • 端口范围22/22 (SSH)
    • 端口范围80/80 (HTTP)
    • 端口范围443/443 (HTTPS)
    • 端口范围8888/8888 (宝塔面板)
    • 授权对象:为了安全,SSH(22)端口建议设置为您的本地IP地址;其他端口可设置为 0.0.0.0/0,代表对所有IP开放。

我的建议:为了安全,SSH(22)端口的授权对象应设为你的本地公网IP;宝塔面板(8888)端口建议设置为你的家庭或公司IP段。只有Web端口(80, 443)才应设为 0.0.0.0/0 对所有人开放。

安全最小化清单(可按需启用)

  • Fail2ban(限制暴力登录)
sudo dnf install -y fail2ban
sudo systemctl enable --now fail2ban
sudo tee /etc/fail2ban/jail.d/sshd.local >/dev/null <<'EOF'
[sshd]
enabled = true
maxretry = 5
bantime = 1h
findtime = 15m
EOF
sudo systemctl restart fail2ban
  • 审计(审计关键操作)
sudo dnf install -y audit
sudo systemctl enable --now auditd
  • 端口概览与自查
ss -tulpn | grep LISTEN
sudo firewall-cmd --list-ports

第四步:在CentOS上安装宝塔面板

完成以上所有 服务器配置 后,CentOS安装宝塔 就变得非常简单了。

1. 安装必要工具

sudo dnf install -y wget curl

2. 执行宝塔官方安装脚本

wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sudo sh install.sh

注意: 安装过程会自动进行,可能需要几分钟时间。请耐心等待,不要中断。

3. 保存登录信息

安装完成后,终端会显示 宝塔面板 的登录信息,务必将其复制并妥善保存!

==================================================================
Congratulations! Installed successfully!
==================================================================
Bt-Panel: http://<您的服务器IP>:8888/xxxxxx  (外网面板地址)
username: xxxxxx                           (用户名)
password: xxxxxx                           (密码)
==================================================================

4. 登录并初始化宝塔

在浏览器中打开 “外网面板地址”,输入用户名和密码登录。首次登录,宝塔会推荐安装套件(如 LNMP 或 LAMP),您可以根据自己的需求一键安装,非常方便。

宝塔面板首次登录后的LNMP环境安装推荐界面

第五步:安全与维护建议

服务器部署完成只是开始,长期的安全维护至关重要。

  • 定期更新:养成定期执行 sudo dnf update -y 的习惯,及时修复系统和软件漏洞。
  • 修改默认端口:在宝塔面板后台,修改默认的 8888 端口为一个不常用的端口,并同步修改防火墙和安全组规则,可以有效防止扫描。
  • 启用 SSH 密钥登录:通过配置 SSH 密钥认证并禁用密码登录,可以极大提升服务器的登录安全性。
  • 定期备份:利用宝塔面板的计划任务功能,定期备份网站文件和数据库到云存储(如阿里云OSS),以防数据丢失。
  • 性能监控:时常关注宝塔面板首页的系统负载、CPU、内存等状态,及时发现并处理异常。

结语

以上步骤完成后,即可开始部署网站、数据库或其他应用。服务器管理是持续性的工作,建议建立“变更记录+监控+备份”三件套,遇到异常可快速回溯与回退。

参考资料: