加入收藏 | 设为首页 | 会员中心 | 我要投稿 站长网 (https://www.024zz.com.cn/)- 区块链、CDN、AI行业应用、人脸识别、应用程序!
当前位置: 首页 > 搭建环境 > Linux > 正文

Linux安全环境搭建:15年工程师实战指南

发布时间:2026-10-28 11:08:22 所属栏目:Linux 来源:DaWei
导读:  去年3月,甲方说“要上新系统”,运维组三个人蹲在机房里改iptables规则,空调外机哐哐响,像里面塞了半袋螺丝钉。我正调fail2ban的jail.local,王工接了个电话,听筒漏音出来:“…对,我妈摔了…嗯,骨裂…挂了啊。”他把手机倒

  去年3月,甲方说“要上新系统”,运维组三个人蹲在机房里改iptables规则,空调外机哐哐响,像里面塞了半袋螺丝钉。我正调fail2ban的jail.local,王工接了个电话,听筒漏音出来:“…对,我妈摔了…嗯,骨裂…挂了啊。”他把手机倒扣在防火墙日志打印纸上,纸边卷了毛边。


文章配图,仅供参考

  优胜劣汰?呵。不是淘汰弱者,是淘汰不骂人的、不抢root密码的、不删/var/log/audit的。上周五我见一个刚毕业的小子,配置完SELinux策略,还顺手写了份README——第三行就写“本策略允许nginx读取/tmp/”。我抽了张A4纸,在背面画了个叉,塞进他咖啡杯底下。他没看见,杯子底下压着半块冷掉的蛋黄酥,糖霜沾在纸角上。


  你信不信,真正在用的防火墙规则,八成以上是三年前留下的,加了一行注释:“临时放开8081,等测试完删”,结果测试完了,人跑了,那行规则还在那儿晒太阳。我们删过三次,三次都被Ansible回滚——因为某台旧DB的监控脚本硬编码了那个端口,而脚本作者早去搞区块链了。这不算什么,算什么的是:去年3月那天,我在centos7上执行systemctl daemon-reload之后,sshd连不上了。不是配置错,是journalctl日志轮转把/var/log/journal撑爆,df -h显示100%,但systemd-journald死活不报错,只在syslog里甩了句“Failed to write entry (28)”,二十八?二十八什么?谁他妈记得errno 28是ENOSPC。


  我原以为改完grub的kernel参数加rd.plymouth=0 quiet就完事,结果重启卡在initramfs,黑屏三分钟,最后发现是某个驱动模块加载顺序错了,而这个模块的.ko文件名里有个中文破折号——对,就是全角的“——”,不是减号。没人敢动它,因为打包脚本是外包写的,他们用Notepad++保存时默认GBK,没人改过编码。老李蹲在角落啃包子,韭菜馅漏在GRUB_CMDLINE_LINUX_DEFAULT那行配置后面,油渍把“rhgb”两个字母糊成了“rhgb”。


  安全?安全是妥协的灰度带。你以为你锁死了ssh,其实.ssh/authorized_keys里第三行多了一个空格,导致密钥认证跳过;你以为你禁用了root远程登录,但su -c 'bash'的bash_profile里自动source /etc/profile.d/xxx.sh,里面有一行exec ssh-agent — 这个agent能绕过PAM限制续命十六小时。别信文档,信你的last -i输出,信你grep -r 'ssh.-o'翻出来的二十一个脚本,信你同事小陈昨天在钉钉发的截图——他把private key传到公司飞书云盘,文件名是“服务器密钥_备份_最终版_v2_final(1).pem”。


  机房窗台上落了层灰,下雨天潮气重,我摸了下交换机背板,指尖湿。隔壁柜子嗡嗡响,是那台三年没重启过的Zabbix proxy,它的/etc/cron.d/zabbix_agentd被改成每三秒跑一次check_disk,但crond没报错,只是把/var/spool/mail/root塞满了“disk usage unknown”的邮件。我删过两次,第三次干脆把它关了,插头拔下来那一刻,报警邮件停了,空调噪音突然变大。


  优胜劣汰?对。淘汰那些觉得“加固做完就能躺平”的,淘汰那些觉得“内网就不用做证书轮换”的,淘汰那些在ansible playbook里写when: ansible_distribution == "CentOS"却忘了还有"Rocky"和"AlmaLinux"的。但最该淘汰的,是去年3月我写的那份《最小权限实施清单》——第十七条写着“禁用所有无用TTY”,结果我忘了console=ttyS0在serial console里根本不是“无用”,它开着,才能看panic栈。这份清单现在还挂在Wiki首页,底下有条评论:“已验证失效”,发帖人叫zhangwei,头像是一只柴犬,尾巴翘得笔直。


  小陈刚才又来问怎么配firewalld rich rule嵌套limit,我说你先去看看nftables手册里第十二节的EXAMPLES,他点头走了,左脚鞋带散着。我没说——那个例子里的--limit-burst其实是错的,实际burst值在nft 1.0.5之前是固定3,文档没更新,也没人提issue。我不说,是因为提了也没用,他们merge pr的速度,比机房里那只死老鼠腐烂还慢。你见过鼠尸吗?就在冷通道尽头第二排底座缝里,四月开始臭,六月干瘪,七月只剩两颗门牙嵌在橡胶垫里。没人清,因为“不属于运维职责范围”,属于物业。物业说“请提交ITSM工单”,我们工单写了三次,编号分别是IT-2023-0661、IT-2023-0662、IT-2023-0663——全都关闭状态,原因写着“非紧急”,而“紧急”这个词,在他们的SLA里定义为“影响生产环境用户超过五百人”。


  我今天打算把所有服务账户的密码策略再推一遍,强制90天轮换。但我知道,下周就会有业务方拿K8s job yaml来找我,里面明文写password: ${SECRET_PASSWORD},而这个${SECRET_PASSWORD}其实是从ConfigMap里读的,ConfigMap又是从GitLab CI变量来的……所以最后还是明文。我不拦。我只把那行yaml复制下来,在本地vim里按i键,输了个#,回车,再输“此处应替换为vault动态secret”。存盘。不提交。就这么放着。让那行注释,跟桌上那盒开封三天的旺仔牛奶一起,慢慢结膜。

(编辑:站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!