商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > 怎样在SFTP中配置时间限制

怎样在SFTP中配置时间限制

  发布于2026-07-05 阅读(0)

扫一扫,手机访问

在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或防火墙。如果条件允许,把这几层组合起来用,效果会更稳。

本文转载于:https://www.yisu.com/ask/15667489.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注