如何保护默认的apache karaf安装

时间:2016-07-04 04:21:02

标签: security ssh-keys apache-karaf

根据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.keybin/client或容器本身自动生成。而不是失败命令成功,我得到了卡拉夫控制台。

这是否意味着容器仍容易受到此攻击媒介的攻击?

1 个答案:

答案 0 :(得分:0)

否。

OP 中描述的修改(更改etc/users.properties中的默认密码并删除etc/keys.properties可以保护容器免受特定攻击媒介的攻击。<​​/ p>

根据有关此堆栈溢出问题的Karaf users mailing list的讨论:

  

默认bin/client尝试(按此顺序)使用:

     
      
  1. etc/keys.properties

  2.   
  3. etc/users.properties

  4.   
  5. karaf/karaf

  6.   
  7. -u提示输入密码

  8.         

    bin/client是一个SSH客户端(用Java编写)。 host.key是与SSH相同的文件,包含可信主机(您还有.sshkaraf/known_hosts)。

OP中博客引用的部分已过时:

  

不幸的是,这会阻止bin / client命令工作。