[CTFd] CTFd 를 이용해서 CTF 사이트 만들기 -docker, docker compsoe 설치
이것저것

[CTFd] CTFd 를 이용해서 CTF 사이트 만들기 -docker, docker compsoe 설치

728x90

CTFd

CTF 사이트를 제작할 수 있는 오픈 소스 프레임워크!

설치를 위해서는

▷ 최소: dual core CPU + 1 GB RAM 

▶ 권장: quad core CPU + 2GB RAM

 

내 기본환경: ubuntu 16.04 on VMwareWorkstation

 

1. docker 설치

docs.docker.com/get-docker/

 

Get Docker

 

docs.docker.com

이 사이트에서 자신의 환경에 맞는 docker를 선택하면 된다.

이 중 Linux > Server 중 Ubuntu 를 선택했다.

 

- docker 오래된 버전 제거하기

$ sudo apt-get remove docker docker-engine docker.io containerd runc

이후 docker를 설치하는 방법이 여러가지 있지만 

사람들이 가장 많이 사용한다는 repository를 이용하는 방식으로 설치했다.

 

- 필요한 패키지들 설치하기

$ sudo apt-get update
$ sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common

- docker의 공식 GPG key 추가

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
$ sudo apt-key fingerprint 0EBFCD88

두 번째 명령으로 GPG 키를 잘 받았는지 확인할 수 있다. (GPG key 값은 아래 docker 설치 사이트(↑)에 들어가면 나와있습니다.)

 

- stable repository 를 셋업하기  (amd64 기준 /다른 아키텍쳐 사용시 'arch='뒤에 해당 아키텍쳐 추가하면 됨)

$ sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable"

- docker engine 설치

$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io

dockeer engine의 가장 최근 버전을 다운로드하려고 할 때는 위 명령대로 하면 된다. 만약 다른 특정 버전의 docker engine을 설치하고자 하는 경우에는 INSTALL DOCKER ENGINE의 두 번째 단계를 진행하면 된다. (최근 버전을 설치했을 시에는 할 필요X!)

$ sudo docker run hello-world

docker engine이 잘 설치되었는지 확인한다.

 

- docker.io 설치

$ sudo apt-get install docker.io

 

2. docker-compose 설치

docs.docker.com/compose/install/

 

Install Docker Compose

 

docs.docker.com

- Docker compose의 1.27.4 배포판을 설치

$ sudo curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

- 권한 부여

$ sudo chmod +x /usr/local/bin/docker-compose
$ docker-compose --version

docker compose의 설치버전을 확인해 잘 설치가 되었는지 확인할 수 있다.

 

3. CTFd repository 복사

$ git clone https://github.com/CTFd/CTFd.git

 

4. docker-compose.yml 수정

environment:
- SECRET_KEY=<SPECIFY_RANDOM_VALUE>
- UPLOAD_FOLDER=/var/uploads
- LOG_FOLDER=/var/log/CTFd
- DATABASE_URL=mysql+pymysql://root:ctfd@db/ctfd
- REDIS_URL=redis://cache:6379 - WORKERS=4

여기서 SECRET_KEY를 랜덤한 값으로 지정해준다. 사실 이 secret key가 어떻게 쓰이는 키인지, 언제 사용되는 키인지는 잘 모르겠다...

 

5. docker-compose 실행

$ docker-compose up

 

6. localhost 접근 가능

http://localhost:8000

로 접근할 수 있게 된다. 들어가면 기본 CTFd 화면이 나오고 시작 세팅 화면이 나오게 된다.

짜잔ㄴ

github.com/CTFd/CTFd

 

CTFd/CTFd

CTFs as you need them. Contribute to CTFd/CTFd development by creating an account on GitHub.

github.com

docs.ctfd.io/

 

Goldydocs

CTFd Knowledge Base and Documentation

docs.ctfd.io

△ 바로 위 이 사이트를 들어가서 보면 된다! 이 뿐만 아니라 CTFd 프레임워크를 어떻게 활용해 써먹을 수 있는지 세심하게 나와있다아.

 
SMALL