Ubuntu 26.04에서는 Greenbone 공식 컨테이너(Docker) 방식을 권장합니다. Greenbone 공식 문서가 지원하는 배포판 목록에는 Debian stable(bookworm), Ubuntu 24.04 LTS, Fedora 35/36, CentOS 9 Stream만 있고 26.04는 아직 없습니다.
컨테이너 방식은 운영체제, 설치된 소프트웨어, 툴체인과 관계없이 로컬 네트워크를 스캔할 수 있어서 새 배포판에서 소스 빌드할 때 생기는 의존성 문제를 피할 수 있습니다.
피드 데이터가 크기 때문에 권장 사양 이상을 추천합니다.
| 구분 | CPU | RAM | DISK |
|---|---|---|---|
| 최소 | 2 Core | 4 GB | 20 GB |
| 권장 | 4 Core | 8 GB | 60 GB |
Docker 패키지 설치 자체는 root/sudo 권한으로 진행하고, 설치 후 Docker CLI를 docker 사용자로 실행하도록 구성합니다.
root
└─ Docker 패키지 설치/시스템 설정
↓
docker 사용자
└─ docker 그룹 소속
↓
docker 명령 실행
↓
/var/run/docker.sock
useradd -m -g docker -s /bin/bash docker
passwd docker
Docker 공식 문서는 Ubuntu Resolute 26.04 (LTS)를 지원 대상으로 명시하고 있습니다. Ubuntu 기본 저장소의 docker.io는 버전이 뒤처지므로 공식 저장소를 쓰는 편이 좋습니다.
# 충돌 패키지 제거 (설치돼 있지 않으면 무시해도 됩니다)
sudo apt remove docker.io docker-compose docker-compose-v2 docker-doc podman-docker
# 필수 패키지와 GPG 키
apt update -y
apt install -y ca-certificates curl
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
# 저장소 등록
tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Signed-By: /etc/apt/keyrings/docker.asc
EOF
# 설치
apt update -y
apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# docker 사용자를 docker 그룹에 추가 (적용하려면 재로그인 또는 newgrp)
usermod -aG docker docker
newgrp docker
# 자동 재시작 설정
systemctl enable docker --now
# 사용자 변경
su - docker
# 동작 확인
docker run --rm hello-world
docker ps
docker version
# 작업 디렉터리
export DOWNLOAD_DIR=$HOME/greenbone-community-edition && mkdir -p $DOWNLOAD_DIR
# 공식 compose 파일 다운로드
curl -f -O -L https://greenbone.github.io/docs/latest/_static/compose.yaml --output-dir "$DOWNLOAD_DIR"
# 이미지 받기 → 백그라운드 실행
docker compose -f $DOWNLOAD_DIR/compose.yaml pull
docker compose -f $DOWNLOAD_DIR/compose.yaml up -d
# 로그 확인 (Ctrl+C로 빠져나오기)
docker compose -f $DOWNLOAD_DIR/compose.yaml logs -f
compose 파일은 상시 변경됩니다. 따라서 항상 최신 compose.yaml을 사용해야 합니다.
설치 과정은 꽤 많은 시간이 소요됩니다. 느긋하게 기다립니다.
manage:MESSAGE:2026-09-28 02h47.17 utc:87: No SCAP database found
위 로그는 초기 실행 시 자연스럽게 발생하는 문구로 시간이 지난 뒤에 다시 로그를 확인하면 해결되어 있습니다.
docker compose -f $DOWNLOAD_DIR/compose.yaml logs -f gvmd \
| grep -iE 'scap|cert|succeeded|error|fail'
===
gvmd-1 | md manage: INFO:2026-09-28 02h50.45 utc:86: SCAP database does not exist (yet), skipping CERT severity score update
gvmd-1 | md manage: INFO:2026-09-28 02h50.45 utc:86: sync_cert: Updating CERT info succeeded.
===
default 계정인 admin/admin 계정이 만들어지는데, 아래와 같이 새 비밀번호로 바꿔줍니다.
docker compose -f $DOWNLOAD_DIR/compose.yaml \
exec -u gvmd gvmd gvmd --user=admin --new-password='$new_password'
비밀번호 값에 $ 같은 특수문자가 있으면 작은따옴표로 감싸서 입력합니다.
기본 설정대로 진행했다면 WEB UI(GSA)는 nginx로 127.0.0.1:443에 바인딩 됩니다. 서버 자체 브라우저에서는 https://127.0.0.1로 접속하면 되지만 외부에서 접속 시에는 포트 포워딩이나 compose.yaml 내부 바인딩 설정(compose.yaml의 nginx ports에서 127.0.0.1:443:443)을 변경하고 up -d 옵션으로 재실행해서 적용한 뒤 접근 가능합니다.
웹 초기 접근 시 자체 서명 인증서라서 브라우저에 경고가 뜬다면 예외로 진행하면 됩니다.
서비스가 모두 시작되고 피드 데이터가 전부 로드된 뒤에 WEB UI(GSA)를 쓸 수 있습니다. 처음에는 VT, SCAP, CERT 데이터를 DB에 저장하는 데 꽤 오래 걸립니다.
WEB UI의 Administration → Feed Status에서 모든 항목이 Current가 될 때까지 기다린 후에 스캔 작업을 시작할 수 있습니다.