可以采取哪些措施来缓解这种情况?
众所周知,应该更改“ pi”用户(Debian)和“ root”(Arch。)但是其他系统帐户(例如“ tli”,“ pnd”)又如何呢?它们中的任何一个都具有通用密码吗? Pi的SD映像中安装的其他软件包中是否存在任何已知漏洞(例如,由于硬件限制或这些软件包的简化版本?)
我尤其担心
ssh
,mysql和任何可能在新安装的映像上运行的其他服务。#1 楼
到目前为止,我已经注意到有关股票Debian Squeeze图像的事情: 。当然,如果您还没有更改pi帐户的密码(或为自己创建一个新用户帐户并删除pi帐户),还可以编辑其他条目,并用* s代替散列。注意/ etc / passwd包含pi帐户的重复条目,这会使adduser / deluser变得混乱,只需删除其中一个即可。默认的ssh守护程序配置允许远程root登录。应该禁用它。
值得使用netstat来检查侦听连接的事物集。与典型的最小Debian netinst相比,正在运行的东西数量惊人。通常,最好只减少所需内容的暴露,因此,首先禁用或防火墙关闭所有内容,然后仅公开您想要在公共Internet上公开的服务(通常是ssh或ssh + http)。 >您将要更改ssh主机密钥,而不是使用映像中的密钥(AIUI,最新映像实际上是在首次启动时重新生成它们)
#2 楼
解决漏洞的方法有很多,但是您首先应该知道Linux不像其他操作系统那样容易受到入侵。这主要是由于缺少针对* NIX的恶意软件。尽管如此,您还是想知道可以访问系统的方式。密码
首先,您应该更改任何能够登录的用户的默认密码。 。对于Debian,这只是默认用户Pi。对于Arch Linux,这是超级用户根。
以用户身份登录时,通过在命令行上键入
passwd
来更改密码。鼓励使用安全的密码策略,因为这样做会对您的默认用户运行蛮力字典攻击非常简单。选择一个适当的中等长度的密码。
遮挡
远程访问可能是最重要的安全漏洞。我们在这里可以使用的名称被默默地称为安全性。
常见的攻击方法是扫描IP地址范围内的开放端口。
因此,我们可以采取的最简单的对策之一就是成为不使用默认端口的用户。协议。例如,默认的SSH端口为22,FTP为21。在我的系统上,SSH使用222和FTP 221,这应该使这些协议不受任何自动攻击的影响。
连接安全性
首先,最重要的安全问题是root帐户不应该能够通过SSH登录。您可以通过注释或删除以下行来禁用
/etc/ssh/sshd_config
文件中的root登录:PermitRootLogin yes
默认情况下应将其设置为no,但是最好确保此设置。
如果经常使用SSH,并且担心中间人攻击,针对密码的字典攻击,那么可以使用
SSH Keys
。与密钥认证相比,基于密钥的认证具有多个优点,例如,与纯密码相比,密钥值的暴力破解难度要大得多。
要设置SSH密钥身份验证,您需要首先创建密钥对。这最容易在客户端计算机(您要用来访问Pi的计算机)上完成。
# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/pi/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/pi/.ssh/id_rsa.
Your public key has been saved in /home/pi/.ssh/id_rsa.pub.
如您所见,它已经创建了两个文件,私钥
id_rsa
和公钥id_rsa.pub
。私钥只有您自己知道,应该加以保护。相比之下,公钥可以与您要连接的任何SSH服务器自由共享。
所以我们要做的就是将公钥复制到Raspberry Pi中。我们可以很容易地做到这一点:
ssh-copy-id pi@address
其中
pi
是Raspberry Pi的用户名,而address
是Pi的IP地址。我重申一下,我们分发公钥。私钥是您的。紧紧抓住它,以释放该密钥会破坏系统的安全性。
Arch Wiki很好地描述了它的工作方式: SSH服务器已在文件中包含您的公共密钥,并且看到您请求
连接,它使用您的公共密钥来构造并向您发送挑战。此挑战就像一条编码的消息,必须在服务器授予您访问权限之前用适当的响应进行响应。
使此编码的消息特别安全的是,它只能被理解由具有私钥的人。尽管可以使用公共密钥
来加密消息,但是不能使用它来解密非常相同的消息。只有您(私钥持有者)才能正确理解挑战并做出正确的响应。
有关安全性的更多信息关于公钥认证,Wikipedia进行了详尽的解释。
有了SSH安全性,您可以进行大量的加密安全数据传输。实际上,如果需要,其他所有端口连接都可以通过SSH进行路由。您甚至可以通过SSH转发X会话,以便它出现在另一台计算机上。
作为一个有趣的示例,昨天我在桌面上运行Eclipse,在Raspberry Pi上查看它并控制鼠标和上网本上的键盘。这就是SSH的强大功能。
权限
文件权限是Linux安全系统的关键。它们会影响谁可以看到您的文件和文件夹,并且对于保护数据非常重要。
例如,以普通用户身份登录Raspberry Pi并运行:因此我们不希望任何人去看看它!因此,您应该看到以下响应:
cat /etc/shadow
我们可以通过查看文件的权限来了解为什么这样做:
这告诉我们该文件由root拥有,并且只有所有者具有读/写权限。让我们分解一下输出。
cat: /etc/shadow: Permission denied
这是权限的状态。
第一位告诉我们文件的类型(
shadow
表示常规文件)。后三位代表文件所有者可以使用的操作。后三位代表组,后三位代表其他人或其他人。因此具有完全权限的目录如下所示:
ls -l /etc/shadow
-rw------- 1 root root 821 Jun 11 22:13 /etc/shadow
这是所有者,组和其他所有人的读取,写入和执行权限。
下一个重要部分是两个名称。在我们的情况下
-
。第一个用户是文件的所有者。第二个是用户组。例如,通常会看到:-rw-------
这将允许用户
root root
在其主目录上具有读/写访问权限,而对所有其他用户具有读访问权限。最常使用八进制值引用和控制权限。例如,如果我们只想为所有者设置rw,我们将键入:一篇好文章。
这种理解对于保护文件和文件夹很重要。例如,假设我们刚刚设置了SSH密钥。我们绝对不希望其他用户看到我们的
pi
目录,否则他们将可以使用我们的私钥。因此,我们删除了它们的读取特权:drwxrwxrwx 10 root root 280 Jun 20 11:40 tmp/
我希望这可以消除您对保护Linux的担忧。由此您应该能够看到它是一个相当安全的系统,并且如果您小心的话,应该不会有安全性问题。
评论
我不同意您的晦涩言论,它会花费几秒钟的时间来映射设备上打开的端口并找到ssh服务器。禁用密码登录并坚持正常端口。我怀疑您根本不需要ftp,而是使用scp。
–亚历山大·张伯伦
2012年6月20日上午11:03
@AlexChamberlain对于攻击者来说,这是一个暂时的减速,但绝不是一个完整的解决方案。
–活动
2012年6月20日上午11:05
更改默认端口往往会降低门的敲门声,这通常会导致字典攻击。当然,这是一个非常小的安全措施,但它还有其他好处,即可以限制日志膨胀。它比安全性更像是一种预防措施,但仍然值得考虑。
– Beeblebrox
2012年7月5日在3:58
@AlexChamberlain,在debian ssh密钥崩溃期间,我们在端口22上记录了很多尝试,其他地方都没有。在这种情况下,在黑客试图找出哪些被利用主机有价值时,在另一个端口上运行将为您节省大量时间。如果攻击者专门针对您,SBO的帮助几乎没有。
– John La Rooy
2012年8月22日在22:42
我同意。我的观点是,这不仅是假名-在最近的记忆中,有一段时间SBO确实提供了帮助,并且产生了重大变化。
– John La Rooy
2012年8月22日23:04
#3 楼
为了防止暴力破解攻击,可以安装和配置fail2ban
。它将解析日志文件(例如/var/log/auth.log
),并尝试检测几次登录尝试是否失败。然后,它将自动使用iptables
禁止源IP地址。Internet上有很多方法手册。
评论
我不认为您的第一句话有问题。这些额外的用户有什么用?他们不应该被禁止登录吗?您可以通过尝试对它们进行检查。
–活动
2012年6月20日在8:45
我将给出-1。主要是因为您建议手动编辑阴影文件。这是一个非常糟糕的主意。
–活动
2012年6月20日上午10:35
@Jivings不,他没有。他可能同样暗示使用vipw。那是个坏主意吗?不,这不对。 +1表示使用vipw。
–user2497
17年7月11日在23:00