Bu yazımda kullanımı en basit olan CTF platformu CTFd’ yi Ubuntu Server 16.04 LTS’ ye nasıl kuracağımızı, nasıl kullanılabilir hale getirebileceğimizi göstereceğim.
Öncelikle sunucumuza ssh ile bağlanıp giriş yapıyoruz.
Ardından platform dosyalarını sunucuya kopyalamak için “git” yüklüyoruz.
$ sudo apt-get install git
git yüklendikten sonra dosyalarımızı sunucuya kopyalıyoruz
$ git clone https://github.com/CTFd/CTFd.git
Dosyalarımız kopylanmış mı kontrol edelim
$ cd CTFd/
$ ls -lh
Platformu kullanabilmemiz için bazı paketler gerekiyor. Bu paketleri “prepare.sh” komut dosyasını çalıştırarak yüklüyoruz.
$ ./prepare.sh
Gerekli paketlerin kurulumu tamamlandıktan sonra platformu çalıştırabiliriz. Bunun için:
$ python serve.py
Eğer bu işleme kadar bir hata almadıysanız platform 127.0.0.1 adresinde (localhost) 4000 portunda çalışmakta olucaktır. CTRL + C yaparak işlemi durduruyoruz. Platformu internet üzerinde erişilebilir hale getirmek için yapmamız gereken 2 işlem daha var. 1-) Nginx kurmak. 2-) Gunicorn’ un Nginx ile entegre çalışması için gerekli konfügrasyonları yapmak.
İsterseniz öncelikle gunicorn’ u test edelim.
$ gunicorn --bind "0.0.0.0:4000" -w 4 "CTFd:create_app()"
Burada belirttiğimiz 4000 portu rastgele seçilmiştir. İstediğiniz port numarasını seçebilirsiniz. Eğer herhangi bir hata almadıysanız “http://makineniziz_ip_adresi:4000” adresinde platformu görüntüleyebilirsiniz. (Örneğin: 192.168.1.39:4000 veya 93.127.58.3:4000)
Nginx’ in kurulumuna geçelim.
$ sudo apt-get install nginx
Kurulum tamamlandıktan sonra gunicorn’ un Nginx ile entegre çalışması için gerekli konfügrasyonları yapmamız gerekiyor. Bunun için “/etc/nginx/sites-available/” klasöründe “ctfd_app.conf” isimli bir dosya oluşturuyorum. Ben bunun için “nano” isimli metin editörünü tercih ettim.
$ sudo nano /etc/nginx/sites-available/ctfd_app.conf
Gerekli ayarları yapıp dosyamızı kaydediyoruz. Bu ayarda Nginx’ e 80 portuna gelen istekleri makinemizde 4000 portunda çalışan gunicorn’ a yönlendirmesini söylüyoruz.
server {
listen 80;
server_name makineniziz_ip_adresi;
location / {
include proxy_params;
proxy_pass http://localhost:4000;
}
}
Artık bu konfügrasyon dosyasını “/etc/nginx/sites-enabled/” klasörüne bağlayarak etkinleştirelibilir.
$ sudo ln -s /etc/nginx/sites-available/ctfd_app.conf /etc/nginx/sites-enabled/
Yaptığımız ayarlarda bir problem var mı kontrol ediyoruz ve nginx servisini yeniden başlatıyoruz.
$ sudo nginx -t
$ sudo systemctl restart nginx
CTFd anadizinine geri dönüp gunicorn’ u tekrar çalıştırıyoruz.
$ gunicorn --bind "0.0.0.0:4000" -w 4 "CTFd:create_app()"
Artık platforma http://makineniziz_ip_adresi üzerinden (Örneğin: 192.168.1.39 veya 93.124.57.42) erişebilir ve CTF’ inizi organize edebilirsiniz.
Comments