系统安全加固怎么限制系统最大同时打开文件句柄数

秋墨同学_9341

秋墨同学_9341

2026-08-26

553人浏览

原创

linux系统安全加固中限制最大文件句柄数需用户级、systemd服务级、系统级三层协同配置,缺一不可:用户级通过/etc/security/limits.conf设置软硬限制并确保pam加载;systemd服务须单独配置limitnofile并重载;系统级通过fs.file-max设定全局上限,三者取最小值生效。

系统安全加固怎么限制系统最大同时打开文件句柄数

系统安全加固中限制最大同时打开文件句柄数,不是单纯“设小”来防攻击,而是通过合理设定上限,防止资源耗尽型拒绝服务(如恶意进程无限 open() 文件)、避免句柄泄漏导致服务僵死,并配合监控形成闭环。关键在于分层控制、留有余量、可审计——既不能过松引发失控,也不能过紧影响正常业务。

Linux:三层协同限制,缺一不可

Linux 的句柄限制是用户级、进程级、系统级三者取最小值生效,只改一处等于没改:

  • 用户会话级:编辑 /etc/security/limits.conf,为运行服务的用户(如 nginx、mysql)设置软硬限制:
    nginx soft nofile 65535
    nginx hard nofile 65535
    ⚠️ 必须确认 /etc/pam.d/common-session 含 session required pam_limits.so,且用户需重新登录才加载
  • systemd 服务级:对 systemctl 管理的服务(绝大多数现代服务),limits.conf 无效,必须单独配置:
    sudo systemctl edit nginx.service,写入:
    [Service]
    LimitNOFILE=65535

    执行 sudo systemctl daemon-reload && sudo systemctl restart nginx 生效
  • 系统全局池:防止所有进程加起来把内核句柄池打爆,调大 /proc/sys/fs/file-max:
    在 /etc/sysctl.conf 中追加:
    fs.file-max = 2097152
    运行 sudo sysctl -p 立即生效;建议值 ≥ 单进程最大值 × 预估并发进程数(如 65535 × 20 ≈ 130 万)

Windows:按场景选择约束方式

Windows 没有统一的“系统级句柄总数限制”,但存在多个实际瓶颈点,加固时应针对性封堵:

HTML5主机托管服务公司网站模板
HTML5主机托管服务公司网站模板

HTML5主机托管服务公司网站模板是一款从事主机托管服务公司宣传网站模板下载。提示:本模板调用到谷歌字体库,可能会出现页面打开比较缓慢。

下载
  • 单进程默认限制(C运行时):传统 C/C++ 程序默认最多 512 个 stdio 句柄(_getmaxstdio() 返回值)。可通过 _setmaxstdio(8192) 在程序启动时提升,适用于可控的自研服务
  • 会话级共享内存限制(最常触发瓶颈):注册表路径 HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\SubSystems 下的 SharedSection 值(如 1024,20480,262144),第三段即该会话所有进程句柄总配额。生产环境可设为 1024,20480,524288(51.2 万),但需同步增加物理内存与非分页池容量
  • 不推荐强行降低全局上限:Windows 无类似 Linux fs.file-max 的可调总池开关;硬性缩减 SharedSection 或降低进程虚拟内存配额,易导致系统组件(如 svchost、LSASS)异常,反而引入不稳定风险

加固后必须验证与监控

配置完成只是第一步,必须验证是否真正生效并持续观测:

  • Linux 查当前进程真实限制:
    cat /proc/$(pgrep nginx)/limits | grep "Max open files"
  • Linux 查系统已用句柄数:
    cat /proc/sys/fs/file-nr(输出三列:已分配、未使用、系统最大)
  • Windows 查指定进程句柄数:
    用 Process Explorer(Sysinternals 工具),右键进程 → Properties → Handles 标签页,实时查看数量及类型分布
  • 加入基础监控项:
    定时采集 /proc/sys/fs/file-nr 第一列(已分配)或 Windows 性能计数器 Process(*)\Handle Count,当连续 5 分钟 > 85% 上限时触发告警

安全加固中的常见误区

限制句柄数不是越小越安全,错误做法反而削弱系统韧性:

  • 仅修改 /etc/security/limits.conf 就认为“已加固”,却忽略 systemd 服务完全不读该文件
  • 把 fs.file-max 设得过低(如仍用默认 8192),高并发下整个系统无法新建 socket,表现为“服务假死”而非报错
  • 在 Windows 上盲目修改注册表试图“禁用句柄”,结果破坏会话管理器,导致远程桌面或服务登录失败
  • 未配套日志审计,当出现 Too many open files 错误时,无法快速定位是攻击行为、程序 bug 还是配置不足

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
服务器是什么
服务器是什么

服务器是一种计算机硬件设备或软件程序,它具有强大的计算和存储能力,用请求、存储数据和提供服务。它在互联网中着关重要的作用,为用户提供各种服务和资源。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.15

417

5

连接apple id服务器时出错
连接apple id服务器时出错

连接apple id服务器时出错的原因包括网络连接问题、服务器问题、Apple ID账户问题、设备问题、防火墙或安全软件问题、时间和日期设置问题、Apple服务器维护等。本专题为大家提供apple id相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.08

840

5

搭建互联网服务器
搭建互联网服务器

搭建互联网服务器需要:1、选择合适的硬件和操作系统,第一步是选择合适的硬件和操作系统;2、安装和配置操作系统,是搭建互联网服务器的关键步骤;3、安装和配置服务器软件,是搭建互联网服务器的下一步,常见的服务器软件包括Apache、Nginx、Tomcat等;4、配置防火墙和安全性,是搭建互联网服务器的重要步骤;5、域名解析和配置,是搭建互联网服务器的最后一步。

2023.09.19

2452

5

如何查看服务器状态
如何查看服务器状态

查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。本专题为大家提供服务器状态相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

836

5

服务器域名转接慢怎么解决
服务器域名转接慢怎么解决

服务器域名转接慢的解决办法有DNS优化、服务器优化、CDN加速、前端优化和网络优化等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.17

729

5

服务器评测软件
服务器评测软件

服务器评测软件有PassMark Software、CPU-Z、GPU-Z、CrystalDiskMark、IOmeter、JMeter、LoadRunner、Apache Bench等等。详细介绍:1、PassMark Software是一款综合性的服务器性能测试软件,可以评估服务器在各种负载条件下的性能;2、CPU-Z是一款可以提供服务器CPU详细信息的软件等等。

2023.10.17

374

3

如何开启TFTP服务器
如何开启TFTP服务器

开启TFTP服务器的步骤包括选择TFTP服务器软件、下载和安装软件、配置TFTP服务器以及启动和测试服务器等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

2196

4

服务器负载不兼容怎么解决
服务器负载不兼容怎么解决

解决方法:1、增加服务器资源;2、负载均衡;3、优化应用程序;4、增加缓存机制;5、分布式架构;6、限流和熔断;7、自动化扩容。想知道更详细服务器负载不兼容的解决方法,可以访问本专题下面的文章。

2023.10.20

4052

4

宽带如何接入服务器
宽带如何接入服务器

宽带接入服务器的方法有ADSL宽带接入服务器、光纤接入服务器、无线接入服务器和以太网接入服务器等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.20

667

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
phpMyAdmin 配置文档
phpMyAdmin 配置文档

共0课时 | 0人学习

Swoole手册
Swoole手册

共0课时 | 0人学习