我注意到关于密码的一个奇怪的(好吧,据我所知)事情。例如,如果我在登录时输入了错误的密码,系统会延迟几秒钟才告诉我。当我尝试sudo使用错误的密码时,我还必须等待 shell 说“对不起,再试一次”。
我想知道为什么“识别”不正确的密码需要这么长时间?这已经在我使用的几个发行版(甚至 OSX)上看到了,所以我认为这不是发行版特定的东西。
互联网上的每个人都建议禁用通过SSH进行 root 登录,因为这是一种不好的做法,而且是系统中的一个安全漏洞,但没有人解释为什么会这样。
启用 root 登录(尤其是禁用密码登录)有什么危险?
如果允许密码验证,从安全角度来看,X 符号用户名和 Y 符号密码或 root 用户名和 X+Y 符号密码有什么区别?
多年来(自 2005 年以来),我在我维护的多个 DNS / BIND 服务器上看到了奇怪的随机 DNS 请求的日志。
May 7 12:13:50 1.1.1.1 named[63742]: client 1.1.1.2#24123 (verxkgiicjmcnxg): view internal: query: verxkgiicjmcnxg IN A + (1.1.1.1)
May 7 12:13:50 1.1.1.1 named[63742]: client 1.1.1.2#29159 (epqoaqsayo): view internal: query: epqoaqsayo IN A + (1.1.1.1)
May 7 12:13:50 1.1.1.1 named[63742]: client 1.1.1.2#27411 (qlllglwcjglu): view internal: query: qlllglwcjglu IN A + (1.1.1.1)
Run Code Online (Sandbox Code Playgroud)
我通常把它归结为一些 Windows 恶意软件。但是,我开始注意到它最近也来自 Linux 和 Mac 客户端。我再次认为这可能是由于某些恶意浏览器插件造成的。
但是,在调试 Google Chrome 浏览器问题时,在我新安装的 Macbook Pro/Chrome 中,使用 URL chrome://net-internals/#dns,我在 Chrome DNS 统计页面中发现了类似的请求。
我的 Chrome 浏览器安装了相当无害的插件,也没有明显的恶意软件迹象 …
在我的/etc/passwd文件中,我可以看到www-dataApache 使用的用户,以及各种系统用户,都拥有/usr/sbin/nologin或/bin/false作为他们的登录 shell。例如,这里是选择的行:
Run Code Online (Sandbox Code Playgroud)daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin bin:x:2:2:bin:/bin:/usr/sbin/nologin sys:x:3:3:sys:/dev:/usr/sbin/nologin games:x:5:60:games:/usr/games:/usr/sbin/nologin www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin syslog:x:101:104::/home/syslog:/bin/false whoopsie:x:109:116::/nonexistent:/bin/false mark:x:1000:1000:mark,,,:/home/mark:/bin/bash
因此,如果我尝试切换到这些用户中的任何一个(有时我想这样做以检查我对他们权限的理解,并且可能还有其他至少一半合理的原因),我失败了:
mark@lunchbox:~$ sudo su www-data
This account is currently not available.
mark@lunchbox:~$ sudo su syslog
mark@lunchbox:~$
Run Code Online (Sandbox Code Playgroud)
当然,这并没有太大的不便,因为我仍然可以通过这样的方法为他们启动一个shell:
mark@lunchbox:~$ sudo -u www-data /bin/bash
www-data@lunchbox:~$ Run Code Online (Sandbox Code Playgroud)
但这只是让我想知道拒绝这些用户登录 shell 的目的是什么。环顾互联网寻求解释,许多人声称这与安全性有关,并且每个人似乎都同意更改这些用户的登录外壳在某种程度上是一个坏主意。以下是引用的集合:
将 Apache 用户的 shell 设置为非交互式通常是一种很好的安全实践(实际上,所有不必以交互方式登录的服务用户都应该将其 shell 设置为非交互式)。
-- https://serverfault.com/a/559315/147556
用户 www-data 的 shell 设置为 /usr/sbin/nologin,这是有充分理由的。
-- https://askubuntu.com/a/486661/119754
[系统帐户]可能是安全漏洞,特别是如果它们启用了 shell:
坏的
Run Code Online (Sandbox Code Playgroud)bin:x:1:1:bin:/bin:/bin/sh好的
Run Code Online (Sandbox Code Playgroud)bin:x:1:1:bin:/bin:/sbin/nologin
-- https://unix.stackexchange.com/a/78996/29001
出于安全原因,我创建了一个没有登录 shell …
我知道它的作用,但我不知道为什么。它可以防止什么攻击?
它与所有类型的身份验证方法相关吗?(基于主机、密码、公钥、键盘交互...)
有什么方法可以防止将命令添加到您的历史记录中?我有一个命令要保留在我的历史记录文件之外,当我搜索存储在内存中的历史记录时,我真的不想把它放在那里,尽管这不太重要。有什么办法可以防止这种情况发生,或者我只需要返回并编辑我的历史文件。
更新:我没有意识到这可能是特定于 shell 的。我的外壳是zsh. 欢迎您回答其他 shell,以便人们知道如何在他们的 shell 中执行此操作。
我低头看着我的键盘并输入我的密码,因为我以为我已经输入了我的登录名。我按了Enter,然后当它要求输入密码时,我按了Ctrl+ c。
我应该采取一些预防措施来确保密码不是以纯文本形式存储在某处还是应该更改密码?
这也是在 ubuntu 服务器 16.04 LTS 上的 tty 上。
我正在像这样运行 Chromium: chromium --no-sandbox
我这样做是因为我在 OpenVZ VM 容器上运行 Debian Squeeze,这是我让它工作的唯一方法。
虽然我一直在读这本书很糟糕。但我想知道究竟是为什么。有人可以向我解释一下吗?
是否有人需要入侵您的计算机才能造成损害?或者漏洞是否来自网络上的文件,如 JavaScript 文件?
如果我将浏览锁定到仅少数“受信任”站点怎么办?(Gmail、stackexchange(当然)和 facebook)
我应该访问服务器,以便将公司的临时服务器和实时服务器链接到我们的部署循环中。他们这边的管理员设置了两个实例,然后在服务器上创建了一个用户,供我们通过 SSH 登录。我已经习惯了这么多。
在我看来,现在会发生的是我将我的公钥发送给他们,该公钥可以放在他们的授权密钥文件夹中。然而,他们通过电子邮件向我发送了一个文件名id_rsa,该文件名包含-----BEGIN RSA PRIVATE KEY-----在文件中。这是正常的吗?
我环顾四周,可以找到大量关于从头开始生成和设置我自己的密钥的资源,但没有从服务器的私钥开始。我应该使用它为自己生成一些密钥还是?
我会直接问系统管理员,但不想显得白痴,浪费我们中间的每个人的时间。我是否应该忽略他发给我的密钥并要求他们将我的公钥放在他们的授权文件夹中?