HFish 是一款基于 Golang 开发的跨平台多功能主动诱导型蜜罐框架系统,为了企业安全防护测试做出了精心的打造
起因
由于使用的VPS有对外网开放SSH服务,但是又不想直接使用22端口,毕竟扫描攻击太多。后面通过掘金chrome插件看到HFish这个项目,想着能不能应用到自己的VPS上。
部署
由于HFish是由Golang编写的,天生自带跨平台属性,可以按自己操作系统平台下载不同的版本,下载地址。
直接使用二进制文件运行的教程在Github上有中文文档,这里我说下我使用时使用Docker部署的相关脚本。
由于VPS上本来就搭建了Docker环境就直接使用Docker-compose写了一个简单的配置文件来部署。
修改SSH默认端口
服务器上默认SSH端口为22,我们部署HFish出来的SSH蜜罐
使用的默认端口也是22,如果不修改宿主机端口会出现端口冲突的情况.
修改shhd_config
在/etc/ssh/sshd_config
中取消Port 22
的注释并新增Port 34567
...
# If you want to change the port on a SELinux system, you have to tell
# SELinux about this change.
# semanage port -a -t ssh_port_t -p tcp #PORTNUMBER
#
Port 22
Port 34567
...
保存退出后重启sshd
# systemctl restart sshd
增加SElinux端口
在CentOS7系统更改shhd_config的过程中会发现在Port上方有一段注释。所以,下一步就是告诉SElinux这步操作,我们需要用到semanage
- 安装semanage
# yum provides semanage
# yum -y install policycoreutils-python
- 检测ssh端口
# semanage port -l | grep ssh
ssh_port_t tcp 22
- 添加新端口34567
# semanage port -a -t ssh_port_t -p tcp 34567
- 重新检测端口,如果出现34567与22则成功
# semanage port -l | grep ssh
ssh_port_t tcp 34567, 22
开放防火墙端口
CentOS7中需要在firewalld中开放对应端口,为了使规则永久生效加上permanent
参数
# firewall-cmd --zone=public --permanent --add-port=34567/tcp
# firewall-cmd --reload
禁用22端口
在经过上述操作后,打开新终端能够使用新的端口访问VPS后,禁用SSH默认的22端口。
同样,在/etc/ssh/sshd_config
中只需要再次注释掉Port 22
即可
...
# Port 22
Port 34567
...
保存退出后再次重启sshd
# systemctl restart sshd
部署HFish
编写compose.yml
使用vim编辑docker-compose.yml写入如下内容,保存退出后使用docker-compose up -d
启动即可。
version: "3"
networks:
honeypot:
driver: bridge
services:
hfish:
image: imdevops/hfish:latest
container_name: hfish
restart: always
environment:
- USERNAME=akiya # 后台管理系统登录账号
- PASSWORD=thepassw0rd # 后台管理系统登录密码
ports:
- "21:21" # FTP
- "22:22" # SSH
- "23:23" # Telnet
- "3306:3306" # Mysql
- "6379:6379" # Redis
- "8080:8080" # 暗网
- "8989:8989" # 插件
- "9000:9000" # Web
- "9001:9001" # 系统管理后台
- "11211:11211" # Memcache
volumes:
- $PWD/data:/opt
networks:
- honeypot
开放对应防火墙端口
firewall-cmd --zone=public --permanent --add-port=21/tcp
firewall-cmd --zone=public --permanent --add-port=22/tcp
firewall-cmd --zone=public --permanent --add-port=23/tcp
firewall-cmd --zone=public --permanent --add-port=3306/tcp
firewall-cmd --zone=public --permanent --add-port=6379/tcp
firewall-cmd --zone=public --permanent --add-port=8080/tcp
firewall-cmd --zone=public --permanent --add-port=8989/tcp
firewall-cmd --zone=public --permanent --add-port=9000/tcp
firewall-cmd --zone=public --permanent --add-port=9001/tcp
firewall-cmd --zone=public --permanent --add-port=11211/tcp
firewall-cmd --reload
访问后台管理
启动Docker并放行防火墙后,我们使用浏览器访问IP:9001,并登陆compose文件中设置的用户名密码,即可看到相应的一个大盘界面,具体功能请参考官方文档。