Øle*_*oem 5 linux su debian ssh sudo
什么是更好的选择:使用 su 切换到 root 或启用 sudo?如果不使用 sudo,入侵者将需要知道允许 ssh 的用户的密码(或密钥)以及 root 密码。使用 sudo 非特权用户的密码就足够了。
我设置了一个新的网络服务器 (Debian 8.2),想知道通过 SSH 安全连接到它的最佳实践是什么,并且我仍然可以轻松使用它。
到目前为止,我已经在 SSH 上禁用了 PermitRootLogin 并切换了端口。iptables 也可以阻止我不需要的一切。现在我必须使用非特权用户登录,然后切换
su root
Run Code Online (Sandbox Code Playgroud)
但是作为 root 工作并不是我听说过的最好的事情......所以我想只授予我的非特权用户 sudo 权限。
然后再次入侵者只需要知道一个密码,因为 sudo 要求提供当前用户密码而不是 root 密码。因此,我通过禁用 SSH 中的 PermitRootLogin 使攻击者更难的计划不再起作用。
所以:su root 还是 sudo?
到目前为止,我已经在 SSH 上禁用了 PermitRootLogin 并切换了端口。
我不太喜欢在非标准端口上运行服务;你使自己和他人的互操作性变得更加困难,没有真正的收益。有了合适的密码(或更好:密钥),随机 SSH 扫描无论如何都没有成功的机会,并且有针对性的攻击不会由不同的端口分阶段进行。
但是作为 root 工作并不是我听说过的最好的事情......所以我想只授予我的非特权用户 sudo 权限。
这是个人喜好;选择任何一种方法都有充分的理由。
就个人而言,我更喜欢避免使用 sudo,主要是因为它比 su 复杂得多。而且这种复杂性带来了更高的安全风险,无论是在 sudo 的配置中,还是在 sudo 本身(已经有几个安全公告)。不过,sudo 在允许非特权用户无需密码的情况下执行非常特定的命令方面非常有用。
也就是说,以您描述的方式切换到 root 并使用 sudo 几乎可以互换,除了一些事情:
Sudo 可以记录通过它执行的每个命令。使用 su 时,您必须依赖 root 的 shell 历史记录进行日志记录。(但是,攻击者可以轻松地绕过这一点,例如,只需执行sudo su)
使用 sudo,您通常需要用户的密码,使用 su 您需要 root 的密码。
使用 sudo 可以更轻松地交错特权和非特权命令。
但是,我通常发现自己要么执行需要大量 root 的管理任务,要么执行不需要 root 的非管理任务。为了避免混淆,我为 shell 提示着色以区分 root(红色)和用户(蓝色)。
默认情况下,sudo 仅限于某些帐户。
对于su,可以通过使用pam_wheel.so将su-to-root限制为某个组的成员来实现类似的事情。( addgroup --system wheel, adduser YOU wheel, 取消注释中的 pam_wheel 行/etc/pam.d/su)
我应该通过密码禁用 SSH 身份验证并只使用密钥吗?如果我不在自己的笔记本电脑上,我将很难访问服务器。
是的,这可能是最大的安全收益之一。
您可以在多台(受信任的)机器上授予对您帐户的 SSH 密钥的访问权限。
如果这些机器不受信任,您应该考虑无论如何不要从它们登录;他们可以注入命令或让键盘记录器嗅探您的密码。
一些额外的提示:
考虑将 SSH 访问限制为需要 SSH 访问的用户帐户。
我喜欢这样做addgroup --system allowssh,然后在/etc/ssh/sshd_config设置中PubkeyAuthentication no,并添加一个Match Group allowssh\n PubkeyAuthentication yes节。
我确信这也可以通过 PAM 完成,使用类似auth required pam_succeed_if.so quiet_success user ingroup allowsshin 的东西/etc/pam.d/sshd。
考虑安装一个报告异常的日志检查器。为了减少邮件量,您可以考虑邮寄成功的登录尝试,而不是不成功的登录尝试。
我的想法:
PasswordAuthentication和PermitRootLogin到noAllowTcpForwarding no| 归档时间: |
|
| 查看次数: |
3132 次 |
| 最近记录: |