Debian 服务器初始化与基础安全调优指南

一、系统设置

1. 更新软件库与必备软件

执行以下命令更新软件源并安装常用的系统工具:

Bash

apt update -y && apt upgrade -y
apt install -y sudo curl wget nano

2. 校正系统时间

将服务器时区更改为上海(Asia/Shanghai):

Bash

sudo timedatectl set-timezone Asia/Shanghai
  • 查看当前时区:timedatectl
  • 列出所有时区:timedatectl list-timezones

3. 系统参数调优

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

  • 内核参数调整: 例如增加 TCP 缓冲区大小、修改系统队列长度等,有助于提高网络吞吐量和减少延迟。
  • 资源限制: 设置文件打开数量的限制,防止某些类型的资源耗尽攻击。

运行以下一键调优脚本:

Bash

bash <(wget -qO- https://raw.githubusercontent.com/jerry048/Tune/main/tune.sh) -t

二、BBR 加速配置

BBR (Bottleneck Bandwidth and RTT) 是 Google 提出的一种新型拥塞控制算法,主要特点与作用包括:

  • 提高网络性能: 显著提高吞吐量和降低 TCP 连接延迟。
  • 适应复杂网络: 适合高延迟、高带宽或有一定丢包率的网络链路。
  • 优化拥塞控制: 通过精确测量 RTT 和瓶颈带宽来控制发送速率,避免传统算法因单纯丢包判断拥塞而导致带宽浪费。

📌 个人推荐: 因为我本人是 PT 玩家,所以更倾向于使用大佬魔改的 BBRx 版本。它调整了 startupdrainprobe_bw 等状态下的关键参数(如 pacing_gaincwnd_gain),效果比原版更好。如果不喜欢,也可以选择原版。

1. 开启 BBRx 加速

Bash

bash <(wget -qO- https://raw.githubusercontent.com/jerry048/Tune/main/tune.sh) -x

2. 重启 VPS 并确认状态

重启系统使内核更新和 BBR 设置生效:

Bash

sudo reboot

重启后,检查 BBR 是否正确开启:

Bash

lsmod | grep bbr
  • 期望结果: 应返回 tcp_bbrxtcp_bbr
  • 注意: 如果返回结果中只有 tcp_bbr,请再等几分钟后再次重启即可。

三、添加 SWAP 交换空间

在 Linux 系统中,SWAP(交换空间)是指一块磁盘空间,用于在物理内存不足时作为临时的扩展内存使用,能够有效避免因物理内存耗尽导致系统卡死或进程被 OOM Killer 强制终止。

使用脚本一键添加 SWAP:

Bash

wget -O swap.sh https://raw.githubusercontent.com/yuju520/Script/main/swap.sh && chmod +x swap.sh && clear && ./swap.sh

查看当前内存及 SWAP 状态:

Bash

free -m

四、安装 Docker 与 Docker Compose

1. 安装 Docker

  • 非大陆服务器:
    Bashwget -qO- get.docker.com | bash 或者:
    Bashcurl -fsSL https://get.docker.com -o get-docker.sh && sh get-docker.sh
  • 大陆服务器:
    Bashcurl https://install.1panel.live/docker-install -o docker-install && sudo bash ./docker-install && rm -f ./docker-install

2. 配置与验证

查看 Docker 版本:

Bash

docker -v

设置开机自动启动:

Bash

sudo systemctl enable docker

3. Docker Compose 检查

现代版本的 Docker(自 18.06.0-ce 起)已经自带了 Docker Compose 工具,直接检验版本即可:

Bash

docker compose version

五、修改 SSH 默认端口

修改 SSH 默认的 22 端口可以有效减少自动化扫描和暴力破解的风险,提升服务器安全性。

将默认端口修改为自定义端口(例如 39000):

Bash

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

重启 SSH 服务使配置生效:

Bash

sudo systemctl restart sshd

⚠️ 注意: 修改端口后,请务必在安全组或防火墙中放行该新端口,并在下次连接时指定 -p 39000

六、配置密钥登录

使用脚本一键生成并配置 SSH 密钥:

Bash

wget -O key.sh https://raw.githubusercontent.com/yuju520/Script/main/key.sh && chmod +x key.sh && clear && ./key.sh

🚨 警告: 请务必牢记并妥善保存你生成的密钥文件,否则可能会导致无法通过 SSH 连接服务器!

七、安装与配置 Fail2ban 防护

1. 安装 Fail2ban

Bash

apt install -y fail2ban

2. 配置 Fail2ban

建议通过 .local 文件来覆盖默认配置,避免直接修改 .conf 文件:

Bash

nano /etc/fail2ban/jail.local

写入以下配置内容:

Ini, TOML

[DEFAULT]
# 忽略的 IP 列表(白名单),以空格隔开
ignoreip = 127.0.0.1

# 允许 IPv6
allowipv6 = auto

# 日志修改检测机制
backend = systemd

[sshd]
# 是否激活此项
enabled = true

# 过滤规则 filter 名字
filter = sshd

# SSH 端口(如果修改了默认端口,需在此处或全局指定)
port = ssh

# 动作相关参数
action = iptables[name=SSH, port=ssh, protocol=tcp]

# 检测的系统登录日志文件路径
logpath = /var/log/auth.log

# 屏蔽时间,单位:秒(默认 1 小时)
bantime = 3600

# 检测时间段,单位:秒(默认 10 分钟内)
findtime = 600

# 最大尝试次数
maxretry = 3
  • 保存与退出:Ctrl + O 保存,按 Ctrl + X 退出编辑器。

3. 启动与管理服务

设置开机自启并启动 Fail2ban:

Bash

sudo systemctl enable fail2ban
sudo systemctl restart fail2ban

检查运行状态:

Bash

sudo systemctl status fail2ban
fail2ban-client status

八、配置 UFW 防火墙

1. 安装与启用

Bash

sudo apt update
sudo apt install -y ufw
sudo ufw enable

2. 常用规则配置

Bash

# 允许特定端口和服务
sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https
sudo ufw allow 3306/tcp    # MySQL
sudo ufw allow 5432/tcp    # PostgreSQL

# 允许特定 IP 访问特定端口
sudo ufw allow from 192.168.1.100 to any port 22

# 拒绝特定端口
sudo ufw deny 23/tcp

# 查看防火墙状态
sudo ufw status verbose

# 删除指定规则(通过编号删除,先用 ufw status numbered 查看编号)
# sudo ufw delete <编号>

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注