中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

harbor容器安全工具介紹

發布時間:2020-05-25 17:32:22 來源:億速云 閱讀:303 作者:鴿子 欄目:云計算

harbor: 
  Harbor是構建企業級私有docker鏡像的倉庫的開源解決方案,它是Docker Registry的更高級封裝,它除了提供友好的Web UI界面,角色和用戶權限管理,用戶操作審計等功能外,它還整合了K8s的插件(Add-ons)倉庫,即Helm通過chart方式下載,管理,安裝K8s插件,而chartmuseum可以提供存儲chart數據的倉庫【注:helm就相當于k8s的yum】。另外它還整合了兩個開源的安全組件,一個是Notary,另一個是Clair,Notary類似于私有CA中心,而Clair則是容器安全掃描工具,它通過各大廠商提供的CVE漏洞庫來獲取最新漏洞信息,并掃描用戶上傳的容器是否存在已知的漏洞信息,這兩個安全功能對于企業級私有倉庫來說是非常具有意義的。
 補充:
  Nexus 是Maven倉庫管理器,如果你使用Maven,你可以從Maven中央倉庫 下載所需要的構件(artifact),但這通常不是一個好的做法,你應該在本地架設一個Maven倉庫服務器,在代理遠程倉庫的同時維護本地倉庫,以節省帶寬和時間,Nexus就可以滿足這樣的需要。此外,他還提供了強大的倉庫管理功能,構件搜索功能,它基于REST,友好的UI是一個extjs的REST客戶端,它占用較少的內存,基于簡單文件系統而非數據庫。這些優點使其日趨成為最流行的Maven倉庫管理器。

     Notary是一個允許任何人信任任意數據集合的項目。Notary項目包括服務器和客戶端,用于運行和與可信集合交互。Notary旨在通過讓人們輕松發布和驗證內容,使互聯網更加安全。我們經常依靠TLS來保護我們與Web服務器的通信,這本身就存在缺陷,因為服務器被攻破時可使惡意內容替代合法內容。借助Notary,發布商可以使用保持高度安全的密鑰離線簽署其內容。一旦發布者準備好內容,他們可以將他們簽名的可信集合推送到Notary服務器。消費者通過安全渠道獲得了發布者的公鑰,然后可以與任何Notary服務器或(不安全)鏡像進行通信,僅依靠發布者的密鑰來確定接收內容的有效性和完整性。Notary基于TUF項目,一個針對軟件分發和更新問題的安全通用設計。

  Clair:
   參考: https://blog.csdn.net/liumiaocn/article/details/76697022
   通過對容器的layer進行掃描,發現漏洞并進行預警,其使用數據是基于Common Vulnerabilities and Exposures數據庫(簡稱CVE), 各Linux發行版一般都有自己的CVE源,而Clair則是與其進行匹配以判斷漏洞的存在與否,比如HeartBleed的CVE為:CVE-2014-0160。 

  harbor容器安全工具介紹

  目前Clair支持如下數據源:

  harbor容器安全工具介紹

 

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腳本參考:

[Unit]
Description=BigDisk docker-compose container starter
After=docker.service network-online.target
Requires=docker.service network-online.target

[Service]
WorkingDirectory=/[path_to_harbor]      #這里需要修改為Harbor的安裝目錄.
Type=oneshot
RemainAfterExit=yes

ExecStart=/usr/bin/docker-compose up -d    #這里需要確認,docker-compose的路徑是否與自己的系統的路徑一致.
ExecStop=/usr/local/bin/docker-compose down
ExecReload=/usr/bin/docker-compose up -d

[Install]
WantedBy=multi-user.target


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

莎车县| 海口市| 阿克陶县| 平罗县| 荥经县| 界首市| 阜宁县| 高安市| 玉屏| 策勒县| 武宣县| 宜昌市| 平定县| 铅山县| 牟定县| 绩溪县| 剑河县| 三河市| 玉山县| 泸州市| 屯门区| 密山市| 寻乌县| 修文县| 黄陵县| 林西县| 昆山市| 永修县| 金湖县| 宁波市| 阿拉善盟| 平湖市| 科技| 阿拉尔市| 湟中县| 青海省| 临沧市| 宜都市| 安图县| 施秉县| 北安市|