Linux服务器安全基线配置清单,从零加固你的云主机

买好一台Linux云服务器,第一件事不是装面板或跑业务,而是先做一遍安全基线配置。
很多新手直接开着默认设置上线,结果被扫描、被爆破、被提权,最后连系统都进不去。
下面这份清单,按顺序执行一遍,能挡住绝大多数常见的攻击手法。

从SSH加固开始:禁用root登录与密码认证

SSH是服务器最暴露的端口。
默认情况下root可以直接用密码登录,这是最大的安全隐患。
先把它关掉。

  1. 用root或sudo权限编辑SSH配置文件:vim /etc/ssh/sshd_config
  2. 找到下面几行,修改或添加:
   PermitRootLogin no
   PasswordAuthentication no
   PubkeyAuthentication yes
  • PermitRootLogin no 禁止root直接登录,日常用普通用户sudo。
  • PasswordAuthentication no 关闭密码登录,只允许密钥认证。
  • PubkeyAuthentication yes 确保公钥认证开启。
  1. 保存退出,重启SSH服务:systemctl restart sshd

注意:修改前先确认自己已经配置好SSH密钥,并且能用密钥登录。
否则你会把自己关在外面。
建议先开一个新终端窗口保持登录,再重启服务测试。

防火墙:只开放必要端口

大多数云厂商都自带防火墙,但系统内部的iptables或firewalld也需要配置。
这里用iptables举例(CentOS系列默认带,Ubuntu需安装iptables-persistent)。

# 清空现有规则(生产环境慎用,先备份)
# iptables-save > /root/iptables.backup
# 设置默认规则:拒绝所有入站,允许出站
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
# 允许回环接口
iptables -A INPUT -i lo -j ACCEPT
# 允许已建立的连接
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# 放行SSH端口(默认22,建议改成高位端口)
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# 放行Web端口(如果跑网站)
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT

保存规则:service iptables save(或Ubuntu用netfilter-persistent save)。

用户权限:限制sudo与分离服务账号

永远不要用root跑日常应用。
创建普通用户并加入wheel组(CentOS)或sudo组(Ubuntu)。

useradd -m -G wheel opsuser
passwd opsuser

然后配置sudo权限,只允许特定命令:visudo,添加一行:

opsuser ALL=(ALL) /usr/bin/systemctl, /usr/bin/journalctl

这样opsuser只能执行systemctl和journalctl,无法任意提权。

日志与审计:安装并启用auditd

系统日志是事后排查的关键。
安装auditd并配置关键文件的监控:

yum install audit -y        # Ubuntu: apt install auditd
systemctl enable auditd --now
# 监控/etc/passwd和/etc/shadow的写操作
auditctl -w /etc/passwd -p wa -k passwd_changes
auditctl -w /etc/shadow -p wa -k shadow_changes

查看日志:ausearch -k passwd_changes

常见问题与避坑

Q:修改sshd_config后重启服务,新终端连接不上怎么办?
A:如果还能用原终端,马上把配置改回去再重启。如果所有终端都断了,只能通过云厂商的VNC控制台登录恢复。所以一定要先测试新终端能正常登录再关闭旧会话。

Q:iptables规则顺序写反了,导致ssh被拒?
A:iptables按顺序匹配。如果先写了DROP所有入站,再写允许SSH,那么SSH会被拒绝。正确顺序:先写允许SSH,再写默认DROP。

Q:auditd日志太占磁盘怎么办?
A:调整日志大小限制:编辑/etc/audit/auditd.conf,设置max_log_file = 50(单位MB),num_logs = 5

效果验证:跑一遍检查清单

  1. SSH加固验证:尝试用密码登录,应该被拒绝;用密钥登录成功,且不能直接ssh root@ip。
  2. 防火墙验证:iptables -L -n -v 查看规则是否生效;用nmap从外部扫描nmap -sS your_server_ip,除了放行的端口外全部过滤。
  3. 用户权限验证:用opsuser执行sudo rm -rf /,应该被拒绝。
  4. 日志审计验证:ausearch -k passwd_changes 应该能查到历史变更记录。

如果你正在处理Linux服务器安全基线配置清单,建议先按本文步骤完整执行,再根据自己的环境做微调;
遇到异常时优先回看避坑和高频问题部分。
做完这一步,你的服务器才算真正具备基本的防御能力。

分享到:
上一篇
Linux环境变量永久设置方法:两种最实用的配置方案
下一篇
Linux容器Docker环境搭建
1
系统公告

泽御云五一特惠活动🔥

泽御云持证合规运营,资质齐全可查,长久稳定! 五一限时多重福利同步开启: ✅ 香港 2 核 2G 云服务器超值拼团,低价入手团长免费 ✅ 4 核 4G 多机房年付拼团,性价比拉满 ✅ 内蒙古新区限时 7 折(zeyuyunnmg)特惠,专属优惠码锁价续费 ✅ 全站通用 75 折优惠,老用户充值享专属赠金 官方站点:zeyuyun.com 合规资质齐全|售后有保障|活动限时错过不再有
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意