Debian/Ubuntu 服务器初始化配置与安全优化教程

初次部署一台 Debian 或 Ubuntu 系统的云服务器后,做好基础配置和安全加固是非常关键的一步。本文将介绍一套实用的系统初始化与安全优化方案,适用于新上架的 VPS 或独立服务器环境。

修改 SSH 默认端口

为了降低被暴力破解的风险,建议更改默认的 SSH 连接端口(22)

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

修改后重启 SSH 服务:

sudo systemctl restart sshd

如遇错误 Failed to start sshd.service: Unit sshd.service not found.,解决方法添加 ssh.service

systemctl enable ssh.service

系统参数一键优化

使用第三方脚本可快速优化系统内核参数,提升性能与网络稳定性:

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

实现方法:

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

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

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

海外服务器环境中,推荐使用以下命令

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

创建并启用 SWAP 交换分区

部分小内存服务器(如 512M 或 1G)建议添加 SWAP,防止内存溢出导致服务中断。

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

海外服务器环境中,推荐使用以下命令

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

更新系统并安装常用工具

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

设置正确的时区与时间同步

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

配置 UFW 防火墙并开放必要端口

安装 UFW(如尚未安装)

sudo apt update
sudo apt install ufw -y

查看当前 UFW 状态

sudo ufw status verbose

如果提示 Status: inactive,说明防火墙还没有启用。

在启用 UFW 之前,必须允许 SSH,否则你将被锁在服务器外!

sudo ufw allow ssh

或者明确指定端口(默认 22):

sudo ufw allow 22/tcp

根据你服务器运行的服务,开放相应端口:

服务命令说明
HTTPsudo ufw allow 80/tcp网站 HTTP 服务
HTTPSsudo ufw allow 443/tcp网站 HTTPS 服务
FTPsudo ufw allow 21/tcpFTP 文件传输服务
SMTPsudo ufw allow 25/tcp邮件发送服务
MySQLsudo ufw allow 3306/tcp数据库远程连接(谨慎)

启用 UFW 防火墙

sudo ufw enable

系统会提示确认,请输入 y

查看已启用的规则

sudo ufw status numbered

删除某一规则(按编号):

sudo ufw status numbered
sudo ufw delete <编号>

常用命令汇总

sudo ufw status          # 查看状态
sudo ufw enable          # 启用 UFW
sudo ufw disable         # 禁用 UFW
sudo ufw reset           # 重置所有规则
sudo ufw allow <port>    # 开放端口
sudo ufw deny <port>     # 拒绝端口
sudo ufw delete <rule>   # 删除规则

议的基本配置(最小化暴露面)

sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 22/tcp         # SSH
sudo ufw allow 80/tcp         # HTTP
sudo ufw allow 443/tcp        # HTTPS

安装并启用 Fail2Ban 防暴力破解

在开始之前,建议先更新系统的软件包列表:

sudo apt update && sudo apt upgrade -y

在终端中运行以下命令安装 Fail2Ban:

sudo apt install fail2ban -y

Fail2Ban 的默认配置文件是 /etc/fail2ban/jail.conf,但不建议直接修改它。正确的做法是复制并编辑 jail.local 文件:

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

你可以根据需要修改以下配置项:

[DEFAULT]
bantime = 3600           # 封禁时间(秒),例如1小时
findtime = 600           # 检测时间窗口(秒)
maxretry = 5             # 允许的最大尝试次数
destemail = your@email.com
sender = fail2ban@yourdomain.com
mta = sendmail

[sshd]
enabled = true           # 启用 SSH 防护
port = ssh
logpath = %(sshd_log)s
backend = systemd

说明:

  • bantime:被封 IP 的封禁时长。
  • findtime:在此时间内尝试失败达到 maxretry 次即封禁。
  • maxretry:最大允许尝试次数。
  • [sshd]:用于防止 SSH 暴力破解。

启动并启用 Fail2Ban 服务

sudo systemctl enable fail2ban
sudo systemctl start fail2ban

你可以使用以下命令查看 Fail2Ban 的运行状态:

sudo systemctl status fail2ban

查看 SSH 监控状态和封禁的 IP:

sudo fail2ban-client status sshd

常用命令速查

看所有启用的 jail:

sudo fail2ban-client status

手动封禁 IP:

sudo fail2ban-client set sshd banip 1.2.3.4

手动解封 IP:

sudo fail2ban-client set sshd unbanip 1.2.3.4

Fail2Ban 会自动检测 SSH 登录失败次数并封禁可疑 IP,默认配置已适用于大多数使用场景。

启用 BBR 网络加速

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

返回值若为 bbr 即表示成功启用。

开启自动安全更新

定期的安全更新对于系统稳定运行至关重要:

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

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

小结

通过以上步骤,您已经完成了服务器初始化过程中最关键的配置与安全加固,包括 SSH 优化、防火墙设置、Fail2Ban 安装、内核优化以及自动安全更新等。这将为后续部署服务和应用打下一个安全、稳定的基础环境。

0
0