我想ssh
在一天中的某些时间禁用服务器。我想这样做是因为我最近经历了通过暴力破解ssh
。可以crontab
用来启用/禁用 SSH?
如果没有,是否有其他方法可以ssh
在一天中的某些时间禁用?
答案1
答案2
不要在特定时间关闭 SSH 服务器,而是考虑使用pam_时间模块改为在一周的某些时间拒绝身份验证。它不是黑客攻击,不依赖于 cron,并且还为您提供了更大的灵活性来定义身份验证规则集。
- 设置
UsePAM yes
在你的sshd_config
- 编辑
/etc/pam.d/sshd
以插入pam_time
模块 - 将您的时间限制规则写在 中
/etc/security/time.conf
。
答案3
有多种选择可供您选择
- 您可以用来
cron
打开ssh
和关闭服务器 - 您可以用于
iptables
阻止和解除阻止ssh
端口 ssh
您可以通过在不同的端口上运行来避开所有这些- 您可以实施端口敲门
- 您可以完全禁用外部访问
ssh
并强制使用 VPN
我确信还有其他解决方案可用,但我已经停在五个了。
答案4
有time
iptables 模块:
iptables ... -m time --timestart TIME --timestop TIME --days DAYS -j ACTION
用于-p tcp -j REJECT --reject-with tcp-rst
假装端口已关闭(默认操作REJECT
是 ICMP 数据包)。
我还会在前面添加另一条规则,ESTABLISHED
如果我希望打开的连接继续工作,则允许连接通过。
与使用脚本在特定时间执行特定操作的解决方案相比,它具有很大的优势,因为这是静态配置,并且不太可能出现任何例如永久阻止访问的故障模式。