初次部署一台 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
根据你服务器运行的服务,开放相应端口:
服务 | 命令 | 说明 |
HTTP | sudo ufw allow 80/tcp | 网站 HTTP 服务 |
HTTPS | sudo ufw allow 443/tcp | 网站 HTTPS 服务 |
FTP | sudo ufw allow 21/tcp | FTP 文件传输服务 |
SMTP | sudo ufw allow 25/tcp | 邮件发送服务 |
MySQL | sudo 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 安装、内核优化以及自动安全更新等。这将为后续部署服务和应用打下一个安全、稳定的基础环境。