美文网首页
用docker-compose安装harbor v2.5.3(+

用docker-compose安装harbor v2.5.3(+

作者: 橘子基因 | 来源:发表于2023-03-23 17:24 被阅读0次

环境

1. 使用oras 拉取trivy-db:2

因为国内访问trivy-db经常出现网络问题,这边使用oras工具提前将trivy-db下载下来,使用离线的trivy-db对镜像进行扫描。
安装oras

export VERSION="1.0.0" 
curl -LO "https://github.com/oras-project/oras/releases/download/v${VERSION}/oras_${VERSION}_linux_amd64.tar.gz"
mkdir -p oras-install/
tar -zxf oras_${VERSION}_*.tar.gz -C oras-install/
sudo mv oras-install/oras /usr/local/bin/
rm -rf oras_${VERSION}_*.tar.gz oras-install/

查看oras版本

/home # oras version                                                                                                                                                      
Version:        1.0.0
Go version:     go1.20.2
Git commit:     b58e7b910ca556973d111e9bd734a71baef03db2
Git tree state: clean

使用oras拉取trivy-db 2

oran@trivy:~$ oras pull ghcr.io/aquasecurity/trivy-db:2
Downloading 0d70da8057a9 db.tar.gz
Downloaded  0d70da8057a9 db.tar.gz
Pulled [registry] ghcr.io/aquasecurity/trivy-db:2
Digest: sha256:e455efdcc885690b91a01ee58d5c449705c899203de35e1d9377a4f46a1c8674
oran@trivy:~$ ls -lh db.tar.gz
-rw-rw-r-- 1 oran oran 37M Mar 24 06:19 db.tar.gz

2. 下载harbor

下载harbor installer

wget https://github.com/goharbor/harbor/releases/download/v2.5.3/harbor-online-installer-v2.5.3.tgz

解压到本地

tar -xzvf harbor-offline-installer-v2.5.3.tgz 

拷贝harbor.yml

cp harbor.yml.tmpl harbor.yml

3. 修改配置文件

3.1 创建私有证书

#创建ca.key
oran@trivy:~$ openssl genrsa -out ca.key 4096
#创建c.crt
oran@trivy:~$ sudo openssl req -x509 -new -nodes -sha512 -days 3650  -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=oran-registry.harbor.k8s.local" -key ca.key  -out ca.crt
#创建server.key
oran@trivy:~$ sudo openssl genrsa -out oran-registry.key 4096
#创建server.csr
oran@trivy:~$ sudo openssl req -sha512 -new     -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=oran-registry.harbor.k8s.local"  -key oran-registry.key -out oran-registry.csr
#创建x509 v3 扩展 文件
oran@trivy:/home/certs$ cat v3.ext 
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names

[alt_names]
DNS.1=oran-registry.harbor.k8s.local
DNS.2=oran-registry
#使用v3.ext文件为harbor服务器创建证书
oran@trivy:~$ sudo openssl x509 -req -sha512 -days 3650     -extfile v3.ext     -CA ca.crt -CAkey ca.key -CAcreateserial     -in oran-registry.csr -out oran-registry.crt
-out oran-registry.crt
Certificate request self-signature ok
subject=C = CN, ST = Beijing, L = Beijing, O = example, OU = Personal, CN = oran-registry.harbor.k8s.local

将证书放在对应目录下

#创建目录
oran@trivy:~$ mkdir -p /etc/docker/certs.d/oran-registry.harbor.k8s.local
#将crt文件转换为cert文件
oran@trivy:~$ openssl x509 -inform PEM -in oran-registry.crt -outoran-registry.cert
#将cert和key放在对应目录下
oran@trivy:~$ cp oran-registry.cert oran-registry.key ca.crt/etc/docker/certs.d/oran-registry.harbor.k8s.local/

重启docker

oran@trivy:~$ systemctl restart docker

3.2 修改hostname

我这里使用的示例为hostname: oran-registry.harbor.k8s.local,修改为自己对应的hostname即可。

# The IP address or hostname to access admin UI and registry service.
# DO NOT use localhost or 127.0.0.1, because Harbor needs to be accessed by external clients.
hostname: oran-registry.harbor.k8s.local

3.3 修改证书路径

修改为对应的证书路径

https:
  # https port for harbor, default is 443
  port: 443
  # The path of cert and key files for nginx
  certificate: /home/certs/oran-registry.crt
  private_key: /home/certs/oran-registry.key

3.4 修改密码

根据个人需求修改harbor的password和database的password

harbor_admin_password: <Your Password>

# Harbor DB configuration
database:
  # The password for the root user of Harbor DB. Change this before any production use.
  password: <Your Password>
  # The maximum number of connections in the idle connection pool. If it <=0, no idle connections are retained.
  max_idle_conns: 100
  # The maximum number of open connections to the database. If it <= 0, then there is no limit on the number of open connections.
  # Note: the default number of connections is 1024 for postgres of harbor.
  max_open_conns: 900

3.5 为trivy设置离线配置

因为trivy扫描会联网拉取trivy-db,国内网络无法访问,这里使用离线版trivy-db v2版本。设置跳过更新和离线扫描都为true。

trivy:
  # ignoreUnfixed The flag to display only fixed vulnerabilities
  ignore_unfixed: false
  # skipUpdate The flag to enable or disable Trivy DB downloads from GitHub
  #
  # You might want to enable this flag in test or CI/CD environments to avoid GitHub rate limiting issues.
  # If the flag is enabled you have to download the `trivy-offline.tar.gz` archive manually, extract `trivy.db` and
  # `metadata.json` files and mount them in the `/home/scanner/.cache/trivy/db` path.
  skip_update: true
  #
  # The offline_scan option prevents Trivy from sending API requests to identify dependencies.
  # Scanning JAR files and pom.xml may require Internet access for better detection, but this option tries to avoid it.
  # For example, the offline mode will not try to resolve transitive dependencies in pom.xml when the dependency doesn't
  # exist in the local repositories. It means a number of detected vulnerabilities might be fewer in offline mode.
  # It would work if all the dependencies are in local.
  # This option doesn’t affect DB download. You need to specify "skip-update" as well as "offline-scan" in an air-gapped environment.
  offline_scan: true
  #
  # insecure The flag to skip verifying registry certificate
  insecure: false

3.5.1 拷贝trivy-db到本地

创建db目录并将下载好的db文件放在里面并修改权限

mkdir -p /data/trivy-adapter/trivy/db/

*注:如果之前启动了harbor需要使用docker-compose down 命令将服务停下;如果之前通过install.sh --with-trivy安装过trivy则需要将/data/trivy-adapter/trivy/db/下的文件清空rm -rf /data/trivy-adapter/trivy/db/

解压db.tar.gz到对应目录

tar -xzvf db.tar.gz -C /data/trivy-adapter/trivy/db/

修改trivy-db权限

chown -R 10000:10000 /data/trivy-adapter/trivy/db/

4. 安装harbor

安装带有trivy的harbor,可根据个人需求添加相关参数

bash install.sh --with-trivy

查看harbor,运行都为healthy


image.png

5. 测试

5.1 docker login

oran@trivy:~/harbor/harbor$ sudo docker login oran-registry.harbor.k8s.local
Authenticating with existing credentials...
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded

5.2 harbor web

image.png

5.3 镜像的拉取与推送

docker push

oran@trivy:~/harbor/harbor$ sudo docker push oran-registry.harbor.k8s.local/library/nginx:latest 
The push refers to repository [oran-registry.harbor.k8s.local/library/nginx]
a1bd4a5c5a79: Pushed 
597a12cbab02: Pushed 
8820623d95b7: Pushed 
338a545766ba: Pushed 
e65242c66bbe: Pushed 
3af14c9a24c9: Pushed 
latest: digest: sha256:557c9ede65655e5a70e4a32f1651638ea3bfb0802edd982810884602f700ba25 size: 1570

docker pull

oran@trivy:~/harbor/harbor$ sudo docker pull oran-registry.harbor.k8s.local/library/nginx:latest
latest: Pulling from library/nginx
f1f26f570256: Pull complete 
84181e80d10e: Pull complete 
1ff0f94a8007: Pull complete 
d776269cad10: Pull complete 
e9427fcfa864: Pull complete 
d4ceccbfc269: Pull complete 
Digest: sha256:557c9ede65655e5a70e4a32f1651638ea3bfb0802edd982810884602f700ba25
Status: Downloaded newer image for oran-registry.harbor.k8s.local/library/nginx:latest
oran-registry.harbor.k8s.local/library/nginx:latest

5.4 漏洞扫描

点击扫描


image.png

扫描成功


image.png

查看漏洞详情


image.png

相关文章

  • harbor

    更新yum源 升级docker 安装docker-compose 安装harbor 修改vim harbor.ym...

  • docker仓库 harbor

    docker仓库 Harbor 修改docker仓库地址 安装docker-compose 下载harbor 修改...

  • Harbor部署

    一、Docker-compose部署 二、Harbor部署 1、下载Harbor安装文件 选择离线安装,下载off...

  • harbor安装(docker方式)

    前置安装docker-compose 安装完成docker-compose后,就下载harbor安装包,里面有ym...

  • Harbor 搭建

    搭建Harbor 1.前置条件,安装docker 2.安装docker-compose 3.harbor搭建和启动...

  • k8s部署微服务

    前提:已安装好k8s集群 1.安装harbor 先在安装harbor的节点上安装docker-compose:cu...

  • Harbor镜像仓库部署

    1,Harbor安装部署 准备环境 安装docker-compose 下载harbor二进制软件包 准备配置文件 ...

  • 企业级镜像仓库Harbor

    Harbor 部署HTTP 安装docker-compose 安装并配置habor 访问网站 Docker登录 h...

  • CentOS环境下搭建企业级docker仓库Harbor

    搭建harbor需要先安装docker和docker-compose,一、安装docker比较简单,直接使用命令:...

  • Vmware的容器仓库harbor

    准备 Harbor离线包(速度快) Docker-compose 证书,如果使用https 开始 安装Docker...

网友评论

      本文标题:用docker-compose安装harbor v2.5.3(+

      本文链接:https://www.haomeiwen.com/subject/fxiirdtx.html