当前位置:

首页 > 编程开发 > 怎样在SFTP中配置时间限制

怎样在SFTP中配置时间限制

在SFTP中配置时间限制可通过三种方式实现:使用sshd_config的Match指令精准管控用户会话数及登录超时;借助PAM模块限制登录失败次数及锁定时间;利用防火墙规则按IP限制连接频率。操作前需备份配置并注意系统时间同步。

在SFTP中配置时间限制,本质上是给SSH服务器“上紧发条”——因为SFTP本身就是基于SSH协议运行的。这篇内容会带你走一遍几种主流的配置思路,从服务端配置文件到PAM模块,再到防火墙规则,各有各的适用场景。需要强调的是,这些操作都对系统安全有直接影响,动手之前最好先备份现有配置。

怎样在SFTP中配置时间限制

方法一:用 Match 指令在 sshd_config 里“精准管控”

这是最直接的方法,通过SSH服务端的配置文件,为特定用户或用户组设定一系列行为限制。比如你想让某个用户只能在一个会话里干活,且登录超时时间只有15秒,就可以这样操作:

  1. 打开配置文件:sudo nano /etc/ssh/sshd_config

  2. 添加这样一段Match块:

    Match User your_username
        ForceCommand internal-sftp
        ChrootDirectory /path/to/chroot
        AllowTcpForwarding no
        X11Forwarding no
        PermitTunnel no
        MaxSessions 1
        MaxStartups 1:30:10
        LoginGraceTime 15
    
    • MaxSessions 1:同时只允许一个会话连接。
    • MaxStartups 1:30:10:每分钟最多接受1个新连接尝试,超出则拒绝。
    • LoginGraceTime 15:登录超时时间设为15秒,超时就断连。
  3. 保存退出后重启SSH服务:sudo systemctl restart sshd

这种方法的优点是非常精细,能针对不同用户设置不同的“笼子”。不过要注意,Match块里的参数如果写错,可能导致整个SSH服务异常,所以改完先别急着退出终端,测试一下新会话是否正常。

方法二:借助PAM模块实现登录尝试次数与锁定时间控制

PAM(可插拔认证模块)是系统的底层认证框架,用它来限制登录频率更加灵活,甚至能跨服务生效。需要先确认系统已经安装了PAM模块(几乎所有Linux发行版都默认带)。

  1. 编辑PAM的SSH配置文件:sudo nano /etc/pam.d/sshd

  2. 加入以下行(位置通常在文件开头部分):

    auth required pam_tally2.so onerr=fail deny=3 unlock_time=600
    
    • deny=3:允许连续3次失败登录,第四次开始就会被拒绝。
    • unlock_time=600:触发锁定后,600秒(10分钟)内不再允许该用户登录。
  3. 保存退出,重启SSH服务:sudo systemctl restart sshd

提醒一下:PAM的配置影响范围通常比sshd_config更广,如果你在服务器上同时使用了其他基于PAM的服务(比如本地登录),这个限制也会生效。所以别把deny值设得太小,免得自己把自己锁在外面。

方法三:用防火墙规则“无差别”限制连接频率

如果你不想动SSH内部配置,也不想改PAM,防火墙是另一道防线。它不关心用户是谁,只盯着IP地址的发包频率。

使用 iptables:

sudo iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --set
sudo iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 3 -j DROP

这两条规则的作用是:记录所有到22号端口的新连接,如果同一个IP在60秒内发起超过3次新连接,后续连接就会被直接丢弃。

使用 ufw(Ubuntu上的简易防火墙):

sudo ufw limit 22/tcp

一行命令搞定——limit规则会自动对22端口应用速率限制,默认策略是每30秒最多允许6个连接,超出则拒绝。

防火墙的方法比较“暴力”,它不区分用户是否合法,只要频率超标就拦。好处是全局生效、性能开销小,适合防范暴力破解。

注意事项

  • 无论用哪种方法,改配置前务必备份原文件。一旦SSH连接断掉,还有后路可以恢复。
  • 时间限制是把双刃剑:限制太紧会误伤正常用户,比如频繁上传小文件的脚本就可能被防火墙误杀。建议先放宽阈值测试,再逐步收紧。
  • 系统时间和时区必须正确——如果服务器时间跳来跳去,基于时间的限制规则就会乱套。用timedatectl检查一下,必要时启用NTP同步。

总而言之,配置时间限制没有银弹,关键是看你的场景:精确管控用户行为选Match指令;想控制暴力破解频率选PAM或防火墙。如果条件允许,把这几层组合起来用,效果会更稳。

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
作者最新文章
编程开发 Linux
相关文章 更多
linux删除用户与用户组的方法及命令教程
linux删除用户与用户组的方法及命令教程

掌握Linux中删除用户和用户组的正确方法,避免残留文件和进程冲突。本文深入解析userdel和groupdel命令的参数用法,提供处理“用户仍在使用”等常见错误的实战方案。

Linux如何开启端口号?开放端口命令详解
Linux如何开启端口号?开放端口命令详解

详细讲解Linux如何开启端口号以及常用的开放端口命令。

crossover卸载软件下载及重新安装教程
crossover卸载软件下载及重新安装教程

遇到CrossOver运行错误或需要更新版本时,如何彻底卸载旧版并干净重装?本教程详解macOS和Linux下的卸载步骤、残留文件清理方法及官方下载渠道,确保软件环境纯净稳定。

查看更多
精品专题 更多
装机必备
装机必备

正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

Windows
Windows

正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

PDF教程
PDF教程

正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

Mac软件 更多
IntelliJ IDEA macOS版
IntelliJ IDEA macOS版
Mac

IntelliJ IDEA 是 JetBrains 推出的专业集成开发环境,重点服务于 Java、Kotlin 与 JVM 项目开发。软件集成代码补全、静态检查、重构、调试、测试、版本控制及构建工具,并可借助插件扩展语言和框架支持。

PyCharm macOS版
PyCharm macOS版
Mac

JetBrains PyCharm 是面向 Python 开发者的集成开发环境,提供智能补全、代码检查、重构、调试、测试、版本控制及虚拟环境管理功能。Mac 版兼容 Intel 与 Apple 芯片,核心功能可免费使用。

WebStorm macOS版
WebStorm macOS版
Mac

JetBrains WebStorm 是面向 JavaScript、TypeScript 和现代 Web 技术的专业集成开发环境,可智能理解项目结构,提供代码补全、重构、错误检查、运行调试、测试及 Git 工具。

WINDOWS 更多
IntelliJ IDEA Windows版
IntelliJ IDEA Windows版
Windows

JetBrains IntelliJ IDEA 是以 Java、Kotlin 和 JVM 项目为核心的专业集成开发环境,提供智能补全、代码检查、安全重构、调试、测试、版本控制及构建工具集成。统一发行版的核心功能可免费用于商业和非商业项目,

PhpStorm Windows版
PhpStorm Windows版
Windows

PhpStorm 是 JetBrains 面向 PHP 与现代 Web 开发打造的专业集成开发环境,提供代码补全、静态检查、重构、调试、测试、数据库、版本控制及前端语言支持。Windows 用户可直接下载安装程序,

PyCharm Windows版
PyCharm Windows版
Windows

PyCharm 是 JetBrains 推出的 Python 集成开发环境,提供智能代码补全、错误检查、重构、调试、测试、Git、终端及 Jupyter Notebook 支持。统一版安装后可体验 30 天 Pro 功能,