只要在公网上开启ssh服务,就会有很多扫描工具对ssh进行破解。ssh-honeypot是一个简单易用的SSH蜜罐系统,可以记录攻击者的IP地址,输入的账号和密码。
为什么安装在Docker?
SSH服务工作在22端口,开启22端口需要root权限。而ssh-honeypot
是别人开发的软件,虽然是开源项目,但也不排除有留下后门的可能。
在Docker中安装相当于将蜜罐系统和服务器隔离,及时存在后门,也能将损失最小化。
安装Docker
编写Dockerfile
创建并切换到
ssh-hp
文件夹,用于保存Dockerfile:1
2mkdir ssh-hp
cd ssh创建
Dockerfile
文件,并写入以下代码:1
2
3
4
5
6
7
8
9
10
11from 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构建Docker镜像:
1
docker build -t ssh-hp .
启动ssh蜜罐:
1
sudo docker run -p 22:22 -d ssh-hp
启动前先确认22端口没有被占有。
找到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。进入容器查看记录下的账号密码:
1
sudo docker exec -it dac927 bash
命令中的“dac927”是容器ID。
记录下来的账号密码默认保存在
~/ssh-honeypot.log
中,使用tail ssh-honeypot.log -n 30
命令查看最近记录的30条密码:1
2
3
4
5root@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
......