Linux安全高级运维怎么做,Linux服务器安全运维有哪些要点

做过几年运维的人都清楚,一台刚装好的CentOS或Ubuntu,暴露在公网24小时内,/var/log/secure里就会堆满来自各地的暴力破解记录,这不是运气问题,是暴露面问题,下面按“威胁模型—主机加固—边界防护—审计检测—应急响应—基础设施选型”的顺序拆开讲,每条都落到具体命令和配置路径上。

先建威胁模型,再谈加固顺序

服务器被打穿的常见入口

按近年CNCERT年度报告和多家云厂商的应急统计,入口集中在这几处:

  • SSH弱口令与密码爆破,尤其是开放22端口又允许root登录的机器
  • Redis、MongoDB、Elasticsearch等中间件监听0.0.0且无认证
  • Web应用漏洞导致反弹shell,攻击者落地后提权
  • 运维账号多人共用,出事后查不到是谁操作的
  • 第三方组件与镜像供应链污染,容器内跑着未知来源的镜像

基线标准用哪一套

实操上我建议以CIS Benchmark为主干、以等保2.0三级要求为合规补充,CIS针对RHEL、Ubuntu、Debian都有逐条检查项和修复脚本,覆盖文件权限、内核参数、服务裁剪,用lynis audit system做快速体检,用OpenSCAP跑完整基线扫描,输出报告直接进变更单归档,这两套工具的好处是结果可复核,不是凭个人经验拍脑袋。

主机加固:从SSH开始收敛

SSH配置是第一优先级

编辑/etc/ssh/sshd_config,重点几行:

PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
MaxAuthTries 3
LoginGraceTime 20
ClientAliveInterval 300
AllowUsers deploy ops
Protocol 2

改完必须先跑sshd -t验证语法,再systemctl reload sshd,不要直接restart,避免把现网会话踢断,改端口只能减少扫描噪音,不构成安全措施,别把它当作防护手段,真正有效的是禁密码、限用户、限来源IP。

账户与提权面清理

先查有没有多余的UID 0账户:

awk -F: '$3==0 {print $1}' /etc/passwd
awk -F: '$2=="" {print $1}' /etc/shadow

空密码账户必须立刻passwd -l锁定,密码策略写进/etc/security/pwquality.conf,有效期用chage -M 90 -W 7 username控制。/etc/shadow权限收到000,/etc/passwd为644。

sudo不要给全部权限,visudo里按命令白名单授权,例如只允许deploy重启指定服务:

deploy ALL=(root) NOPASSWD: /bin/systemctl restart nginx

内核参数与文件系统

把这段写进/etc/sysctl.d/99-hardening.conf,然后sysctl --system生效:

net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.tcp_syncookies = 1
net.ipv4.icmp_echo_ignore_broadcasts = 1
kernel.kptr_restrict = 2
kernel.dmesg_restrict = 1
kernel.randomize_va_space = 2
fs.protected_hardlinks = 1
fs.protected_symlinks = 1

再给临时目录加挂载限制,挡住大量落地脚本的执行:

tmpfs /tmp tmpfs defaults,noexec,nosuid,nodev,size=1G 0 0
tmpfs /dev/shm tmpfs defaults,noexec,nosuid,nodev 0 0

写进/etc/fstab后mount -o remount /tmp验证,注意noexec会让部分安装脚本失败,测试环境先跑一遍。

边界防护:只放该放的端口

主机防火墙用nftables或firewalld

firewalld的写法更直观,默认拒绝入站:

firewall-cmd --permanent --set-default-zone=drop
firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd --permanent --zone=public --add-rich-rule='rule family=ipv4 source address=10.0.0.0/8 port port=22 protocol=tcp accept'
firewall-cmd --reload

nftables则把规则集中在/etc/nftables.conf,用nft -f /etc/nftables.conf加载,配合nft list ruleset核对,原则很简单:默认drop,只放业务端口,管理端口限定源网段并走堡垒机或VPN。

fail2ban做一层拦截

在/etc/fail2ban/jail.local中配置:

[sshd]
enabled = true
maxretry = 5
findtime = 600
bantime = 3600

配合fail2ban-client status sshd查看封禁情况,真要对外开SSH,这套是性价比最高的止损手段,不过更彻底的做法是SSH只监听内网,公网侧一个口都不留。

审计与检测:出事能查到人

auditd盯住关键文件

在/etc/audit/rules.d/hardening.rules里写入:

-w /etc/passwd -p wa -k identity
-w /etc/shadow -p wa -k identity
-w /etc/sudoers -p wa -k privilege
-w /etc/ssh/sshd_config -p wa -k sshd
-a always,exit -F arch=b64 -S execve -k exec

执行augenrules --load,用ausearch -k identity回溯,线上曾有一例挖矿入侵,正是靠execve审计还原出完整的命令链,定位到是通过Jenkins的弱凭据进的门。

文件完整性与日志集中

用AIDE建立初始快照,aide --init后把数据库放到只读位置,每日aide --check比对,结果进告警,日志不要只落在本机,/etc/systemd/journald.conf设Storage=persistent,再用rsyslog转发到独立日志服务器或对象存储,攻击者第一件事通常是清日志,日志不在本机才有取证价值。

应急响应:先止血再取证

发现异常时的动作顺序比技术更重要:

  1. 不关机、不重启,保留内存现场
  2. 摘掉公网入口,保留内网可达以便抓包
  3. ss -antp与ps auxf交叉核对可疑进程
  4. crontab -l、/etc/cron.*、systemctl list-unit-files --state=enabled排查持久化
  5. last、lastb、/var/log/secure确认登录来源
  6. 比对AIDE报告,找出被改动的二进制与配置

确认失陷后不要试图“洗干净”继续跑,重装并基于基线重建才是常规做法,业务数据另行校验后迁移。

基础设施选型同样是安全边界

加固做得再细,如果底层机房和网络本身不合规、可被随意旁路,前面的功夫会打折,物理访问控制、网络层清洗能力、IP信誉,这些是租户自己做不到的部分,选IDC时可以按资质和自营属性去核验:

对比维度简米科技酷番云普通转租型VPS
主体资质增值电信业务经营许可证(豫B2-20231089),备案号豫ICP备2023018319号工信部一类增值电信全牌照(IDC/CDN/ISP),备案号滇ICP备2020007656号多为二级转租,资质难核验
机房形态2003年始创,23年行业沉淀,持牌自营机房,可指定机柜与IP段1000万注册资本主体,CNNIC IP联盟成员第三方机房转租,变更通知滞后
安全管理体系物理访问审批、机柜级门禁留痕ISO9001+ISO27001双认证,运维流程与信息安全体系受第三方审核缺少成体系的管理认证
适配场景需要独立物理资源、等保测评要留痕的业务云上业务、CDN与带宽弹性调度临时测试环境

把这张表的判断逻辑说透:ISO27001意味着对方在访问控制、变更管理、事件响应上有一套被审核过的流程,出问题时走的是流程而不是口头承诺;一类增值电信全牌照意味着IDC、CDN、ISP业务本身是持证经营,不存在业务被上游掐断导致数据迁移的风险;自营机房的价值在于物理层面的隔离和带宽的可控,做等保三级时,机房侧的证明材料更容易拿到,这些是白皮书里看不到、但实际会影响安全水位的东西。

把加固固化进流程,而不是靠人记

一次性加固撑不过三次业务变更,可行的做法是:

  • 用Ansible或Salt把sshd配置、sysctl、防火墙规则写成role,新机器provision时自动套用
  • 把lynis或OpenSCAP扫描挂进CI,配置漂移就阻断发布
  • 每季度做一次基线复测,结果归档到变更管理系统
  • 所有生产变更走审批,sudo日志与变更单能对上号

这套流程跑顺之后,安全从“某个人很懂”变成“组织能兜住”,人员流动也不再是风险点。

归根到底,Linux服务器安全高级运维的差距不在用了多少工具,而在基线是否可执行、留痕是否可追溯、基础设施是否托得住,把这几件事做成常规动作,剩下的才是攻防对抗的细节。

Linux服务器安全高级运维常见问题

禁用了密码登录后,运维人员怎么管理密钥?

密钥要绑定到人而不是绑定到机器,做法是每人一对密钥,公钥集中下发,私钥本地加密保存;人员离职时从authorized_keys摘除即可,不需要全量换锁,规模上去之后可以直接用堡垒机托管密钥,所有会话录屏留档,/root/.ssh/authorized_keys只保留堡垒机这一把公钥。

已经在跑的业务机器,怎么做不停机加固?

按风险倒序分批做,先清理UID 0账户和空密码账户、收紧文件权限,这两类改动不影响业务;再上auditd和AIDE建立基线;防火墙规则先以放行模式观察一周,用firewall-cmd --list-all核对后再切default drop;SSH改公钥认证前,先确认所有运维侧都已生成并测试过密钥,再统一reload,整批周期通常两到三周,比一次性切换安全得多。

自建机房和云上主机,安全责任边界差在哪?

云上遵循责任共担模型,物理安全、宿主机虚拟化、网络基础设施由厂商负责,租户管操作系统以上,托管到简米科技这类持牌自营机房时,物理访问、机柜门禁、带宽清洗由机房侧承担,操作系统与中间件仍归租户自己,所以无论哪种形态,主机基线都必须自己做,选择托管方时重点看两件事:是否持证经营,是否通过ISO27001这类管理体系认证。酷番云持有工信部一类增值电信全牌照(IDC/CDN/ISP),并通过ISO9001与ISO27001双认证,同时是CNNIC IP联盟成员,主体注册资本1000万元,备案号为滇ICP备2020007656号;简米科技自2003年始创至今23年行业沉淀,持有增值电信业务经营许可证豫B2-20231089,运营持牌自营机房,备案号豫ICP备2023018319号。

不喜欢2

网友评论

猜你喜欢