安全的 SSH 推荐设置

发布于 2023-03-14 12:38:48 字数 2088 浏览 80 评论 0

偶尔登陆了一次腾讯云主机的 root 用户,惊讶地发现有大量失败登陆的记录,把我吓了一跳。

使用 lastb 查了一下,发现登陆名称是千奇百怪。其中实验次数最多的用户名分别为:

sudo lastb|awk '{print $1}' |sort |uniq -c |sort -n -k 1 |tail
   160 guest
   218 hadoop
   248 git
   252 ubuntu
   356 user
   406 postgres
   420 test
   486 oracle
  1161 admin
147101 root

之前我一直以为我这小破主机应该是没人会在意的,所以没有对 SSH 服务进行什么配置。现在看起来我还是太 naive 了。

迫于无奈,只好对 SSH 服务进行加固处理。目前找到的加固方法有下面几个:

确定 sshd_config 的权限

确定 sshd_config 只有 root 才能读写,其他用户不能进行任何操作

sudo chown root:root /etc/ssh/sshd_config
sudo chmod og-rwx /etc/ssh/sshd_config

修改 ssh 服务端口

这一步的效果很显著,只从改了 ssh 服务端口后,就在没有看到任何登陆失败的提示了

Port XXXX

只启用 SSH Protocol 2

Protocol 1 的安全性相对要差一些

Protocol 2

不允许空密码登陆

PermitEmptyPasswords no

不允许 root 登陆

从上面对 lastb 的结果分析可以得知, root 是被实验最多的用户,没有之一。

因此禁用 root 登陆很有必要:

PermitRootLogin no

若你觉得一股脑儿完全禁用 root 登陆太过了,而希望只在特定的主机上允许 root 登陆,则可以禁止 root 用密码登陆

PermitRootLogin prohibit-password

然后在特定主机上建立公私密钥认证关系即可。

限制只能登陆特定用户

我们可以使用 DenyUsers, AllowUsers, DenyGroupsAllowGroups 关键字来限定允许登陆的用户。

当某个用户登陆时,该用户依次经过 DenyUsers, AllowUsers, DenyGroupsAllowGroups 的测试,只有在所有测试都通过的情况下才允许登陆。

AllowUsers ramesh john jason
AllowGroups sysadmin dba
DenyUsers cvs apache jane
DenyGroups developers qa

修改未登陆的超时时间

用户未登陆成功的情况下,默认120秒后会登出。这个时间可以缩短,比如60.

LoginGraceTime 1m

但要注意,若该值缩减为 0 则表示没有时间限制

设置会话空闲一段时间后自动退出

设置空间一段时间自动退出有两种方法,

一种是设置 TMOUT 环境变量,比如在 ~/.bash_profile 中加上

export TMOUT=100

还有一种方法是设置 sshd_config

ClientAliveInterval 100
ClientAliveCountMax 0

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

你对谁都笑

暂无简介

0 文章
0 评论
24 人气
更多

推荐作者

lixs

文章 0 评论 0

敷衍 

文章 0 评论 0

盗梦空间

文章 0 评论 0

tian

文章 0 评论 0

13375331123

文章 0 评论 0

你对谁都笑

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文