1.
准备与初次登录
购买后先确认面板中IP、用户名(通常为root或admin)与临时密码。Windows用户用PuTTY,mac/linux直接在终端用ssh命令:ssh root@你的VPS_IP。首次登录建议使用控制台面板的临时密码登录并立即更改密码:passwd。若面板提供控制台登录也可在面板直接进入系统救援模式。
2.
检查系统版本与网络
登录后先确认发行版与内核:lsb_release -a 或 cat /etc/os-release;uname -a。测试网络连通:ping -c 4 8.8.8.8 与 ping -c 4 google.com,确保DNS可用,若DNS有问题,设置 /etc/resolv.conf 或在netplan/NetworkManager中配置。
3.
更新系统与安装基础工具
立即更新并安装常用工具。Debian/Ubuntu:apt update && apt -y upgrade && apt -y install sudo vim curl wget ufw ca-certificates cron git;CentOS/RHEL:yum -y update && yum -y install sudo vim curl wget firewalld policycoreutils-python-utils git。完成后重启内核相关更新:reboot(如有必要)。
4.
创建非root管理用户并配置sudo
不要长期使用root。添加用户并授予sudo:adduser youruser(或 useradd -m youruser),然后:usermod -aG sudo youruser(Debian/Ubuntu)或 usermod -aG wheel youruser(CentOS)。测试:su - youruser 后 sudo -v。
5.
配置SSH密钥登录并禁止密码认证
在本地生成密钥(若没有):ssh-keygen -t ed25519 -C "your_email"。将公钥拷贝到服务器:ssh-copy-id youruser@IP 或在服务器把公钥追加到 /home/youruser/.ssh/authorized_keys,并设置权限:chmod 700 ~/.ssh; chmod 600 ~/.ssh/authorized_keys; chown -R youruser:youruser ~/.ssh。测试密钥登录成功后编辑 /etc/ssh/sshd_config,修改或添加:PermitRootLogin no, PasswordAuthentication no, ChallengeResponseAuthentication no, UsePAM yes, Port 22(建议换端口如2202),然后重启SSH:sudo systemctl restart sshd(或 ssh)。注意:修改端口须先在防火墙开放新端口,避免被锁。
6.
SSH端口变更和安全注意
更改端口示例:在 /etc/ssh/sshd_config 中修改 Port 2202;打开端口(UFW示例):sudo ufw allow 2202/tcp && sudo ufw reload。若使用firewalld:sudo firewall-cmd --permanent --add-port=2202/tcp && sudo firewall-cmd --reload。不要立即关闭22,先确认新端口能登录,再禁用22。
7.
配置防火墙(UFW 与 firewalld)
推荐只打开必要端口。UFW(Ubuntu):sudo ufw default deny incoming && sudo ufw default allow outgoing && sudo ufw allow 2202/tcp && sudo ufw allow 80/tcp && sudo ufw allow 443/tcp && sudo ufw enable。CentOS 使用 firewalld:sudo firewall-cmd --permanent --add-service=http 等,随后 reload。核查规则:sudo ufw status verbose 或 sudo firewall-cmd --list-all。
8.
安装并配置 fail2ban 防暴力攻击
安装:Debian/Ubuntu:sudo apt -y install fail2ban;CentOS:sudo yum -y install fail2ban 或 EPEL。创建本地配置:sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local,然后修改 sshd 部分:enabled = true,port = 2202,maxretry = 5,bantime = 3600。启动并使能:sudo systemctl enable --now fail2ban。查看被封IP:sudo fail2ban-client status sshd。
9.
启用自动安全更新与重要补丁
确保系统自动安装安全补丁。Ubuntu:sudo apt -y install unattended-upgrades && sudo dpkg-reconfigure --priority=low unattended-upgrades,检查 /etc/apt/apt.conf.d/50unattended-upgrades。CentOS 可启用 yum-cron:sudo yum -y install yum-cron && sudo systemctl enable --now yum-cron,编辑 /etc/yum/yum-cron.conf 以自动更新安全包。
10.
安装常用服务并配置TLS(以Nginx与Let's Encrypt为例)
安装 Nginx:sudo apt -y install nginx 或 sudo yum -y install nginx;启动并开机:sudo systemctl enable --now nginx。确保80和443开放。安装certbot:sudo apt -y install certbot python3-certbot-nginx(或使用snap)。申请证书:sudo certbot --nginx -d example.com -d www.example.com,设置自动续期:sudo systemctl enable --now certbot.timer,或者 crontab -e 添加 certbot renew --quiet。
11.
配置日志、监控与告警
启用基本日志轮替:检查 /etc/logrotate.d。安装监控工具(可选):Prometheus Node Exporter、Netdata 或 monyog。简单磁盘与进程告警:使用脚本结合cron发送邮件或WebHook。确保 /var/log 有正确权限并定期清理。
12.
备份与快照策略
务必配置备份:数据库使用mysqldump或pg_dump并传输至远程存储(S3或ftp/scp),代码与配置使用git或rsync到外部服务器。若VPS面板支持快照,关键改动前创建快照。定期测试恢复流程,至少每月一次。
13.
性能与安全加固的额外建议
- 关闭不必要服务:sudo systemctl disable --now 服务名。- 限制root权限与sudo日志审计,编辑 /etc/sudoers.d/。- 启用SELinux(CentOS)或AppArmor(Ubuntu)并配置策略。- 设置内核安全参数:编辑 /etc/sysctl.conf,如 net.ipv4.ip_forward=0, net.ipv4.conf.all.rp_filter=1,然后 sudo sysctl -p。
14.
部署检查清单(上线前必做)
逐项检查:SSH密钥能用、root登录已禁、只开放必要端口、防火墙规则正确、fail2ban生效、自动更新启用、证书有效并有续期机制、备份可用与恢复测试通过、监控告警配置完毕。记录所有变更到版本控制或运维文档。
15.
问:新手如果误操作导致无法SSH连接应如何恢复?
A:立即使用VPS厂商面板的控制台(或救援模式)登录,检查 /etc/ssh/sshd_config 是否有语法错误(sudo sshd -t 可测试),查看防火墙规则并临时允许22:sudo ufw allow 22 或 firewall-cmd --add-port=22/tcp --permanent && firewall-cmd --reload,恢复原始配置后重启sshd。
16.
问:如何在香港VPS上降低被国内IP段扫描的风险?
A:通过fail2ban限制失败尝试、使用更改后的SSH端口、仅允许特定IP段登录(sudo ufw allow from 你的IP to any port 2202)或部署VPN/跳板机;同时可在防火墙加入国家IP黑名单(需谨慎)或使用云端WAF做前端过滤。
17.
问:是否需要在香港VPS上启用IPv6,安全性如何处理?
A:启用IPv6可提升连接兼容性,但要同样在防火墙中配置IPv6规则(ufw allow ssh/tcp 会同时配置ipv6),并确保 fail2ban 针对 ip6tables 生效。若不使用IPv6,可在网络配置中禁用以减少暴露面。
来源:部署建议 新手购买香港的vps后如何快速完成系统与安全配置