本周继续实践的是harbor里用notary对容器镜像做签名,
刚好发现harbor社区版本更新到了2.4.2版本,那就重新来一遍,
虚机ubuntu20.04,
安装docker,
sudo apt install docker.io,
sudo systemctl enable docker,
sudo gpasswd -a ubuntu docker,
newgrp docker,
安装docker-compose,
sudo apt install docker-compose,
给harbor起个本地域名,
sudo vim /etc/hosts,
10.90.11.166 harbortrivy.com
给harbor创建私钥和证书,
openssl genrsa -out ca.key 4096,
openssl req -x509 -new -nodes -sha512 -days 3650
-subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=harbortrivy.com"
-key ca.key
-out ca.crt,
下载harbor在线安装版本,
wget https://github.com/goharbor/harbor/releases/download/v2.4.2/harbor-online-installer-v2.4.2.tgz,
tar -zxvf harbor-online-installer-v2.4.2.tgz,cd harbor,
修改配置,vim harbor.yml,
hostname: harbortrivy.com
certificate: /home/ubuntu/ca.crt
private_key: /home/ubuntu/ca.key
harbor_admin_password: harbortrivy
安装,指定trivy,notary等参数,
sudo ./install.sh --with-notary --with-trivy --with-chartmuseum,
安装成功后,https登录,admin/harbortrivy,
在docker客户端,需要把harbor的证书弄过来放到docker的目录下,
sudo mkdir -p /etc/docker/certs.d/harbortrivy.com,
sudo scp [email protected]:/home/ubuntu/ca.crt /etc/docker/certs.d/harbortrivy.com,
本地域名也得添加一下,sudo vim /etc/hosts,
10.90.11.166 harbortrivy.com
登录一下,docker login --username=admin harbortrivy.com,
接着上期继续实验,
在docker客户端需要下载notary客户端做一些配置,
wget https://github.com/notaryproject/notary/releases/download/v0.6.1/notary-Linux-amd64,
chmod +x notary-Linux-amd64,
sudo cp notary-Linux-amd64 /usr/local/bin/notary,
alias notary="notary -s https://harbortrivy.com:4443 -d ~/.docker/trust --tlscacert /etc/docker/certs.d/harbortrivy.com/ca.crt",
在docker客户端启动镜像签名和认证,
export DOCKER_CONTENT_TRUST=1,
export DOCKER_CONTENT_TRUST_SERVER=https://harbortrivy.com:4443,
再重新push容器镜像,这就自动签名了,
docker push harbortrivy.com/library/log4shell-vulnerable-app:latest,
取消docker客户端的镜像签名和认证,
export DOCKER_CONTENT_TRUST=0,
push一个ubuntu-sshd的容器镜像,这就不自动签名了,
配置限制有严重和以上级别漏洞的镜像以及没签名的镜像不让pull,
分别pull两个镜像,一个报因为没签名不让pull,另一个报有严重和以上级别的漏洞不让pull,
原文始发于微信公众号(云计算和网络安全技术实践):容器镜像仓库harbor+notary的安装使用
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论