centos上安装Harbor,并添加trivy扫描器+离线trivy db数据库

分类:笔记 日期:2023-11-09 作者:caocaofff 浏览:584

1 安装docker-compose

下载:https://github.com/docker/compose/releases,选择合适的版本进行下载,我使用的最新版

将 docker-compose-linux-x86_64 上传到服务器上,将其移动到/usr/local/bin/ 路径中,重命名为docker-compose,并且赋予其执行权限,命令如下:

mv docker-compose-Linux-x86_64 /usr/local/sbin/docker-compose
chmod +x /usr/local/sbin/docker-compose

验证:使用docker-compose -v 查看版本号,如果可以查看则表示安装成功

2 下载、安装、配置harbor

2.1 下载harbor

前提:安装了docker-compose
下载:进入https://github.com/goharbor/harbor/releases,选择tgz格式的文件进行下载

2.2 配置

解压:tar -zxvf harbor-offline-installer-v2.2.4.tgz -C /usr/local/
配置:cd /usr/local/harbor/、cp harbor.yml.tmpl harbor.yml、vim harbor.yml,修改配置如下:

【hostname】 将域名修改为服务器的IP地址 【port】 默认端口为80,如果被占用需要修改为别的端口
【https、certificate、private_key】请看2.3章节,或者可以参考:https://goharbor.io/docs/2.2.0/install-config/configure-https/
【harbor_admin_password】 web页面上admin的密码
【database.password】 数据库密码
【data_volume】 设置数据存放目录,目录会自动创建,可修改
trivy: 下面的【skip_update: true】、【offline_scan: true】

2.3 ssl配置

检查是否已经安装openssl:

openssl version

第一步:生成私钥
进入/usr/local/harbor/目录,执行命令:

openssl genrsa -des3 -out server.key 2048

输入一个4位以上的密码,例如1234。

第二步:生成CSR(证书签名请求)

openssl req -new -key server.key -out server.csr -subj "/C=CN/ST=Zhejiang/L=Hangzhou/O=cf/OU=cf/CN=192.168.1.1"

subj参数说明如下:

/C= Country 国家
/ST= State or Province 省
/L= Location or City 城市
/O= Organization 组织或企业
/OU= Organization Unit 部门
/CN= Common Name 域名或IP

第三步:去除私钥中的密码
在第1步创建私钥的过程中,由于必须要指定一个密码。而这个密码会带来一个副作用,那就是在每次启动Web服务器时,都会要求输入密码,

这显然非常不方便。要删除私钥中的密码,操作如下:

openssl rsa -in server.key -out server.key

第四步:生成自签名SSL证书
-days 证书有效期-天

openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt

需要用到的证书文件为:server.crt 和 server.key

X.509证书包含三个文件:key,csr,crt。

key是服务器上的私钥文件,用于对发送给客户端数据的加密,以及对从客户端接收到数据的解密
csr是证书签名请求文件,用于提交给证书颁发机构(CA)对证书签名
crt是由证书颁发机构(CA)签名后的证书,或者是开发者自签名的证书,包含证书持有人的信息,持有人的公钥,以及签署者的签名等信息
备注:在密码学中,X.509是一个标准,规范了公开秘钥认证、证书吊销列表、授权凭证、凭证路径验证算法等。

2.4 安装

准备配置文件(更新配置):./prepare,执行完该命令会生成【common目录】和【docker-compose.yml文件】
安装:./install.sh --with-trivy,安装成功后会自动启动服务

--with-chartmuseum --with-notary 均已废弃

2.5 查看

docker-compose ps 使用该命令查看,所有容器都是running状态

2.6 访问harbor

登录:docker login 192.168.1.1,然后输入账号密码,成功登录。

现在即可使用docker push推送命令将镜像推送到harbor中(先打tag)

现在假设你push了一个nginx镜像,此时你浏览器登录https://192.168.1.1,使用trivy扫描器扫描镜像,肯定会出现报错:

2021-04-19T07:37:36.182Z [31mERROR[0m The first run cannot skip
downloading DB 2021-04-19T07:37:36.182Z [31mFATAL[0m database error:
--skip-update cannot be specified on the first run : general response handler: unexpected status code: 500, expected: 200

因为你没有本地数据库,Trivy 的默认地址是/home/{当前用户}/.cache/trivy,数据库在其db目录,由于现在是使用了docker volumes,所以在/data/trivy-adapter/trivy新建db文件夹

mkdir /data/trivy-adapter/trivy/db

下载离线数据库文件,解压到db文件夹。
V1版本不要用,请直接下载下面的V2版本

https://download.hummerrisk.com/offline-package/trivy/trivy-db/trivy-offline-v2-20231023.db.tar.gz

压缩包里面是metadata.json、trivy.db(新版本还分了db和java-db目录,需要将db目录的文件移出来)
给权限

chown 10000:10000 *

你现在再扫描,能正常扫描出漏洞了。

2.7 卸载

docker-compose down
rm -rf /usr/local/harbor

参考:

https://blog.csdn.net/ben_na_/article/details/121053722
https://blog.csdn.net/lookBackward/article/details/113572436
https://blog.csdn.net/weixin_38299404/article/details/116532027
https://github.com/HummerRisk/HummerRisk/issues/280

CC版权: 本篇博文采用《CC 协议》,转载必须注明作者和本文链接

评论 (暂无评论)

发表评论

昵称:  
邮箱:  
网址:

验证码:captcha