使用Docker安装ssh蜜罐ssh-honeypot

只要在公网上开启ssh服务,就会有很多扫描工具对ssh进行破解。ssh-honeypot是一个简单易用的SSH蜜罐系统,可以记录攻击者的IP地址,输入的账号和密码。

为什么安装在Docker?

SSH服务工作在22端口,开启22端口需要root权限。而ssh-honeypot是别人开发的软件,虽然是开源项目,但也不排除有留下后门的可能。

在Docker中安装相当于将蜜罐系统和服务器隔离,及时存在后门,也能将损失最小化。

安装Docker

编写Dockerfile

  1. 创建并切换到ssh-hp文件夹,用于保存Dockerfile:

    1
    2
    mkdir ssh-hp
    cd ssh
  2. 创建Dockerfile文件,并写入以下代码:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    from ubuntu

    RUN apt update
    RUN apt install -y libssh-dev libjson-c-dev git make clang \
    && git clone https://github.com/droberson/ssh-honeypot.git
    WORKDIR ssh-honeypot
    RUN make && make install\
    && ssh-keygen -t rsa -f ./ssh-honeypot.rsa

    CMD bin/ssh-honeypot -r ./ssh-honeypot.rsa
    EXPOSE 22
  3. 构建Docker镜像:

    1
    docker build -t ssh-hp .
  4. 启动ssh蜜罐:

    1
    sudo docker run  -p 22:22 -d ssh-hp

    启动前先确认22端口没有被占有。

  5. 找到ssh蜜罐的容器ID:

    1
    2
    3
    [root@VM_0_14_centos ssh-hp]# docker ps -a
    CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
    dac927f915dd ssh-hp "/bin/sh -c 'bin/ssh…" 5 days ago Up 5 days 0.0.0.0:22->22/tcp confident_lovelace

    上述dac927...就是容器的ID。

  6. 进入容器查看记录下的账号密码:

    1
    sudo docker exec -it dac927 bash

    命令中的“dac927”是容器ID。

  7. 记录下来的账号密码默认保存在~/ssh-honeypot.log中,使用tail ssh-honeypot.log -n 30命令查看最近记录的30条密码:

    1
    2
    3
    4
    5
    root@dac927f915dd:/ssh-honeypot# tail ssh-honeypot.log -n 30
    [Tue Nov 26 12:08:02 2019] 161.22.76.41 spark02 spark02
    [Tue Nov 26 12:08:13 2019] 161.22.76.41 spark03 spark03
    [Tue Nov 26 12:08:39 2019] 161.22.76.41 jira 123456
    ......