コンテナセキュリティツール(a)の港

ハーバー: 
  ハーバーはまた、オープンソースを構築することである倉庫のプライベートドッカミラーのためのエンタープライズクラスのソリューション、それがどの優しいウェブUIインターフェース、ユーザーの役割と権限管理を提供することに加えて、ユーザーのアクションの監査およびその他の機能、より高度なパッケージドッカーレジストリで、それ【:YUMのヘルム等価K8S注]ダウンロード、管理、インストールK8Sプラグイン、およびchartmuseumによってヘルムチャートは、チャートデータを倉庫提供できることK8S統合プラグイン(アドオン)倉庫。また、2つのオープンソースのセキュリティコンポーネントを組み込んで公証人で、他には、最新を取得するにはクレア、CAプライベートセンターに似公証人、とクレアは、コンテナのセキュリティスキャンツールで、大手メーカーが提供することCVE脆弱性データベースであります既知の脆弱性情報がある場合は、脆弱性情報、及びスキャンユーザーがコンテナをアップロードするために、エンタープライズクラスのプライベート倉庫用の2つのセキュリティ機能は、非常に有意義です。
 補足:
  ネクサスは  あなたがMavenを使用する場合はからすることができ、MavenのリポジトリマネージャですMavenの中央リポジトリ  コンポーネント(アーティファクト)のダウンロードが必要ですが、これは通常は良い練習ではありません、あなたは、エージェントを設定するには、ローカルのMavenリポジトリサーバにする必要がありますリモートリポジトリ、このようなニーズを満たすために、帯域幅と時間を節約するためにネクサスを地元の倉庫を維持したまま。また、彼はRESTに基づいており、強力な倉庫管理、メンバーの検索機能を提供し、フレンドリーなUIは、RESTクライアントのExtJSのですが、それは、単純なファイルシステムではなく、データベースに基づいて少ないメモリを、占めています。これらの利点は、それがますます最も人気のMavenリポジトリマネージャーになったします。

     公証人は、任意のデータ収集誰の信頼を可能にするプロジェクトです。公証人のプロジェクトは、サーバーとクライアントが含まれ、そして信じられるとの相互作用のセットを実行するために使用されます。人々が簡単にインターネットをより安全にするためにコンテンツを公開して検証できるように公証人を目指しています。サーバは、正当なコンテンツを侵害されたときに悪意のあるコンテンツを置き換えることができますので、私たちはしばしば、自分自身に欠陥がある当社のWebサーバとのプロテクト通信にTLSに依存しています。公証人で、出版社はその内容をサインオフする安全性の高いキーを維持するために使用することができます。コンテンツ発行者の準備ができたら、彼らは公証人のサーバーをプッシュ署名の収集を信頼することができます。安全なチャネルを通じた消費者は、発行者の公開鍵、および任意のサーバまたは公証人(危険な)ミラー、受信したコンテンツの有効性および完全性を決定するためにのみキー頼るの発行者と通信することができます。TUFプロジェクト、ソフトウェアのためのユニバーサルデザインのアップデートの配布とセキュリティの問題に基づいて公証人。

  クレア:
   リファレンス:  https://blog.csdn.net/liumiaocn/article/details/76697022
   コンテナ層を走査することにより、脆弱性の警告を発見し、データベース共通脆弱性に基づくデータを用いて、(CVEが参照)、 CVE-2014-0160:クレアは、CVEのハートブリードなどの脆弱性の有無を決定するために、その試合である様々なLinuxディストリビューションは、一般に、CVEの独自のソースを持っています。 

  1.png

  クレアは現在、次のデータソースをサポートしています。

  2.png

 

HARBOR:
  这是VMWare公司提供的一个docker私有仓库构建程序,功能非常强大.
    1. 支持多租户签名和认证
    2. 支持安全扫描和风险分析
    3. 这次日志审计
    4. 基于角色的访问控制
    5. 支持可扩展的API和GUI
    6. Image replication between instances
    7. 国际化做的很好(目前仅支持英文和中文)

 Harbor部署:
  1. 从GitHub上下载Harbor的二进制发行包.
  2. 准备必要的环境:
    yum install docker-ce docker-compose

  3. 解压后,先编辑harbor.cfg
    vim harbor.cfg
      hostname = node1.test.com
      ui_url_protocol = http 
      max_job_workers = 3    #启动3个处理用户上传下载的进程,若为4核,3个就是最好的。
      admiral_url = NA      #NA:不自定义管理URL
      harbor_admin_password = Harbor12345    #默认的管理员密码

      #默认它会自动创建一个mysql容器,并设置mysql的root密码为root123,
      #注意:从harbor v1.7.5以后使用的数据库默认是postgresql
      db_password = root123
      #若想让其使用外部数据库,可修改下面参数为外部数据库的地址.
      db_host = postgresql

      #若启用了--with-clair时,注意修改clair的数据库密码,还有redis的密码,因为clair需要使用redis。
      clair_db_password = root123


  4. 运行 install.sh ,若需要启用harbor的其它功能,可查看 install.sh --help
    安装完成后,它会提示你访问harbor的地址是多少,你就可以直接在浏览器中访问这个地址了。

  5. 可测试打开harbor,并测试上传镜像。
  5.1 在测试上传镜像时,需要先登录harbor的Web界面,然后创建一个项目,这个项目就相当于公司中不同的项目组,每个项目组分别管理各自的项目镜像,以便后期该项目不需要时,可直接删除该项目。

  5.2 然后到harbor客户端,测试登录harbor仓库,并尝试上传镜像
  5.2.1 因为这里使用了非安全的HTTP,因此需要修改docker的启动参数
    vim /usr/lib/systemd/system/docker.service
      ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --selinux-enabled=false --insecure-registry 192.168.10.154
    #若没有启用SELinux可设置不启用它
    #--insecure-registry 即指定一个非安全的仓库,这里指定内网harbor地址为192.168.10.154
    # 若有多个可重复--insecure-registry

  5.2.2 测试上传镜像
    ~]# docker login http://192.168.10.154
    Authenticating with existing credentials...
    WARNING! Your password will be stored unencrypted in /root/.docker/config.json. #这里需要注意: 登录成功后,用户名密码会保存到config.json中。
    Configure a credential helper to remove this warning. See
    https://docs.docker.com/engine/reference/commandline/login/#credentials-store

    Login Succeeded

    ~]# docker push 192.168.10.154/test1/nginx-alpine:v1    #这样就可以上传镜像到harbor上了。

  6. 可自行查看 docker-compose.yml, install.sh 实际执行的docker-compose命令.
    docker-compose   
     #命令在运行时,会自动在当前目录下,找docker-compose.yml配置文件,若找到则安装里面的定义
     #来决定到哪里去找镜像,先启动那个容器,启动镜像需要挂载什么卷等。

    在配置Harbor时,若出现问题,可结合/var/log/harbor中的日志文件来查看问题.
    我通常会这样查看:
      tail -f /var/log/harbor/*.log

  Harbor配置HTTPS:
    1. 修改 harbor.cfg
      hostname = harbor.zcf.com
      ui_url_protocol = https
      ssl_cert = /data/docker/certs/harbor.zcf.com.crt
      ssl_cert_key = /data/docker/certs/harbor.zcf.com.key
      harbor_admin_password = adminpass

    2. 创建证书,并放到上面定义的目录中
      测试使用,可使用我用shell写的证书制作工具:
       https://github.com/zhang75656/shell-tools/blob/master/gencret.sh
       chmod +x  gencret.sh
       ./gencret.sh  --help     #可查看使用帮助.但前提是必须安装openssl
    3. 重新执行 ./install.sh 即可,这样harbor服务端就可以工作了.

  Harbor 客户端配置:
    1. 在docker配置目录下创建证书目录, 
      #注意: 证书目录是存放harbor服务器的证书文件.
      # docker login harbor.zcf.com 
      # 当执行上面命令登录harbor时,默认docker会到/etc/docker/certs.d/下去找 harbor.zcf.com这个目录,看其下面是否有证书可用。
      # 所以,需要将harbor服务器上的证书scp过来,放到docker客户端的这个目录中。
     mkdir /etc/docker/certs.d/harbor.zcf.com
 

Harbor通过Systemd管理时,所需要的systemd脚本参考:

[単位]
説明= bigdiskドッカーコンテナスターター・作曲は
docker.service = network-online.target後
= docker.service network-online.target必要です

[ -サービス]
WORKINGDIRECTORY = / [path_to_harbor]#はハーバーのインストールディレクトリを変更する必要がどこにありますか。
ONESHOT =タイプ
RemainAfterExit = yesと

ExecStart = は/ usr / binに/ -d#ドッキングウィンドウ-構成ここまでのパスは、独自のシステムと整合性のパスをドッキングウィンドウ-構成するかどうかを確認する必要があります。
ExecStop =は/ usr / local /ビン/ドッキングウィンドウ、コンダウン
ExecReload =は/ usr / binに/作曲ドッカーアップ-d

[インストール]
WantedBy = multi-user.target


おすすめ

転載: blog.51cto.com/zhaoshilei/2475475