Docker에서 DVWA웹 서버 구축

두부4등분·2025년 5월 6일

웹 해킹 스터디 - 1

목록 보기
1/3

Container란?

앱이 실행되는 작은 가상 컴퓨터(필요한 것만 갖고 있고, 빠르게 실행)

VM과 Container의 차이점

VM - 독립적인 플랫폼을 하나씩 증가시킬 때마다 불필요한 OS를 만드는 작업이 요구된다.
Container - 하나의 Host OS위에서 마치 각각의 독립적인 프로그램처럼 관리되고 실행된다.

Docker image란?

도커 이미지란 컨테이너를 만들기 위한 '설치 패키지 테플릿' 이다.

  • 이미지 = 애플리케이션 + 실행환경 + 설정 파일 + OS 라이브러리 + 명령어들
  • 이미지는 변하지 않는 구조로 저장
  • 이미지로부터 컨테이너를 실행하면, 그때 실제로 돌아가는 프로그램이 만들어짐

Docker란?

Docker는 애플리케이션을 컨테이너(Container)라는 단위로 패키징하고 실행할 수 있게 해주는 가상화 플랫폼이다.

특징: Docker는 클라이언트-서버 아키텍처이다. 도커 클라이언트와 도커 데몬이 RestApi를 사용하여 통신

1. Docker Client

클라이언트는 도커 데몬에게 RestApi 요청을 보내서 실제 작업을 요청한다.
ex)

2. Docker Daemon

백그라운드에서 동작하며, 이미지 빌드, 컨테이너 실행, 네트워크 관리 등 실제 작업을 수행하는 핵심 엔진이다.

3. Docker Registry

도커 이미지를 업로드하고 다운로드할 수 있는 중앙 저장소

왜 Docker가 필요할까?

1. 환경 일치성

다양한 환경에서 동일한 실행 환경을 보장한다. 개발 환경과 운영 환경의 차이로 인한 문제를 방지하며, 응용 프로그램을 어디서든 실행 할 수 있다.

2. 편리한 배포

도커 컨테이너는 이미지로 패키징되어 배포되므로, 애플리케이션 배포가 간단해진다. 이미지를 공유하거나 배포할 때 용이하며, 빠른 확장이 가능하다.

3. 격리된 환경

도커는 각 컨테이너를 격리된 환경으로 실행하므로, 하나의 컨테이너에서 발생한 문제가 다른 컨테이너에 영향을 주지 않는다.

4. 자원 표율성

가상 머신과 비교해 더 가볍고 빠르며, 호스트 시스템의 리소스를 효율적으로 활용할 수 있다.

5. 스케일링

컨테이너 기반 아키텍처는 쉬운 스케일링이 가능하여 요구에 따라 응용 프로그램을 확장할 수 있다.

Docker Desktop 설치

Docker

홈페이지에 접속하여 자신에게 알맞는 버전을 설치하면 된다.

DVWA 이미지 다운로드 및 컨테이너 실행(Mac 기준)

  1. terminal을 실행시켜docker pull vulnerabels/web-dvwa를 입력한다.
    위 사진과 같이 docker image가 생성된 것을 확인 할 수 있다.

  2. terminal에 docker run -d -p 80:80 vulnerables/web-dvwa를 입력한다.
    위 사진과 같이 컨테이너를 실행시킨 것을 확인 할 수 있다.(localhost 80포트에서 웹 서버 실행)

  3. localhost:80에 접속

    사진 속 네모 안의 부분을 클릭하여 접속한다.

Username: admin Password: password를 입력한다.

  1. 로그인 후 아래에서 Create / Reset Database 버튼 클릭
  2. 다시 로그인 창으로 돌아가지면 Username: admin Password: password를 다시 입력하면 웹 해킹할 가상환경 구축이 완료된다.

DVWA 설정 초기화 및 보안 레벨 설정

  • DVWA 상단 메뉴에서 Setup/Reset DB에 들어간다.
  • 아래의 Create/Reset Database를 클릭 --> 내부 DB 및 설정 초기화

보안 레벨 설정 방법

  1. 메뉴에서 DVWA Security에 들어간다.
  2. 보안수준을 선택한다.
  3. 선택 후 Submit을 클릭한다.

0개의 댓글