《OpenShift 4.x HOL教程汇总》
说明:本文已经在OpenShift 4.9环境中验证

文章目录

  • Clair 是什么?
  • 在 OpenShift 安装 Clair 环境
  • 安装 Clair 客户端
  • 使用 Clair 对容器镜像进行扫描
  • 参考

Clair 是什么?

Clair 最早是 CoreOS 公司开发的一个容器镜像漏洞扫描工具,后来 CoreOS 被红帽收购,Clair 成为 Red Hat 主导的容器镜像安全漏洞扫描的开源软件 。
作为一款开源软件,Clair 即可单独运行,也可集成到其他软件中运行。红帽镜像注册产品 Quay 就内置了 Clair 作为镜像库的扫描软件。

在 OpenShift 安装 Clair 环境

  1. 创建项目
$ oc new-project quay-enterprise
  1. 创建 clairv4-postgres.yaml 文件,内容如下:
---
apiVersion: apps/v1
kind: Deployment
metadata:name: clairv4-postgresnamespace: quay-enterpriselabels:quay-component: clairv4-postgres
spec:replicas: 1selector:matchLabels:quay-component: clairv4-postgrestemplate:metadata:labels:quay-component: clairv4-postgresspec:volumes:- name: postgres-datapersistentVolumeClaim:claimName: clairv4-postgrescontainers:- name: postgresimage: postgres:11.5imagePullPolicy: "IfNotPresent"resources:limits:cpu: '2'memory: 6Girequests:cpu: '1'memory: 4Giports:- containerPort: 5432env:- name: POSTGRES_USERvalue: "postgres"- name: POSTGRES_DBvalue: "clair"- name: POSTGRES_PASSWORDvalue: "postgres"- name: PGDATAvalue: "/etc/postgres/data"volumeMounts:- name: postgres-datamountPath: "/etc/postgres"
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:name: clairv4-postgreslabels:quay-component: clairv4-postgres
spec:accessModes:- "ReadWriteOnce"resources:requests:storage: "10Gi"volumeName: "clairv4-postgres"
  1. 执行命令,根据 clairv4-postgres.yaml 创建对象。
$ oc create -f clairv4-postgres.yaml
$ oc expose deployment/clairv4-postgres
  1. 创建 config.yaml 文件,内容如下:
introspection_addr: :8089
http_listen_addr: :8080
log_level: debug
indexer:connstring: host=clairv4-postgres port=5432 dbname=clair user=postgres password=postgres sslmode=disablescanlock_retry: 10layer_scan_concurrency: 5migrations: true
matcher:connstring: host=clairv4-postgres port=5432 dbname=clair user=postgres password=postgres sslmode=disablemax_conn_pool: 100run: ""migrations: trueindexer_addr: clair-indexer
notifier:connstring: host=clairv4-postgres port=5432 dbname=clair user=postgres password=postgres sslmode=disabledelivery: 1mpoll_interval: 5mmigrations: true
  1. 执行命令,根据 config.yaml 文件创建 secret 。
$ oc create secret generic clairv4-config-secret --from-file=./config.yaml
  1. 创建 clair-combo.yaml 文件,内容如下:
---
apiVersion: apps/v1
kind: Deployment
metadata:labels:quay-component: clair-comboname: clair-combo
spec:replicas: 1selector:matchLabels:quay-component: clair-combotemplate:metadata:labels:quay-component: clair-combospec:containers:- image: quay.io/projectquay/clair:4.1.0imagePullPolicy: IfNotPresentname: clair-comboenv:- name: CLAIR_CONFvalue: /clair/config.yaml- name: CLAIR_MODEvalue: comboports:- containerPort: 8080name: clair-httpprotocol: TCP- containerPort: 8089name: clair-introprotocol: TCPvolumeMounts:- mountPath: /clair/name: configimagePullSecrets:- name: redhat-pull-secretrestartPolicy: Alwaysvolumes:- name: configsecret:secretName: clairv4-config-secret
---
apiVersion: v1
kind: Service
metadata:name: clairv4labels:quay-component: clair-combo
spec:ports:- name: clair-httpport: 80protocol: TCPtargetPort: 8080- name: clair-introspectionport: 8089protocol: TCPtargetPort: 8089selector:quay-component: clair-combotype: ClusterIP
  1. 执行命令,根据 clair-combo.yaml 文件创建对象。
$ oc apply -f clair-combo.yaml
$ oc expose svc/clairv4
  1. 查看部署的资源
$ oc get all
NAME                                   READY   STATUS    RESTARTS   AGE
pod/clair-combo-6754dcfd75-wwbt9       1/1     Running   0          34s
pod/clairv4-postgres-b9f679dc6-fhmcs   1/1     Running   0          2m51sNAME                       TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)           AGE
service/clairv4            ClusterIP   10.217.4.159   <none>        80/TCP,8089/TCP   34s
service/clairv4-postgres   ClusterIP   10.217.5.64    <none>        5432/TCP          119sNAME                               READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/clair-combo        1/1     1            1           34s
deployment.apps/clairv4-postgres   1/1     1            1           2m51sNAME                                         DESIRED   CURRENT   READY   AGE
replicaset.apps/clair-combo-6754dcfd75       1         1         1       34s
replicaset.apps/clairv4-postgres-b9f679dc6   1         1         1       2m51sNAME                               HOST/PORT                                                                 PATH   SERVICES   PORT         TERMINATION   WILDCARD
route.route.openshift.io/clairv4   clairv4-quay-enterprise.crc-dzk9v-master-0.crc.fa7bdknrdb3y.instruqt.io          clairv4    clair-http                 None

安装 Clair 客户端

从 https://github.com/quay/clair/releases 下载 Clair 客户端。

$ curl -L https://github.com/quay/clair/releases/download/v4.3.5/clairctl-linux-amd64 -o ~/clairctl
$ chmod +x clairctl
$ PATH=$PATH:~/

使用 Clair 对容器镜像进行扫描

$ CLAIR_HOST=http://$(oc get route clairv4 -o jsonpath={.spec.host})
$ clairctl report -host ${CLAIR_HOST} redhat/ubi8
$ clairctl report -host ${CLAIR_HOST} redhat/ubi8:8.4-206

参考

https://quay.github.io/clair/whatis.html
https://github.com/rhthsa/openshift-demo/blob/main/clair4-on-ocp.md

OpenShift 4 - 镜像漏洞扫描软件 Clair相关推荐

  1. 使用 docker 安装 OpenVAS 漏洞扫描软件

    本文的原文连接是: http://blog.csdn.net/freewebsys/article/details/78804624 未经博主允许不得转载. 博主地址是:http://blog.csd ...

  2. 扫描docker安装的工具_使用 docker 安装 OpenVAS 漏洞扫描软件

    1,关于 OpenVAS OpenVAS(Open Vulnerability Assessment System)是开放式漏洞评估系统,其核心部分是一个服务器.该服务器包括一套网络漏洞测试程序,可以 ...

  3. linux中OpenVas 漏洞扫描软件

    CentOS 安装OpenVas端口漏洞扫描软件 简单来说openvas是一个开源的漏洞检测扫描软件 openvas-manager(openvasmd) 9390openvas-scanner (o ...

  4. OpenShift构建镜像

    OpenShift构建镜像 使用镜像和仓库作为source和output 1.准备一个git仓库,包含一个Dockerfile,以下仅包含一行内容用于最简单的演示. FROM docker.io/bi ...

  5. avws扫描出来的漏洞怎么利用_如何用Acunetix网站漏洞扫描软件快速进行扫描?告诉您几个小妙招!...

    扫描网站和网站应用需要花费很长时间.影响扫描速度的因素有: 1.网页服务器性能和响应时间 2.网站大小 3.后台数据库速度 4.扫描软件同时扫描的网站数量 5.漏洞检测的数量 6.Acunetix服务 ...

  6. web项目漏洞扫描软件

    重要节假日期间,对于网络安全将更升级,而平时都是由安全公司来进行检测,那么如何对自己的系统进行初级扫漏呢?现在两个软件推荐一下:Nessus和AWVS. Nessus Nessus 是全世界最多人使用 ...

  7. 基于网络的漏洞扫描软件主要包括哪些组成部分?各组成部分分别发挥什么功能?

    基于网络的漏洞扫描软件主要包括哪些组成部分?各组成部分分别发挥什么功能? 扫描控制台.为用户提供了执行扫描操作的控制界面,用户可以指定扫描的地址范围.需扫描的漏洞类型.使用多少个线程进行扫描,以及扫描 ...

  8. 镜像漏洞扫描工具:Trivy

    镜像漏洞扫描工具:Trivy Trivy常用方法 容器镜像扫描 打印指定(高危.严重)漏洞信息 JSON格式输出并保存到文件 Trivy常用方法 容器镜像扫描 # 扫描容器镜像 trivy image ...

  9. 【质量】镜像漏洞扫描工具Trivy原理和操作

    目录 Trivy工作原理 cve ID和CVE数据库 Trivy扫描镜像流程 快速入门 Trivy工作原理 cve ID和CVE数据库 个人理解: 当有人发现漏洞时,在社区提交漏洞,然后被cve 官方 ...

最新文章

  1. ModuleNotFoundError: No module named 'tools.nnwrap' pytorch 安装
  2. flex图表数据动态更新效果示例
  3. 贵州高二会考计算机考试题,20167月贵州普通高中学业水平考试会考试题
  4. 利用钥匙串,在应用里保存用户密码的方法
  5. TikTok电商去年赚了60亿?短视频的尽头是带货?
  6. GraphPad Prism 的统计显著性报告中*或**或**的含义是什么?
  7. C# XML 添加,修改,删除Xml节点
  8. 经典查找算法及其Python实现
  9. Leetcode每日一题:925.Long Pressed Name(长按键入)
  10. 【Java小工匠聊密码学】--对称加密--DES
  11. 精心整理2万字c++知识点
  12. 2015 年全国电赛题——风力摆控制系统(B 题)
  13. html中图片太大了,css背景图片太大的坏处与解决方法
  14. 『喜报』WoS数据C1和EM字段不再重复
  15. 学习AI人工智能,你必须要知道的4件事!
  16. GitHub 项目徽章的添加和设置
  17. Linux学习(五):挂载新的硬盘
  18. RS232电平 RS485电平 RS422电平
  19. 纽约程序媛 VS 硅谷程序媛的花钱风格
  20. 读书笔记_卓越程序员密码

热门文章

  1. beautifulsoup爬取网页中的表格_PYTHON爬取数据储存到excel
  2. 微信公众号自动回复html,[.NET] 简单接入微信公众号开发:实现自动回复
  3. mac android手机调试,mac os开发android应用通过usb真机调试
  4. 传输层端口号的范围是多少?被分为哪两部分_第三章, 传输层
  5. linux 解压 视频插件,linux下压缩解压缩命令
  6. 游戏迷必备桌面|穿越火线壁纸,燃动少年心
  7. 最有创意的万圣节借势海报都在这里
  8. 电商促销插画风PSD分层模板,直击底价!吸睛容情!
  9. python编程入门到实践笔记-python基础(《Python编程:从入门到实践》读书笔记)...
  10. Go语言学习Day03