CTFd 플랫폼 구축 프로세스

2117 단어
학교의 동아리가 새로운 것을 모집하려면 팀 내부의ctf 플랫폼이 필요합니다. 처음에 저는 현지에 fbctf 플랫폼을 설치했는데 멋있었습니다. 그런데 원격에서 서버가 국내이기 때문에 hhvm가 벽에 걸렸고 아리운입니다. 잠시 해외의 서비스기를 사용하고 렌즈를 복제할 수 없습니다. 그래서 오랫동안 노력했습니다. 마지막에 hhvm를 완성한 후에 발견했습니다.나의 그 찌꺼기 학생 서버는 아예 가지고 다닐 수 없다.그래서 잘생긴 fbctf를 버릴 수밖에 없었어요.

환경


먼저 시스템, 쿨한centos7.2는 0부터 환경을 설정합니다.
yum install -y git nginx mariadb mariadb-server Mysql-python python-pip 

mariadb 열기
systemctl start mariadb

가장 좋은 것은 데이터베이스의 비밀번호를 설정하는 것이다
mysql_secure_installation

ps: 초기 비밀번호가 비어 있으면 바로 돌아가서 비밀번호를 설정합니다 (_)새로운 친구

항목 다운로드

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

설치


입력 목록
cd CTFd

설치
./prepare.sh

여기 셸 스크립트에는 apt 명령이 있습니다. 하지만 괜찮습니다. 저희가 설치를 시작한 후에 CTFd 디렉터리에 들어갈 CTFd 폴더를 변경해서 config를 설정합니다.py
cd CTFd
vim config.py

우리는 SQLALCHEMY_DATABASE_URI 파라미터를 찾은 다음에 SQLALCHEMY_DATABASE_URI = 'mysql://root: @localhost/CTFd?charset=utf8' 파라미터를 찾았고, HOST 파라미터를 찾은 후에 serve를 실행합니다.py, 상위 디렉터리에
cd ..
python serve.py

그리고 MySQL에서 CTFd가 나오는 데이터베이스를 볼 수 있습니다.
gunicorn --bind 0.0.0.0:4000 -w 1 "CTFd:create_app()"

성공한 후에 방문HOST = " IP"하면 웹 페이지를 볼 수 있습니다. 만약 방문할 수 없는 것을 발견하면 방화벽이나 안전팀 설정에 해당하는 포트가 열려 있는지 확인하십시오

nginx 설정


상술한 작업이 끝난 후에 나는 이것이 원활하지 않다는 것을 발견했다. 정말 tm카드다. 그래서nginx 포트를 설정하여 전송하는 것이 좋겠다.
vim /etc/nginx/nginx.conf

그런 다음 수정:
location /{
proxy_pass http://localhost:4000;

proxy_set_header Host $host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_redirect off;
}

오케이 하고nginx 다시 켜기
nginx -s reload
gunicorn --bind 0.0.0.0:4000 -w 1 "CTFd:create_app()"

그리고 방문 IP:4000하면 플랫폼을 바로 볼 수 있습니다. 유창합니다.이 gunicorn 명령은 CTFd 디렉터리에 입력해야 합니다.

좋은 웹페이지 즐겨찾기