根据Christian Schneider的博客文章How to hack into any default apache karaf installation,我检查了我的默认Karaf安装(4.0.5)是否不安全:
检查您的karaf装置是否打开的一些简单步骤。
- 检查属性sshPort的“etc / org.apache.karaf.shell.cfg”。请注意此端口号。默认情况下为8101
- 请“ssh -p 8101 karaf @ localhost”。与预期一样,它会要求输入密码。如果您不更改默认密码,这可能也很危险,但非常明显。
- 现在只需执行bin / client -a 8101.您将获得一个没有提供密码的shell。如果这样可行,那么您的服务器就容易受到攻击
正如所料。它很脆弱。所以我试图按照所述的说明保护它:
如何保护您的服务器?
- 只需在“etc / keys.properties”中删除karaf用户的公钥即可。不幸的是,这将阻止bin / client命令工作。
- 另请确保在“etc / users.properties”中更改karaf用户的密码。
我使用halt
命令关闭了Karaf服务器。然后我更改了etc/users.properties
中的karaf密码并删除了文件etc/keys.properties
。然后我用bin/karaf
再次启动了服务器。然后在一个新终端中,我通过尝试ssh到服务器来测试安装是否安全。我验证了ssh login现在需要新配置的密码。最后,我尝试使用bin/client -a 8101
命令。
此时,正如博客文章中所解释的那样,我希望命令失败:
不幸的是,这会阻止bin / client命令工作。
我注意到在运行bin/client -a 8101
后,有一个新文件etc/host.key
,bin/client
或容器本身自动生成。而不是失败命令成功,我得到了卡拉夫控制台。
这是否意味着容器仍容易受到此攻击媒介的攻击?
答案 0 :(得分:0)
否。
OP 中描述的修改(更改etc/users.properties
中的默认密码并删除etc/keys.properties
)可以保护容器免受特定攻击媒介的攻击。</ p>
根据有关此堆栈溢出问题的Karaf users mailing list的讨论:
默认
bin/client
尝试(按此顺序)使用:
etc/keys.properties
etc/users.properties
karaf/karaf
- 醇>
-u
提示输入密码
bin/client
是一个SSH客户端(用Java编写)。host.key
是与SSH相同的文件,包含可信主机(您还有.sshkaraf/known_hosts
)。
OP中博客引用的部分已过时:
不幸的是,这会阻止bin / client命令工作。