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

Match 指令在 sshd_config 里“精准管控”这是最直接的方法,通过SSH服务端的配置文件,为特定用户或用户组设定一系列行为限制。比如你想让某个用户只能在一个会话里干活,且登录超时时间只有15秒,就可以这样操作:
打开配置文件:sudo nano /etc/ssh/sshd_config
添加这样一段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秒,超时就断连。保存退出后重启SSH服务:sudo systemctl restart sshd
这种方法的优点是非常精细,能针对不同用户设置不同的“笼子”。不过要注意,Match块里的参数如果写错,可能导致整个SSH服务异常,所以改完先别急着退出终端,测试一下新会话是否正常。
PAM(可插拔认证模块)是系统的底层认证框架,用它来限制登录频率更加灵活,甚至能跨服务生效。需要先确认系统已经安装了PAM模块(几乎所有Linux发行版都默认带)。
编辑PAM的SSH配置文件:sudo nano /etc/pam.d/sshd
加入以下行(位置通常在文件开头部分):
auth required pam_tally2.so onerr=fail deny=3 unlock_time=600
deny=3:允许连续3次失败登录,第四次开始就会被拒绝。unlock_time=600:触发锁定后,600秒(10分钟)内不再允许该用户登录。保存退出,重启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个连接,超出则拒绝。
防火墙的方法比较“暴力”,它不区分用户是否合法,只要频率超标就拦。好处是全局生效、性能开销小,适合防范暴力破解。
timedatectl检查一下,必要时启用NTP同步。总而言之,配置时间限制没有银弹,关键是看你的场景:精确管控用户行为选Match指令;想控制暴力破解频率选PAM或防火墙。如果条件允许,把这几层组合起来用,效果会更稳。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8