初次部署一台基于 Debian 或 Ubuntu 的云服务器(VPS/独服)后,首要任务是进行系统初始化与安全加固。本指南根据 内网笔记 长期运维经验总结,提供了一套行之有效的初始化流程,这是确保服务器长期稳定运行、抵御常见网络攻击的第一道防线。
1. 系统基础更新与核心配置
首先,更新系统软件包,并确保时间同步,这是所有配置的基础。
1.1 软件包更新与常用工具安装
运行以下命令,更新系统软件包列表并安装常用的运维工具(如 curl, wget):
sudo apt update && sudo apt upgrade -y
sudo apt install curl wget unzip -y 1.2 时区设置与时间同步
将时区设置为 Asia/Shanghai(北京时间),并启用 NTP 时间同步服务,以保证日志记录和系统调度的准确性。
sudo timedatectl set-timezone Asia/Shanghai
sudo timedatectl set-ntp on 1.3 系统参数调优
这个功能通过调整各种系统和网络参数来优化服务器的性能。
实现方法:
- 内核参数调整:例如,增加TCP缓冲区大小、修改系统队列长度等,这些改变有助于提高网络吞吐量和减少延迟。
- 性能优化:安装和配置Tuned和其他系统性能优化工具来自动调整和优化服务器的运行状态。
- 资源限制:例如,设置文件打开数量的限制,这可以防止某些类型的资源耗尽攻击。
通过这些功能,你的服务器不仅能够更有效地管理资源,还能提高对外部威胁的防护能力,保障系统稳定运行。
bash <(wget -qO- https://raw.githubusercontent.com/jerry048/Tune/main/tune.sh) -t 2. 关键安全加固措施 (SSH & 访问控制)
服务器安全始于 SSH 接入。以下步骤旨在最小化服务器的暴露面。
2.1 更改 SSH 默认端口
默认端口 22 极易成为扫描和暴力破解的目标。建议将其修改为高位、不常用的端口(例如 7088)。
修改 SSH 配置文件 /etc/ssh/sshd_config:
sudo sed -i 's/^#\?Port 22.*/Port 7088/g' /etc/ssh/sshd_config 重启 SSH 服务以使配置生效:
sudo systemctl restart sshd 故障排除: 如果重启时提示 sshd.service not found,请先运行 systemctl enable ssh.service。
2.2 配置 UFW 防火墙与端口开放
UFW (Uncomplicated Firewall) 是 Ubuntu/Debian 上管理 Netfilter 规则的简单工具。我们应采取“默认拒绝、按需开放”的策略。
安装 UFW:
sudo apt install ufw -y 设置默认策略(拒绝所有进入,允许所有外出):
sudo ufw default deny incoming
sudo ufw default allow outgoing 开放必要端口(重要): 在启用 UFW 之前,必须开放您修改后的 SSH 端口(例如 7088),否则您将被锁定在服务器之外!
# 开放新的 SSH 端口
sudo ufw allow 7088/tcp
# 开放 Web 服务端口
sudo ufw allow 80/tcp # HTTP
sudo ufw allow 443/tcp # HTTPS 启用 UFW 防火墙:
sudo ufw enable 常用服务端口开放表:
| 服务类型 | 端口号 | 命令示例 | 备注 |
| HTTP | 80 | sudo ufw allow 80/tcp | 网站访问 |
| HTTPS | 443 | sudo ufw allow 443/tcp | 加密网站访问 |
| MySQL | 3306 | sudo ufw allow 3306/tcp | 高风险,不建议远程开放 |
| FTP | 21 | sudo ufw allow 21/tcp | 文件传输(如有需要) |
2.3 安装并启用 Fail2Ban 防暴力破解
Fail2Ban 通过监控日志文件,自动封禁多次尝试登录失败的 IP 地址,是抵御 SSH 暴力破解的有效工具。
安装 Fail2Ban:
sudo apt install fail2ban -y 复制默认配置文件为 jail.local(最佳实践):
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local 启动并设置开机自启:
sudo systemctl enable fail2ban
sudo systemctl start fail2ban 配置建议: 默认配置已足够强大,但您可以在 /etc/fail2ban/jail.local 中修改 bantime(封禁时间)和 maxretry(最大尝试次数)。
2.4 启用 SSH 密钥登录(最佳实践)
使用密钥对替代密码登录,能显著提高安全性。建议关闭密码登录,仅允许密钥登录。
- 生成密钥: 请在本地客户端生成密钥对。
- 将公钥(通常是 id_rsa.pub)内容添加到服务器用户的 ~/.ssh/authorized_keys 文件中。
- 禁用密码登录(在 /etc/ssh/sshd_config 中设置 PasswordAuthentication no 并重启 SSH 服务)。
一键生成你的密钥:
wget -O key.sh https://raw.githubusercontent.com/yuju520/Script/main/key.sh && chmod +x key.sh && clear && ./key.sh 内网笔记 提示: 密钥是您服务器的“数字钥匙”,请务必牢记您设置的密钥密码,并安全保管私钥。
3. 服务器性能优化 (SWAP & BBR)
对于资源有限的云服务器,进行内核和内存优化是提高效率的关键。
3.1 创建并启用 SWAP 交换分区 (针对小内存实例)
对于 1GB 或更小内存的 VPS,添加 SWAP 交换分区可以防止内存溢出导致重要服务中断。
# 建议使用脚本快速创建,例如:
wget -O swap.sh https://raw.githubusercontent.com/yuju520/Script/main/swap.sh && chmod +x swap.sh && ./swap.sh 3.2 启用 BBR 网络拥塞控制加速
Google 的 BBR(Bottleneck Bandwidth and Round-trip propagation time)算法能显著提高 TCP 吞吐量和降低延迟,适用于大多数服务器环境。
添加 BBR 优化参数到 /etc/sysctl.conf:
echo "net.core.default_qdisc=fq" | sudo tee -a /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" | sudo tee -a /etc/sysctl.conf 使配置立即生效:
sudo sysctl -p 验证是否启用成功:
sysctl net.ipv4.tcp_congestion_control 返回值应显示 net.ipv4.tcp_congestion_control = bbr。
4. 系统维护与自动化更新
4.1 开启自动安全补丁更新
定期更新安全补丁是服务器维护的重要环节。使用 unattended-upgrades 可以自动化这一过程。
sudo apt install unattended-upgrades -y
sudo dpkg-reconfigure --priority=low unattended-upgrades 在提示时,选择“是(Yes)”即可启用自动安全补丁更新。
总结:
通过遵循 innnets.com 推荐的这套 Debian/Ubuntu 服务器初始化流程,您的新服务器已具备稳定运行和抵御常见网络威胁的能力,为后续的应用部署打下了坚实可靠的基础。
