Linux下载部署
联网环境,一键安装
特别注意:Centos 是我们的原生开发和主力测试系统,我们最优推荐各位使用Centos系统进行安装。
当前HFish启动后会有两个进程,其中"hfish"进程为管理进程,负责监测、拉起和升级蜜罐主程序,"管理端"进程为蜜罐主程序进程,其执行蜜罐软件程序。` `Linux版本HFish管理端数据库及配置文件都存储在 /usr/share/hfish 目录下,重装时会自动读取目录下的配置和数据。
如果您部署的环境为Linux,且可以访问互联网。我们为您准备了一键部署脚本进行安装和配置,在使用一键脚本前,请先配置防火墙
请防火墙开启4433、4434,确认返回success(如之后蜜罐服务需要占用其他端口,可使用相同命令打开。)
firewall-cmd --add-port=4433/tcp --permanent #(用于web界面启动)
firewall-cmd --add-port=4434/tcp --permanent #(用于节点与管理端通信)
firewall-cmd --reload
使用root用户,运行下面的脚本。
bash <(curl -sS -L https://hfish.net/webinstall.sh)
完成安装
登陆链接:https://[ip]:4433/web/
账号:admin
密码:HFish2021
如果管理端的ip是192.168.1.1,登陆链接为:https://192.168.1.1:4433/web/
安装完成后,HFish会自动在管理端上创建一个节点。可进行登录后,在「节点管理」列表中进行查看。
无法联网,手动安装
特别注意:Centos是我们的原生开发和主力测试系统,我们最优推荐各位使用
Centos系统进行安装。
如果您的环境无法联网,可以尝试手动安装。
第一步:下载安装包:HFish-Linux-amd64 ( Linux x86 架构 64 位系统)
按如下步骤进行安装 (以Linux 64位系统为例):
第二步: 在当前目录创建一个路径解压安装包
mkdir hfish
第三步:将安装文件包解压到hfish目录下
tar zxvf hfish-<% version %>-linux-amd64.tgz -C hfish
第四步:请防火墙开启4433、4434和7879,确认返回success(如果有其他服务需要打开端口,使用相同命令打开。
firewall-cmd --add-port=4433/tcp --permanent (用于web界面启动)
firewall-cmd --add-port=4434/tcp --permanent (用于节点与管理端通信)
firewall-cmd --reload
第五步:进入安装目录直接运行install.sh
cd hfish
sudo ./install.sh
第六步:登陆web界面
登陆链接:https://[ip]:4433/web/
账号:admin
密码:HFish2021
如果管理端的ip是192.168.1.1,登陆链接为:https://192.168.1.1:4433/web/
在安装完成后,HFish会自动在管理端上创建一个节点。可在节点管理进行查看。
特别注意:
如果部署节点在外网,可能会出现tcp连接超过最大连接数限制(1024个),导致其他连接被拒绝的情况。在这种情况下,可以手动放开机器tcp最大连接数。
参考解决链接
https://www.cnblogs.com/lemon-flm/p/7975812.html
Windows下载部署
Windows 3.0.1 环境安装流程
第一步:下载安装包HFish-Windows-amd64 (Windows x86 架构 64 位系统),解压缩
第二步:防火墙上进出站双向打开TCP/4433、4434端口放行(如需使用其他服务,也需要打开端口)
第三步:进入HFish-Windows-amd64文件夹内,运行文件目录下的install.bat (脚本会在当前目录进行安装HFish)
第四步:登陆web界面
登陆链接:https://[ip]:4433/web/
账号:admin
密码:HFish2021
如果管理端的地址是192.168.1.1,登陆链接为:https://192.168.1.1:4433/web/
注意事项:
1、当前HFish分为两个进程,"hfish"进程为管理进程,负责监测、拉起和升级蜜罐主程序。"管理端"进程为蜜罐主程序进程,其执行蜜罐软件程序。因此,安装时候,请务必按照要求,执行hfish进程;如果直接执行管理端程序,可能会导致程序不稳定,升级失败等情况。
2、HFish的windows版数据库文件当前存储在 C:\Users\Public\hfish 目录,重装HFish后,HFish默认自动读取该目录内的配置和数据"。
3、如果访问页面失败,检查Windows防火墙是否放开TCP/4433和4434
Docker下载部署
Docker版本简介
Docker是我们推荐的部署方式之一,当前的版本拥有以下特性:
- 自动升级:每小时请求最新镜像进行升级,升级不会丢失数据。
- 数据持久化:在宿主机/usr/share/hfish目录下建立data目录用于存放攻击数据,建立logs目录用于存放日志。
注意:当前Docker版本使用host模式启动,如果您不希望Docker的管理端开放除4433和4434以外的端口,可暂停本机节点。
Docker默认安装说明
在Docker中安装管理端:
步骤1:确认已安装并启动Docker
docker version
步骤2:运行版本HFish(框内全部复制,粘贴,执行即可)
docker run -itd --name hfish \
-v /usr/share/hfish:/usr/share/hfish \
--network host \
--privileged=true \
threatbook/hfish-server:latest
步骤3:配置后续自动升级(框内全部复制,粘贴,执行即可)
docker run -d \
--name watchtower \
--restart unless-stopped \
-v /var/run/docker.sock:/var/run/docker.sock \
--label=com.centurylinklabs.watchtower.enable=false \
--privileged=true \
containrrr/watchtower \
--cleanup \
hfish \
--interval 3600
步骤4:登陆HFish
登陆地址:https://ip:4433/web/
初始用户名:admin
初始密码:HFish2021
Docker升级失败
如果您配置的了Docker镜像代理,那么有可能会导致watchower无法生效,在这里您可以手动执行:
docker pull threatbook/hfish-server:3.0.1
docker tag threatbook/hfish-server:3.0.1 threatbook/hfish-server:latest
docker rm -f hfish
docker run -itd --name hfish \
-v /usr/share/hfish:/usr/share/hfish \
--network host \
--privileged=true \
threatbook/hfish-server:latest
未配置自动升级情况下,Docker单次手动升级说明
步骤1:配置watchover(框内全部复制,粘贴,执行即可)
docker run -d \
--name watchtower \
--restart unless-stopped \
-v /var/run/docker.sock:/var/run/docker.sock \
--label=com.centurylinklabs.watchtower.enable=false \
--privileged=true \
containrrr/watchtower \
--cleanup \
hfish \
--interval 10
步骤2: 等待升级成功后,登录页面,确认升级完成
步骤3: 取消watchover自动升级
docker stop watchtower
配置后,如果之后定期升级,就可以不断的通过 docker start watchtower 和 docker stop watchtower来完成对hfish镜像的手动升级
Docker修改持久化配置后重启说明
步骤1:在usr/share/hfish/config.toml下面修改配置
步骤2: 重启docker容器
docker restart hfish
卸载HFish
卸载管理端
1. 卸载Linux管理端
1、删除计划任务进程
注意:不同的linux版本结束方式不同,需要自己确认
2、结束管理端进程
# 结束hfish和hfish-server的进程
root@HFish~# ps ax | grep ./hfish | grep -v grep
8435 ? Sl 97:59 ./hfish
8436 ? Sl 97:59 ./hfish-server
root@HFish:~# kill -9 8435
root@HFish:~# kill -9 8436
3、删除文件夹
# 使用install.sh安装的HFish会被部署到/opt/hfish目标,将整个删除即可
root@HFish~# rm -rf /opt/hfish
4、清理所有配置(如果后续还要安装,建议不要删除,否则下次使用需要完全重新配置)
# 使用install.sh安装的HFish会在/usr/share/hfish下建立全局变量
root@HFish~# rm -rf /usr/share/hfish
5、删除MySQL数据库配置(SQLite可忽略)
# 删除HFish数据库
root@HFish:~# mysql -h127.0.0.1 -uroot -p
Enter password:*******(默认密码详见config.ini配置文件)
mysql> DROP DATABASE hfish;
# 停止MySQL服务
root@HFish:~# systemctl stop mysqld
root@HFish:~# systemctl disable mysqld
6、可还原SSH和Firewall配置
# 清除SSH config内对于访问来源的限制
root@HFish~# vi /etc/ssh/sshd_config
注释掉以 AllowUsers root@ 开头的行
# 重启SSH服务
root@HFish~# systemctl restart sshd
# 清除Firewall服务的规则(请根据实际情况删除!)
root@HFish~# firewall-cmd --permanent --list-all | grep ports | head -n 1 | \
cut -d: -f2 | tr ' ' '\n' | xargs -I {} firewall-cmd --permanent --remove-port={}
# 重启Firewall服务
root@HFish~# systemctl restart firewalld
2、卸载Windows管理端
1、删除计划任务进程HFish管理端
2、结束hfish进程
在任务管理器,结束hfish和hfish-server的进程
3、删除管理端文件夹
节点端
1、卸载Linux节点
卸载节点
1、删除计划任务进程
# 打开计划任务,删除带有hfish字样的行
root@HFish~# crontab -e
2、结束client进程
# 结束client的进程
root@HFish~# ps ax | grep ./client | grep -v grep
8435 ? Sl 97:59 ./client
root@HFish:~# kill -9 8435
3、删除client文件夹
文件夹路径为按照自己的安装路径,client端没有全局配置,删除安装文件夹即可
2、删除Windows节点
1、关闭计划任务 HFishClient
2、结束client进程
在任务管理器,结束hfish和client的进程
3、删除client文件夹
文件夹路径为按照自己的安装路径,client端没有全局配置,删除安装文件夹即可