编辑2:TL; DR: 答案是肯定的,2013年,但这个漏洞已修复
通过以下对vagrantup.com入门指导,我似乎与被接受的2222端口,使任何人都能获得root访问我的虚拟机,并使用默认凭据读我的主机的工作目录SSH连接的虚拟机(用户名落得=密码=流浪汉或vagrant_insecure_private_key)。
这是真的? 如果是的话,为什么不考虑一个巨大的安全漏洞? 如果我有复制敏感数据的VM?
编辑 :对于那些谁认为任何人在互联网上能够读取你的源代码,并在VM上执行任意代码并不坏,我建议你阅读在这篇博客中“突围”一节中的http://blog.ontoillogical。 COM /博客/ 2012/10月31日/磨合和-外的流浪汉/
简而言之:运行流浪汉“视意”也可以让任何人闯入你的主机/开发机(例如,通过使用恶意的git post-commit钩子)。
简短的回答是YES。
为什么?
当建立流浪基座箱(手动或使用工具,如Veewee自动),助洗剂按照流浪基座箱规格定义了以下内容:
- 用户
root
和vagrant
使用流浪汉作为密码 - 公共密钥认证(无密码)用户
vagrant
。
流浪项目提供了一个不安全的密钥对对SSH的公共密钥验证,这样vagrant ssh
的作品。
因为每个人都有访问私有密钥,任何人都可以使用私钥登录到您的虚拟机(假设他们知道你的主机计算机的IP,端口默认为2222,以代替转发规则。)
它是不安全的开箱即用。 但是,您可以从删除受信任的关键~vagrant/.ssh/authorized_keys
,并添加自己,更改密码vagrant
和root
,然后它被认为是相对安全的。
更新
由于流浪1.2.3,通过默认的SSH转发端口结合127.0.0.1所以只有本地连接被允许[GH-1785]。
重要更新
由于流浪1.7.0( PR#4707 )流浪将替换与第一随机生成的密钥对的默认不安全的ssh密钥对vagrant up
。
看到在CHANGELOG :默认不安全密钥对时,流浪将自动与第一随机生成的密钥对代替它vagrant up
。 GH-2608
我提出这个作为GitHub的仓库中漂泊不定的问题。 开发人员已表示,他们会解决这个问题与转发端口是外部可用。 开发商不接受但是从VM主机环境的有关问题上妥协。 我认为他们是危险的错误。
https://github.com/mitchellh/vagrant/issues/1785
打破了虚拟机的是很容易,链接的博客文章建议。 你不必依赖于混帐挂钩妥协主机,你只要把任意Ruby代码为流浪文件。
如果我能我会在一个虚拟机沙箱中运行无业游民。 既然不能,我凑合着用的防火墙。
这是一个好主意,有设置规则来添加一个安全的SSH密钥,并消除不安全键,默认密码。
我写了这个简单的内联外壳供应方换出authorized_keys文件我id_rsa.pub。 一旦供应的insecure_private_key不能用来进行身份验证。
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
# ...
config.ssh.shell = "bash -c 'BASH_ENV=/etc/profile exec bash'" # avoids 'stdin: is not a tty' error.
config.ssh.private_key_path = ["#{ENV['HOME']}/.ssh/id_rsa","#{ENV['HOME']}/.vagrant.d/insecure_private_key"]
config.vm.provision "shell", inline: <<-SCRIPT
printf "%s\n" "#{File.read("#{ENV['HOME']}/.ssh/id_rsa.pub")}" > /home/vagrant/.ssh/authorized_keys
chown -R vagrant:vagrant /home/vagrant/.ssh
SCRIPT
end
由于流浪1.2.3的默认值是绑定到本地主机,而不是公共接口,避免了外部连接的问题。
只是想补充一点,有一个流浪的插件,解决了这个问题: 流浪汉-钥-SSH 。 它改变了虚拟机的默认密码,并删除不安全的SSH密钥。
我想解释一下,为什么流浪未必如你想象的那么不安全。
我谨说,因为我相信你们大多数人都已经知道,这是必要的,因为道路被共享这些箱子保持开放访问流浪框开始。 出于这个原因,我认为主要的安全问题是不会改变默认的凭据盒下载后。 在桥接模式下运行这样一台机器将允许有人在网络上使用默认凭据到ssh英寸
在我看来,这些盒子背后的想法是,任何人都可以下载它,保护它,一旦它在他们身上。 我的流浪汉安装替换默认键与一个新的,随机生成的SSH密钥。 我不知道如果这是一个插件做,但是我很想知道,如果密码的须藤和默认密码也存在安全风险。