一 参考资料和项目地址

二1Panel面板上docker方式部署JavaSec项目步骤

2.1 环境准备

  1. 一台Linux机器,可以是虚拟机、本地机器、云服务器,系统不限如:Ubuntu、centos、debain、Kali.
  2. 安装1panel面板
    bash -c "$(curl -sSL https://resource.fit2cloud.com/1panel/package/v2/quick_start.sh)"
    
    • 如果遇到 Docker 安装失败等问题,可以尝试运行以下脚本:
    bash <(curl -sSL https://linuxmirrors.cn/docker.sh)
    
    • 安装成功后,控制台会打印面板访问信息,可通过浏览器访问 1Panel:http://目标服务器 IP 地址:目标端口/安全入口(如果使用的是云服务器,请至安全组开放目标端口。)
    • ssh 登录 1Panel 服务器后,执行 1pctl user-info 命令可获取安全入口(entrance)

2.2 项目下载和修改

  1. 访问JavaSecLab项目地址下载源码文件和,最新的项目Jar包。
    在这里插入图片描述

  2. 在1panel文件控制面板中,将项目压缩包上传到服务器/opt/1panel/apps目录下,进行解压并命名为JavaSecLab,并在/opt/1panel/apps/JavaSecLab目录下新建target目录,并将下载的jar包上传。
    在这里插入图片描述

  3. 如果本机3306端口已经被使用,请修改项目中docker-sompose文件中的mysql服务外部映射端口,如3308。

    version: "3"
    services:
      mysql:
        image: mysql:8.0.33
        container_name: Container-MYSQL8
        restart: always
        ports:
          - 3308:3306
    
  4. 同时防止默认的容器网络于本地网络冲突,可以修改docker-sompose文件使用1panel网络,完整docker-sompose文件如下:

    version: "3"
    services:
      mysql:
        image: mysql:8.0.33
        container_name: Container-MYSQL8
        restart: always
        ports:
          - 3308:3306
        environment:
          MYSQL_ROOT_PASSWORD: QWE123qwe
          MYSQL_DATABASE: JavaSecLab
        volumes:
          - ./sql/JavaSecLab.sql:/docker-entrypoint-initdb.d/JavaSecLab.sql
        networks:
          #- JavaSecLabNet
          - 1panel-network
    
      JavaSecLab:
        image: javaseclab:1.4
        container_name: Container-JavaSecLab
        restart: always
        build: .
        ports:
          - 80:80
        environment:
          - TZ=Asia/Shanghai  # 设置时区上海(GMT+8)
        depends_on:
          - mysql
        volumes:
          - ./logs:/logs      # 记录日志信息
    
        networks:
          # - JavaSecLabNet
          - 1panel-network
      portainer:
        image: portainer/portainer-ce:latest
        container_name: portainer
        restart: always
        ports:
          - 9000:9000
          - 18001:8080
        volumes:
          - /var/run/docker.sock:/var/run/docker.sock
        networks:
          # - JavaSecLabNet
          - 1panel-network
    # networks:
    #   JavaSecLabNet:
    #     driver: bridge
    #     ipam:
    #       config:
    #         - subnet: 192.168.1.0/28
    networks:
        1panel-network:
            external: true
    

2.3 容器构建与启动

  1. 执行构建于启动命令
cd /opt/1panel/apps/JavaSecLab
docker-compose up -d
  1. 访问ip:80即可打开web网站。默认用户名和密码都为admin。swagger UI地址为ip/swagger-ui/index.html

2.4 内容介绍

在这里插入图片描述

  • 项目内容主要分为两大块内容:常规漏洞和Java专题。有助于拥有后端开发者或专注于java后端口漏洞工作者,学习java后端技术架构系统上的漏洞和安全学习。

三 常见问题解决

  1. 默认项目使用192.168.1.0/24网段的桥接网络,存在与本地局域网环境冲突的问题,导致1panel面板和服务器SSH连接失败的问题。
  • 修改使用1panel网络可以解决这个问题。如果服务器面板和SSH无法连接,如果服务器是本地机器,可以使用键鼠、显示器连接机器,删除容器和网络,设置1panel默认网络,重新构建。
  1. Mysql容器通信端口被本地Mysql服务占用,可以修改使用其他端口,需要修改docker-compose文件中的mysql外部映射端口。不需要修改项目配置的3306端口,因为容器之间采用内部端口通信,与外部端口无关。

四 学习建议

  • 建议相关开发者,先学习基础的安全和漏洞相关的知识,如:SQL漏洞、XSS、CSRF等。
  • 再结合java后端相关开发知识,搭建此漏洞平台进行深入学习。
Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐