Debian与Ubuntu服务器初始化指南:快速配置与部署

初次部署一台基于 Debian 或 Ubuntu 的云服务器(VPS/独服)后,首要任务是进行系统初始化与安全加固。本指南根据 内网笔记 长期运维经验总结,提供了一套行之有效的初始化流程,这是确保服务器长期稳定运行、抵御常见网络攻击的第一道防线。

1. 系统基础更新与核心配置

首先,更新系统软件包,并确保时间同步,这是所有配置的基础。

1.1 软件包更新与常用工具安装

运行以下命令,更新系统软件包列表并安装常用的运维工具(如 curl, wget):

Bash
sudo apt update && sudo apt upgrade -y
sudo apt install curl wget unzip -y

1.2 时区设置与时间同步

将时区设置为 Asia/Shanghai(北京时间),并启用 NTP 时间同步服务,以保证日志记录和系统调度的准确性。

Bash
sudo timedatectl set-timezone Asia/Shanghai
sudo timedatectl set-ntp on

1.3 系统参数调优

这个功能通过调整各种系统和网络参数来优化服务器的性能。

实现方法

  • 内核参数调整:例如,增加TCP缓冲区大小、修改系统队列长度等,这些改变有助于提高网络吞吐量和减少延迟。
  • 性能优化:安装和配置Tuned和其他系统性能优化工具来自动调整和优化服务器的运行状态。
  • 资源限制:例如,设置文件打开数量的限制,这可以防止某些类型的资源耗尽攻击。

通过这些功能,你的服务器不仅能够更有效地管理资源,还能提高对外部威胁的防护能力,保障系统稳定运行。

Bash
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:

Bash
sudo sed -i 's/^#\?Port 22.*/Port 7088/g' /etc/ssh/sshd_config

重启 SSH 服务以使配置生效:

Bash
sudo systemctl restart sshd

故障排除: 如果重启时提示 sshd.service not found,请先运行 systemctl enable ssh.service。

2.2 配置 UFW 防火墙与端口开放

UFW (Uncomplicated Firewall) 是 Ubuntu/Debian 上管理 Netfilter 规则的简单工具。我们应采取“默认拒绝、按需开放”的策略。

安装 UFW:

Bash
sudo apt install ufw -y

设置默认策略(拒绝所有进入,允许所有外出):

Bash
sudo ufw default deny incoming
sudo ufw default allow outgoing

开放必要端口(重要): 在启用 UFW 之前,必须开放您修改后的 SSH 端口(例如 7088),否则您将被锁定在服务器之外!

Bash
# 开放新的 SSH 端口
sudo ufw allow 7088/tcp
# 开放 Web 服务端口
sudo ufw allow 80/tcp       # HTTP
sudo ufw allow 443/tcp      # HTTPS

启用 UFW 防火墙:

Bash
sudo ufw enable

常用服务端口开放表:

服务类型端口号命令示例备注
HTTP80sudo ufw allow 80/tcp网站访问
HTTPS443sudo ufw allow 443/tcp加密网站访问
MySQL3306sudo ufw allow 3306/tcp高风险,不建议远程开放
FTP21sudo ufw allow 21/tcp文件传输(如有需要)

2.3 安装并启用 Fail2Ban 防暴力破解

Fail2Ban 通过监控日志文件,自动封禁多次尝试登录失败的 IP 地址,是抵御 SSH 暴力破解的有效工具。

安装 Fail2Ban:

Bash
sudo apt install fail2ban -y

复制默认配置文件为 jail.local(最佳实践):

Bash
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

启动并设置开机自启:

Bash
sudo systemctl enable fail2ban
sudo systemctl start fail2ban

配置建议: 默认配置已足够强大,但您可以在 /etc/fail2ban/jail.local 中修改 bantime(封禁时间)和 maxretry(最大尝试次数)。

2.4 启用 SSH 密钥登录(最佳实践)

使用密钥对替代密码登录,能显著提高安全性。建议关闭密码登录,仅允许密钥登录。

  1. 生成密钥: 请在本地客户端生成密钥对。
  2. 将公钥(通常是 id_rsa.pub)内容添加到服务器用户的 ~/.ssh/authorized_keys 文件中。
  3. 禁用密码登录(在 /etc/ssh/sshd_config 中设置 PasswordAuthentication no 并重启 SSH 服务)。

一键生成你的密钥

Bash
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 交换分区可以防止内存溢出导致重要服务中断。

Bash
# 建议使用脚本快速创建,例如:
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:

Bash
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

使配置立即生效:

Bash
sudo sysctl -p

验证是否启用成功:

Bash
sysctl net.ipv4.tcp_congestion_control

返回值应显示 net.ipv4.tcp_congestion_control = bbr。

4. 系统维护与自动化更新

4.1 开启自动安全补丁更新

定期更新安全补丁是服务器维护的重要环节。使用 unattended-upgrades 可以自动化这一过程。

Bash
sudo apt install unattended-upgrades -y
sudo dpkg-reconfigure --priority=low unattended-upgrades

在提示时,选择“是(Yes)”即可启用自动安全补丁更新。

总结:

通过遵循 innnets.com 推荐的这套 Debian/Ubuntu 服务器初始化流程,您的新服务器已具备稳定运行和抵御常见网络威胁的能力,为后续的应用部署打下了坚实可靠的基础。