数据仓库&镜像漏洞扫描器安装部署

数据仓库&镜像漏洞扫描器安装部署

Harbor是一个开源的企业级Docker Registry服务,由VMware公司中国团队设计,旨在为企业用户提供一个私有、安全的Docker镜像仓库解决方案。Harbor在Docker官方的Registry基础上增加了诸如权限管理、LDAP认证、审计、管理界面、高可用性(HA)等企业级必需的功能,并且针对中国市场和用户需求,设计了镜像复制和中文支持等特点。

Harbor的主要功能和特点包括:

  1. 基于角色的访问控制:用户和Docker镜像仓库之间通过项目进行组织管理,一个用户可以对多个镜像仓库在同一命名空间(project)里有不同的权限。
  2. 镜像复制策略:支持在多个Harbor实例之间复制镜像,适用于负载均衡、高可用、混合云和多云的场景。
  3. 图形化用户界面:通过浏览器可以轻松管理镜像仓库,包括浏览、检索当前Docker镜像仓库,以及管理项目和命名空间。
  4. 支持LDAP认证:Harbor可以集成企业内部已存在的AD/LDAP用户认证系统,实现统一的身份管理。
  5. 审计管理:所有对镜像仓库的操作都被记录下来,便于审计和追踪。
  6. API操作支持:管理员可以通过API调用接口,与其他程序进行集成。

Harbor的架构包括几个关键组件:

  • Proxy:Harbor自动生成一个nginx容器,作为前端代理,负责将请求转发到后端不同的应用。
  • Registry:负责存储Docker镜像,处理Docker pull/push命令,以及访问控制等。

- 硬件要求

资源名称 最低配置 推荐配置
CPU 2 CPU 4 CPU
内存 4GB 8GB
磁盘 40GB 160GB

- 软件要求

软件名称 版本
Docker Engine Version 20.10.10-ce+或更高
Docker Compose docker-compose (v1.18.0+) 或 docker compose v2 (docker-compose-plugin)
OpenSSL 用于生成证书与密钥,推荐最新版本

- 网络要求

端口 协议
443 HTTPS
4443 HTTPS
80 HTTP

安装Docker

安装Harbor

  1. 下载官方安装文件:Harbor Official Releases
  • 在线安装方式(Online installer):在线安装文件从Docker Hub下载Harbor镜像,体积最小。
  • 离线安装方式(Offline installer):离线安装文件包含预先构建好的Harbor镜像。
  1. 使用tar解压安装文件:

    1
    2
    tar xzvf harbor-online-installer-v2.10.0.tgz
    tar xzvf harbor-offline-installer-v2.10.0.tgz
  2. 执行安装脚本:

    1
    bash  ./install.sh

    修改Harbor配置文件 Harbor.yml

    参数 参考值
    hostname <域名>
    http 80
    https 443
    certificate SSL证书(.pem)
    private_key SSL私钥(.key)
    harbor_admin_password admin用户密码
  3. 停止&启动Harbor服务:

1
2
docker compose down
docker compose -f docker-compose.yml up -d

image-20240201103429965

Trivy主要功能和特点:

​ Trivy是一个开源的漏洞扫描器,由Aqua Security开发。它主要用于扫描容器镜像、文件系统、Git仓库以及Kubernetes集群和资源中的安全漏洞。Trivy的检测范围包括操作系统包、特定语言的包以及基础设施即代码(IaC)文件,如Terraform和Kubernetes。
Trivy的特点如下:

  1. 多功能性:Trivy可以扫描多种工件,包括容器镜像、文件系统、Git仓库和Kubernetes资源,满足不同的安全检测需求。

  2. 快速性:Trivy的第一次扫描可能需要10秒钟左右,之后的扫描只需要几秒钟,这使得它非常适合CI/CD管道中的自动化安全检查。

  3. 无状态设计:Trivy是无状态的,不需要维护漏洞数据库,这减少了维护工作并保证了扫描结果的及时性。

  4. 支持多种安装方式:Trivy可以通过多种方式安装,包括二进制文件、APT、YUM、Homebrew、Docker和源码编译等,方便不同环境的部署。

  5. 集成与自动化:Trivy支持CI/CD集成,可以与Jenkins、Travis CI、CircleCI、GitLab CI等流行的CI/CD工具集成,实现自动化安全扫描。

  6. 社区支持:Trivy有一个活跃的开源社区,不断更新和改进,用户可以获得技术支持、报告问题和贡献代码。

​ Trivy的使用非常简单,通常只需要指定要扫描的目标,如容器的图像名称,Trivy就会自动进行扫描并输出结果。扫描结果包括漏洞的详细信息和修复建议,帮助用户及时发现和修复潜在的安全风险。
​ 在持续集成(CI)环境中,Trivy常用于在部署前扫描工件,确保只有安全和合规的工件被部署到生产环境中。Trivy Operator是一个Kubernetes Operator,它可以自动扫描集群中的容器镜像,并提供持续的安全监控。

安装Trivy

使用包管理工具安装:

  • RHEL/CentOS:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    RELEASE_VERSION=$(grep -Po '(?<=VERSION_ID=")[0-9]' /etc/os-release)
    cat << EOF | sudo tee -a /etc/yum.repos.d/trivy.repo
    [trivy]
    name=Trivy repository
    baseurl=https://aquasecurity.github.io/trivy-repo/rpm/releases/$RELEASE_VERSION/\$basearch/
    gpgcheck=1
    enabled=1
    gpgkey=https://aquasecurity.github.io/trivy-repo/rpm/public.key
    EOF
    sudo yum -y update
    sudo yum -y install trivy
  • Debian/Ubuntu

    1
    2
    3
    4
    5
    sudo apt-get install wget apt-transport-https gnupg lsb-release
    wget -qO - https://aquasecurity.github.io/trivy-repo/deb/public.key | gpg --dearmor | sudo tee /usr/share/keyrings/trivy.gpg > /dev/null
    echo "deb [signed-by=/usr/share/keyrings/trivy.gpg] https://aquasecurity.github.io/trivy-repo/deb $(lsb_release -sc) main" | sudo tee -a /etc/apt/sources.list.d/trivy.list
    sudo apt-get update
    sudo apt-get install trivy
  • Homebrew

    1
    brew install trivy
  • Arch Linux

    1
    pacman -S trivy
  • MacPorts

    1
    sudo port install trivy

image-20240201103518122

Harbor Scanner Adapter for Trivy集成使用

1
2
3
4
5
6
7
8
9
10
11
12
docker run --name trivy-adapter -d --rm \
-p 8181:8181 \
--env HTTP_PROXY='<http://proxy:port>' \
--env HTTPS_PROXY='<http://proxy:port>' \
--env NO_PROXY='.local,portal,clair-adapter,chartmuseum,trivy-adapter,core,redis' \
-e "SCANNER_LOG_LEVEL=trace" \
-e "SCANNER_TRIVY_DEBUG_MODE=true" \
-e "TRIVY_NON_SSL=true" \
-e "SCANNER_API_SERVER_ADDR=:8181" \
-e "SCANNER_REDIS_URL=redis://redis:6379" \
--network harbor_harbor \
aquasec/harbor-scanner-trivy:0.30.21
  • trivy使用git下载漏洞库,所以需要配置代理,连接不到github就会扫描失败。

​ 系统管理 -> 审查服务 -> 新建扫描器 -> 地址:ip:8181

image-20240201103817289

image-20240201104022268