隐私安全合规配置服务器指南:零基础实操步骤详解
隐私安全合规配置服务器指南:零基础实操步骤详解
刚买的服务器直接裸奔跑业务,
一旦被扫描到弱密码或开放端口,
轻则被植入挖矿程序,
重则数据泄露面临合规处罚。隐私安全合规配置服务器并不是高深的技术,
只要按顺序做完下面几件事,
就能让攻击者无从下手。
准备条件与前提
- 一台全新或已重置的 Linux 服务器(本文以 CentOS 7/8 和 Ubuntu 20.04/22.04 为例,命令兼容)。
- 使用 SSH 客户端(如 Windows 的 Putty、Mac 的终端)连接服务器。
- 提前记下服务器公网 IP 和 root 密码。
- 操作前建议先创建快照或备份,避免误操作后无法回退。
第一步:修改 root 密码并创建普通用户
连接服务器后,立即执行以下命令修改 root 密码(避免默认或弱口令):
passwd
接着创建一个日常使用的普通用户(例如 op),并赋予 sudo 权限:
useradd -m -s /bin/bash op
passwd op
usermod -aG wheel op # CentOS 使用 wheel 组
# Ubuntu 则用:usermod -aG sudo op
后续操作都使用 op 用户登录,只在需要管理员权限时用 sudo。
第二步:配置 SSH 密钥认证并禁用密码登录
这是隐私安全合规配置的最关键一步。
先在本地电脑生成密钥对(Windows 用 Git Bash 或 PowerShell,Mac/Linux 用终端):
ssh-keygen -t ed25519 -C "your_email@example.com"
将公钥 ~/.ssh/id_ed25519.pub 内容复制到服务器的 /home/op/.ssh/authorized_keys 中(如果目录不存在先创建 mkdir -p ~/.ssh && chmod 700 ~/.ssh)。
然后编辑 SSH 配置文件:
sudo vim /etc/ssh/sshd_config
修改或添加以下内容:
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
保存后重启 SSH 服务:
sudo systemctl restart sshd
避坑提醒:在断开当前连接前,另开一个终端窗口用密钥登录测试,确认能成功登录后再关闭原会话。一旦密码登录被禁用且密钥未配置好,你会被锁在服务器外。
第三步:配置防火墙只放行业务端口
仅允许必要的端口能大幅减少攻击面。
使用 firewalld(CentOS)或 ufw(Ubuntu)来实现:
# CentOS / RHEL
sudo systemctl start firewalld
sudo systemctl enable firewalld
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --permanent --add-port=443/tcp
sudo firewall-cmd --reload
# Ubuntu
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
避坑提醒:千万不要忘记放行 SSH 端口(一般 22),否则你将失去远程连接。如果换了端口,请使用实际端口号。
第四步:安装 Fail2ban 防止暴力破解
即使禁用了密码登录,也建议安装 Fail2ban 作为第二道防线,它能自动封禁连续登录失败的 IP。
sudo apt install fail2ban -y # Ubuntu
sudo yum install fail2ban -y # CentOS
让系统默认配置生效:
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
检查状态:
sudo fail2ban-client status
避坑提醒:如果后期改了 SSH 端口,记得修改/etc/fail2ban/jail.local中的port参数,否则封禁规则会失效。
高频问题与避坑汇总
问题1:重装系统后连不上服务器怎么办?
答:如果只配置了密钥登录,重装后公钥丢失,必须通过云服务商的控制台 VNC 或救援模式修改 sshd_config 临时开启密码登录,重新上传公钥后再关闭。
问题2:防火墙启用后业务端口访问不了?
答:先用 curl localhost:端口 测试本地,再用在线端口检测工具测试公网;确认防火墙规则已添加且重载。
问题3:普通用户 sudo 执行命令报错“不在 sudoers 文件中”?
答:检查 usermod 命令是否正确,如果用 Ubuntu 需加入 sudo 组而非 wheel 组。也可手动编辑 /etc/sudoers 添加用户。
效果验证:检查配置是否真的生效
- 验证密钥登录生效:断开当前 SSH,用
ssh op@你的IP -i ~/.ssh/id_ed25519测试,能够无密码登录即为成功。 - 验证密码登录被禁:故意输入错误密码,应立刻被拒绝;或从另一台机器使用密码认证方式连接,会返回
Permission denied (publickey)。 - 验证防火墙:
sudo firewall-cmd --list-all(CentOS)或sudo ufw status verbose(Ubuntu),确认只开放了必要端口。 - 验证 Fail2ban:模拟多次错误登录后,执行
sudo fail2ban-client status sshd,会看到被封禁的 IP 列表。
完成以上配置后,你的服务器已初步满足隐私安全合规配置服务器的基本要求。
后续建议定期更新系统补丁、审计日志,并在需要时启用 SELinux/AppArmor 等强制访问控制。
如果遇到异常,优先回看本文的避坑部分,大部分问题都能自己解决。