1. 初始化与基线配置
• 创建非root管理员用户并禁用root直接登录:执行:
adduser alice
usermod -aG sudo alice
passwd -l root
• 更新系统与启用自动更新:Debian/Ubuntu 执行:
apt update && apt upgrade -y
apt install unattended-upgrades -y
dpkg-reconfigure --priority=low unattended-upgrades
• 删除不必要软件:使用包管理器列出并移除(举例):
apt remove --purge telnet rsh ypbind samba -y
(小分段:确保只安装需要的服务,记录变更以便回滚。)
2. SSH 安全强化
• 生成密钥并强制密钥登录:在本地生成:
ssh-keygen -t ed25519 -C "your@addr"
ssh-copy-id -i ~/.ssh/id_ed25519.pub alice@your_vps
• 修改 /etc/ssh/sshd_config(示例关键项):
PermitRootLogin no
PasswordAuthentication no
ChallengeResponseAuthentication no
PubkeyAuthentication yes
Port 2222
AllowUsers alice
• 重启 SSH:
systemctl restart sshd
(小分段:先保持另一个会话,确认能登录再断开,避免锁死自己。)
3. 防火墙与网络规则(iptables / nft / ufw 示例)
• 建议默认拒绝,允许必要端口。ufw 示例:
ufw default deny incoming
ufw default allow outgoing
ufw allow 2222/tcp
ufw allow 80,443/tcp
ufw enable
• iptables/nftables 更细粒度限速:示例 nftables 限制 SSH 连接数:
nft add table inet filter
nft add chain inet filter input { type filter hook input priority 0 \; }
nft add rule inet filter input tcp dport 2222 ct state new limit rate 6/minute accept
nft add rule inet filter input tcp dport 2222 drop
(小分段:部署后用 ss -tulnp 检查端口,iptables-save/nft list ruleset 保留规则。)
4. 抵御暴力破解与非法登录
• 安装并配置 fail2ban:
apt install fail2ban -y
cat >/etc/fail2ban/jail.d/ssh.local <<'EOF'
[sshd]
enabled = true
port = 2222
maxretry = 5
bantime = 3600
EOF
systemctl restart fail2ban
• 可结合 pam_tally2 或 faillock,设置登录锁定策略。
(小分段:监控 /var/log/auth.log,设置邮件告警用于重要账号的多次失败。)
5. 文件系统与权限加固
• 限制临时目录执行:编辑 /etc/fstab,给 /tmp /var/tmp 加上 noexec,nosuid,nodev,例如:
tmpfs /tmp tmpfs rw,nosuid,nodev 0 0
• 检查并修复 SSH 权限:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
• 清理 SUID/SGID 风险:列出并评估:
find / -perm /6000 -type f -exec ls -l {} \;
(小分段:对必要二进制做审核,删除或替换可疑文件,记录修改。)
6. 内核与系统级硬化
• 修改 /etc/sysctl.conf 或 /etc/sysctl.d/99-hardening.conf 示例关键项:
net.ipv4.ip_forward = 0
net.ipv4.conf.all.rp_filter = 1
net.ipv4.tcp_syncookies = 1
net.ipv4.conf.all.accept_source_route = 0
• 启用 SELinux 或 AppArmor(视发行版而定),并将策略设为 enforcing。
(小分段:sysctl -p 立即生效,重启后仍保持,记录修改并测试生产流量影响。)
7. 日志、监控与备份
• 配置集中日志:安装 rsyslog/rsyslog-gnutls,向远程日志服务器发送日志;或使用 syslog-ng。
• 部署监控与告警:简单选项 netdata,生产级可用 Prometheus + node_exporter + Alertmanager。
• 自动备份策略:每日全量/增量备份,示例用 rsync 或 Borg:
borg init --encryption=repokey /backups/repo
borg create /backups/repo::'{hostname}-{now}' /etc /var/www
(小分段:定期演练恢复流程,备份保存在不同数据中心或对象存储。)
8. Web 与应用层常见攻击防护
• Web 应用防火墙(WAF):部署 ModSecurity + CRS,对常见注入、XSS、文件上传攻击做规则拦截。
• Nginx 限流配置示例:
http {
limit_req_zone $binary_remote_addr zone=one:10m rate=5r/s;
server {
location /login {
limit_req zone=one burst=10 nodelay;
}
}
}
• 对上传功能做白名单检测、文件类型校验、隔离存储(不要直接放在可执行目录)。
(小分段:结合日志分析及时调整 WAF 规则,避免误报影响业务。)
9. 恶意软件检测与应急响应
• 安装 AIDE、rkhunter、chkrootkit 做定期扫描:
apt install aide rkhunter chkrootkit -y
aideinit
rkhunter --update
rkhunter --check
• 建立简单应急流程:检测→隔离(断网或加白名单)→采集证据(网络包、内存镜像、系统快照)→清理/重建。
(小分段:定期演练恢复步骤,保留快照和备份用于回滚。)
10. 问答:试用期VPS在台湾公网环境首要注意什么?
在台湾或任何公网环境首要注意的是尽快完成基线安全配置:更新系统、创建非root用户、禁用root SSH、启用密钥登录、设置防火墙和 fail2ban,并保证日志能远程备份。试用期网络流量可能不稳定或被扫描,建议尽快关闭不必要端口并使用白名单IP策略。
11. 问答:如何应对小规模DDoS或异常流量突发?
第一时间启用防火墙限速规则(nftables/iptables limit/hashlimit),如果是HTTP可开启 Nginx 限流并启用 CDN(Cloudflare、Akamai)做边缘过滤;向服务商申请临时流量清洗或使用云端流量清洗服务。保留流量日志以便判定攻击特征并在规则中封堵源IP或ASN。
12. 问答:如果怀疑机器被攻破,应立即做哪些操作?
立即执行:断开外网或切换到隔离网络,保留内存与磁盘镜像采集证据,导出关键日志(/var/log/)、列出运行进程与网络连接(ps aux; ss -tunap),不要重启服务以免丢失痕迹,然后在安全环境中分析或直接使用最近的备份重建系统并更改所有凭据。
来源:台湾vps试用物理机安全加固建议与常见攻击防护措施