Linux安全能力提升路径_长期防护思维说明【指导】

发布时间 - 2025-12-31 00:00:00    点击率:
默认 sudo 配置不等于安全,因 %wheel ALL=(ALL) NOPASSWD: ALL 等宽松策略易被滥用;需最小化授权、限定命令路径、启用日志审计与 seccomp-bpf 等深度防护措施。

为什么默认的 sudo 配置不等于安全

很多管理员以为只要开了 sudo、禁了 root 登录,系统就算“加固”了。实际上,/etc/sudoers 里一行 %wheel ALL=(ALL) NOPASSWD: ALL 就足以让任意 wheel 成员绕过所有命令级约束,执行 sudo setcap 'cap_net_bind_service+ep' /usr/bin/python3 后直接监听 80 端口——这和拥有 root 权限几乎无异。

真正需要做的是最小化授权:

  • visudo -f /etc/sudoers.d/app-deploy 拆分策略,避免主文件被误改
  • 显式限定命令路径:deployer ALL=(www-data) /usr/bin/systemctl start nginx,禁用通配符和 shell 元字符
  • requirettyenv_reset,防止伪终端逃逸和环境变量污染
  • 启用 sudo_logfile 并轮转日志,否则攻击者删掉 /var/log/sudo.log 就没痕迹

seccomp-bpf 不是容器专属,普通服务也能用

很多人只在 Docker 的 --security-opt seccomp=... 里见过 seccomp-bpf,但 systemd 从 v245 起就支持为任意 service 单独加载过滤器。比如运行一个只读配置解析器,完全不需要 openat 以外的文件操作,更不该调用 execvesocket

实操步骤:

  • libseccomp 工具生成策略:scmp_bpf_compile -m 2 -o nginx-seccomp.bpf nginx-seccomp.json
  • 在 service 文件中添加:SystemCallFilter=@system-service @file-system ~@privileged ~@mount
  • 注意:@system-service 是白名单组,不是通配符;漏掉 clock_gettimegetrandom 可能导致进程启动失败
  • 测试时先加 SystemCallErrorNumber=EPERM,避免直接 kill 进程,方便抓 syscall 日志

SSH 登录后第一件事不是改密码,而是查 ~/.ssh/authorized_keysPAM 模块链

入侵者很少暴力破解密码,更多是复用已有密钥或通过 PAM 模块注入。一次看似正常的登录,背后可能是 auth [success=done] pam_exec.so /usr/local/bin/pam-backdoor.sh 在静默执行。

应立即检查:

  • grep -r "pam_exec\|pam_python" /etc/pam.d/ —— 非标准模块需人工审计
  • ssh-keygen -l -f ~/.ssh/authorized_keys 查看密钥指纹,比对上次备份
  • systemctl show sshd | grep -i "pam\|permit" 确认未启用 PermitRootLogin yesPasswordAuthentication yes
  • 检查 /etc/ssh/sshd_config 中的 AuthorizedKeysCommand,它可能动态拉取远程密钥列表

日志不是存着就行,journald 默认配置会丢关键事件

journalctl --since "2 hours ago" 查不到东西?大概率是 Storage=volatile(默认值),所有日志只存在内存里,重启即清空。更隐蔽的问题是 RateLimitIntervalSecRateLimitBurst 过严,导致暴力破解尝试被合并成一条 “Failed password for user”,掩盖真实攻击频次。

必须调整的几项:

  • 编辑 /etc/systemd/journald.conf,设 Storage=persistent 并确认 /var/log/journal/ 目录存在且属 root:systemd-journal
  • 加大速率限制:RateLimitIntervalSec=30sRateLimitBurst=10000,避免漏记高频登录失败
  • 启用字段过滤:ForwardToSyslog=yes + rsyslog 转发到远程服务器,本地日志仍可被删,远程不可逆
  • 定期用 journalctl --verify 检查日志完整性,返回非零码说明有篡改或损坏

长期防护不是堆工具,是持续验证每个环节是否真在生效——比如改完 sudoers 后,立刻用受限用户跑一遍预期命令;加了 seccomp 就用 strace -e trace=all 看实际调用是否被拦截;连上 SSH 后第一行命令永远是 sudo journalctl -n 20 --no-pager,而不是急着改配置。


# linux  # word  # python  # js  # json  # go  # docker  # nginx  # app  # 端口  # 工具  # ai  # 环境变量  # for  # volatile  #   # var  # 事件  # ssh  # 的是  # 不需要  # 已有  # 见过  # 很多人  # 开了  # 一遍  # 就行  # 就没  # 问题是 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251811 】 【 AI营销90571


相关推荐: Laravel如何使用Spatie Media Library_Laravel图片上传管理与缩略图生成【步骤】  无锡营销型网站制作公司,无锡网选车牌流程?  如何快速搭建自助建站会员专属系统?  UC浏览器如何设置启动页 UC浏览器启动页设置方法  Python自动化办公教程_ExcelWordPDF批量处理案例  在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?  Java类加载基本过程详细介绍  如何在阿里云高效完成企业建站全流程?  Laravel Eloquent性能优化技巧_Laravel N+1查询问题解决  Laravel如何使用查询构建器?(Query Builder高级用法)  如何快速完成中国万网建站详细流程?  Laravel控制器是什么_Laravel MVC架构中Controller的作用与实践  Laravel怎么进行数据库事务处理_Laravel DB Facade事务操作确保数据一致性  Laravel怎么清理缓存_Laravel optimize clear命令详解  焦点电影公司作品,电影焦点结局是什么?  个人摄影网站制作流程,摄影爱好者都去什么网站?  成都品牌网站制作公司,成都营业执照年报网上怎么办理?  利用python获取某年中每个月的第一天和最后一天  如何自定义safari浏览器工具栏?个性化设置safari浏览器界面教程【技巧】  Laravel如何实现全文搜索_Laravel Scout集成Algolia或Meilisearch教程  jquery插件bootstrapValidator表单验证详解  Android 常见的图片加载框架详细介绍  Bootstrap整体框架之JavaScript插件架构  Python制作简易注册登录系统  PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)  如何在万网主机上快速搭建网站?  新三国志曹操传主线渭水交兵攻略  Laravel路由Route怎么设置_Laravel基础路由定义与参数传递规则【详解】  想要更高端的建设网站,这些原则一定要坚持!  laravel怎么在请求结束后执行任务(Terminable Middleware)_laravel Terminable Middleware请求结束任务执行方法  Edge浏览器如何截图和滚动截图_微软Edge网页捕获功能使用教程【技巧】  Laravel表单请求验证类怎么用_Laravel Form Request分离验证逻辑教程  Google浏览器为什么这么卡 Google浏览器提速优化设置步骤【方法】  Laravel的HTTP客户端怎么用_Laravel HTTP Client发起API请求教程  如何用免费手机建站系统零基础打造专业网站?  Laravel怎么做缓存_Laravel Cache系统提升应用速度的策略与技巧  Laravel如何使用Contracts(契约)进行编程_Laravel契约接口与依赖反转  Laravel如何实现模型的全局作用域?(Global Scope示例)  北京网站制作的公司有哪些,北京白云观官方网站?  Laravel怎么设置路由分组Prefix_Laravel多级路由嵌套与命名空间隔离【步骤】  logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?  Javascript中的事件循环是如何工作的_如何利用Javascript事件循环优化异步代码?  网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?  JavaScript常见的五种数组去重的方式  微信小程序 canvas开发实例及注意事项  *服务器网站为何频现安全漏洞?  如何在自有机房高效搭建专业网站?  如何快速搭建高效WAP手机网站吸引移动用户?  JavaScript实现Fly Bird小游戏  高防服务器:AI智能防御DDoS攻击与数据安全保障