Difference between revisions of "CTF: Instalasi CTFd di Ubuntu 22.04"

From OnnoWiki
Jump to navigation Jump to search
Line 52: Line 52:
 
  ./prepare.sh
 
  ./prepare.sh
  
Testing
+
==Testing==
  
 
  sudo ufw allow 5000
 
  sudo ufw allow 5000
 
  gunicorn --bind 0.0.0.0:5000 'CTFd:create_app()'
 
  gunicorn --bind 0.0.0.0:5000 'CTFd:create_app()'
 +
 +
Browse
 +
 
  http://www.yourdomain.com:5000
 
  http://www.yourdomain.com:5000
 +
http://192.168.0.142:5000/setup
 +
 +
 +
==Setup enviroment==
  
Setup enviroment, contoh
+
Contoh
 
* single core
 
* single core
 
* worker 3
 
* worker 3

Revision as of 11:18, 29 January 2023

Sumber: https://nopresearcher.github.io/Deploying-CTFd/

Spec:

  • VirtualBox
  • Ubuntu 22.04
  • Memory 3G
  • Core 2


Basic

sudo su
apt update
apt install net-tools

Setup user ctfd

# setup user ctfd
adduser ctfd  # masukan password
usermod -aG sudo ctfd

Aktifkan firewall,

# UFW Firewall
ufw allow openssh
ufw allow http
ufw allow https
ufw enable

Install python & apps pendukung

apt update
apt upgrade -y   # optional

apt install -y python3-pip python3-dev build-essential libssl-dev libffi-dev python3-setuptools nginx git
pip3 install pipenv


Install CTFd

# install CTFd
cd /var/www
git clone https://github.com/CTFd/CTFd.git

su ctfd
sudo chown -R ctfd:www-data /var/www/CTFd
cd /var/www/CTFd

# Create a pipenv to run CTFd in
pipenv install --python 3
pipenv shell
./prepare.sh

Testing

sudo ufw allow 5000
gunicorn --bind 0.0.0.0:5000 'CTFd:create_app()'

Browse

http://www.yourdomain.com:5000
http://192.168.0.142:5000/setup


Setup enviroment

Contoh

  • single core
  • worker 3
  • keep-alive 2
# identify the pipenv virtual environment for use in unit file
pipenv --venv
/home/ctfd/.local/share/virtualenvs/CTFd-rOJbThUf

# Create unit file
sudo vim /etc/systemd/system/ctfd.service

[Unit]
Description=Gunicorn instance to serve ctfd
After=network.target

[Service]
User=ctfd
Group=www-data
WorkingDirectory=/var/www/CTFd
Environment="PATH=/home/ctfd/.local/share/virtualenvs/CTFd-rOJbThUf/bin"
ExecStart=/home/ctfd/.local/share/virtualenvs/CTFd-rOJbThUf/bin/gunicorn --bind unix:app.sock --keep-alive 2 
--workers 3 --worker-class gevent 'CTFd:create_app()' --access-logfile '/var/log/CTFd/CTFd/logs/access.log' 
--error-logfile '/var/log/CTFd/CTFd/logs/error.log'

[Install]
WantedBy=multi-user.target

Referensi