是否可以使用 cron 启用/禁用 SSH

是否可以使用 cron 启用/禁用 SSH

我想ssh在一天中的某些时间禁用服务器。我想这样做是因为我最近经历了通过暴力破解ssh。可以crontab用来启用/禁用 SSH?

如果没有,是否有其他方法可以ssh在一天中的某些时间禁用?

答案1

当然,只需运行任何 init 脚本即可在适当的时间停止和启动 ssh 守护进程(例如/etc/init.d/ssh stop/etc/init.d/ssh start)。

但是,我建议研究fail2ban、端口敲门、禁用密码身份验证并仅使用 ssh 密钥,以及最安全的方法,两个因素身份验证与一蒂我的密码

答案2

不要在特定时间关闭 SSH 服务器,而是考虑使用pam_时间模块改为在一周的某些时间拒绝身份验证。它不是黑客攻击,不依赖于 cron,并且还为您提供了更大的灵活性来定义身份验证规则集。

  • 设置UsePAM yes在你的sshd_config
  • 编辑/etc/pam.d/sshd以插入pam_time模块
  • 将您的时间限制规则写在 中/etc/security/time.conf

答案3

有多种选择可供您选择

  1. 您可以用来cron打开ssh和关闭服务器
  2. 您可以用于iptables阻止和解除阻止ssh端口
  3. ssh您可以通过在不同的端口上运行来避开所有这些
  4. 您可以实施端口敲门
  5. 您可以完全禁用外部访问ssh并强制使用 VPN

我确信还有其他解决方案可用,但我已经停在五个了。

答案4

timeiptables 模块:

iptables ... -m time --timestart TIME --timestop TIME --days DAYS -j ACTION

用于-p tcp -j REJECT --reject-with tcp-rst假装端口已关闭(默认操作REJECT是 ICMP 数据包)。

我还会在前面添加另一条规则,ESTABLISHED如果我希望打开的连接继续工作,则允许连接通过。

与使用脚本在特定时间执行特定操作的解决方案相比,它具有很大的优势,因为这是静态配置,并且不太可能出现任何例如永久阻止访问的故障模式。

相关内容