[Ubuntu 26.04] Greenbone OpenVAS 설치

mimic·5일 전

개요

Ubuntu 26.04에서는 Greenbone 공식 컨테이너(Docker) 방식을 권장합니다. Greenbone 공식 문서가 지원하는 배포판 목록에는 Debian stable(bookworm), Ubuntu 24.04 LTS, Fedora 35/36, CentOS 9 Stream만 있고 26.04는 아직 없습니다.
컨테이너 방식은 운영체제, 설치된 소프트웨어, 툴체인과 관계없이 로컬 네트워크를 스캔할 수 있어서 새 배포판에서 소스 빌드할 때 생기는 의존성 문제를 피할 수 있습니다.

최소 권장 사양

피드 데이터가 크기 때문에 권장 사양 이상을 추천합니다.

구분CPURAMDISK
최소2 Core4 GB20 GB
권장4 Core8 GB60 GB

설치

Docker 사용자 설정

Docker 패키지 설치 자체는 root/sudo 권한으로 진행하고, 설치 후 Docker CLI를 docker 사용자로 실행하도록 구성합니다.

root
 └─ Docker 패키지 설치/시스템 설정
       ↓
docker 사용자
 └─ docker 그룹 소속
       ↓
docker 명령 실행
       ↓
/var/run/docker.sock

docker user 생성

useradd -m -g docker -s /bin/bash docker
passwd docker

Docker 설치 (공식 Repo)

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

Greenbone Community Edition 컨테이너 실행

# 작업 디렉터리
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가 될 때까지 기다린 후에 스캔 작업을 시작할 수 있습니다.

profile
Raiju Hantu Goryo Obake

0개의 댓글