Answers:
到目前为止,我对股票Debian Squeeze图片的注意事项:
/ etc / shadow包含一堆用于非pi帐户(buildbot等)的密码哈希。当然,如果您还没有更改pi帐户的密码(或为自己创建一个新用户帐户并删除pi帐户),还可以编辑其他条目,并用* s代替散列。注意/ etc / passwd包含pi帐户的重复条目,这会使adduser / deluser变得混乱,只需删除其中一个即可。
默认的ssh守护程序配置允许远程root登录。这应该被禁用。
值得使用netstat来检查侦听连接的事物集;与典型的最小Debian netinst相比,正在运行的东西数量惊人。它通常是减少接触只是你的东西是一个好主意需要,所以首先禁用或防火墙关闭一切,然后暴露只是你刻意想在公共互联网上可见(通常只是SSH或ssh + HTTP)的服务。
您需要更改ssh主机密钥,而不是使用映像中的密钥(AIUI,最新映像实际上是在首次启动时重新生成它们)
vipw
; 那是个坏主意吗?不,这不对。+1表示使用vipw
。
解决漏洞的方法有很多,但是您首先应该知道Linux不像其他操作系统那样容易受到入侵。这主要是由于缺少针对* NIX的恶意软件。不过,您希望了解可以访问系统的方式。
首先,您应该更改所有能够登录的用户的默认密码。对于Debian,这只是默认用户Pi。对于Arch Linux,这是超级用户root。以用户身份登录时,通过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服务器自由共享。
所以,我们希望做的就是复制公开密钥到树莓派。我们可以很容易地做到这一点:
ssh-copy-id pi@address
pi
Raspberry Pi用户名在哪里,是Pi address
的IP地址。
我要重申,我们分配公共密钥。私钥是您的。紧紧抓住它,释放该键会破坏系统的安全性。
该拱维基对如何工作的一个很好的说明:
当SSH服务器记录了您的公共密钥并看到您请求连接时,它将使用您的公共密钥来构造并向您发送挑战。此挑战就像一条编码消息,在服务器授予您访问权限之前,必须先对其进行适当的响应。使此编码消息特别安全的原因是,只有具有私钥的人才能理解它。虽然可以使用公共密钥对消息进行加密,但是不能将其用于解密相同的消息。只有您(私钥的持有者)才能正确理解挑战并做出正确的响应。
有关公钥身份验证安全性的更多信息,Wikipedia进行了详尽的解释。
有了SSH安全性,您就可以进行大量的加密安全数据传输。实际上,如果需要,其他所有端口连接都可以通过SSH进行路由。您甚至可以通过SSH转发X会话,以便它出现在另一台计算机上。
举一个有趣的例子,昨天我在台式机上运行Eclipse,在Raspberry Pi上查看它,并通过上网本控制鼠标和键盘。这就是SSH的功能。
文件权限是Linux安全系统的关键。它们会影响谁可以看到您的文件和文件夹,并且对于保护数据非常重要。例如,以普通用户身份登录到Raspberry Pi并运行:
cat /etc/shadow
该shadow
文件包含系统上用户的加密密码,因此我们不希望任何人看到它!因此,您应该看到以下响应:
cat: /etc/shadow: Permission denied
我们可以通过查看文件的权限来了解为什么这样做:
ls -l /etc/shadow
-rw------- 1 root root 821 Jun 11 22:13 /etc/shadow
这告诉我们该文件由root拥有,并且只有所有者具有读/写权限。让我们分解一下输出。
-rw-------
这是权限的状态。第一位告诉我们文件的类型(-
表示常规文件)。接下来的三位代表提供的有关行动所有者的文件。后三位代表group,后三位代表其他人或其他人。因此具有完全权限的目录如下所示:
drwxrwxrwx 10 root root 280 Jun 20 11:40 tmp/
这就是所有者,组和其他所有人的读取,写入和执行权限。
下一个重要部分是两个名称。就我们而言root root
。第一个用户是文件的所有者。第二个是用户组。例如,通常会看到:
drwxr-xr-x 10 pi users 280 Jun 20 11:40 home/pi
这将允许该用户pi
在其主目录上具有读/写访问权限,而对所有其他用户具有读访问权限。
最常使用八进制值引用和控制权限。例如,如果我们只想为所有者设置rw,我们将输入:
chmod 600 /path/to/file
这是一个基本概述,有关Linux文件权限的更多详细信息,这是一篇不错的文章。
在保护文件和文件夹时,这种理解很重要。例如,假设我们刚刚设置了SSH密钥。我们绝对不希望任何其他用户看到我们的~/.ssh
目录,否则他们将可以获取我们的私钥。因此,我们删除了他们的读取特权:
chmod 700 ~/.ssh
ls -la ~/.ssh
drwx------ 2 james users 4096 Jun 18 03:05 .
我希望这可以消除您对保护Linux的担忧。从中您应该能够看到它是一个相当安全的系统,并且如果您小心的话,应该不会有安全问题。
su
它们。