由于大量的Raspberry Pi在野外,并且它们的大组配置完全相同(当安装了新闪存的SD卡并带有少量可用映像之一时),它们很可能成为诱人的目标

可以采取哪些措施来缓解这种情况?

众所周知,应该更改“ 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,最新映像实际上是在首次启动时重新生成它们)


评论


我不认为您的第一句话有问题。这些额外的用户有什么用?他们不应该被禁止登录吗?您可以通过尝试对它们进行检查。

–活动
2012年6月20日在8:45

我将给出-1。主要是因为您建议手动编辑阴影文件。这是一个非常糟糕的主意。

–活动
2012年6月20日上午10:35

@Jivings不,他没有。他可能同样暗示使用vipw。那是个坏主意吗?不,这不对。 +1表示使用vipw。

–user2497
17年7月11日在23:00



#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上有很多方法手册。