
यहां हम अपने SEED Ubuntu 16.04 VM में अपनी प्रयोगशाला स्थापित करेंगे और SQL इंजेक्शन भेद्यता का शोषण करने से पहले हमें अपने VM पर Go Git Service (GOGS) स्थापित करनी होगी। VM सेटअप करने के लिए, ये चरण हैं:
चरण 1: डेटाबेस स्थापित करें सिस्टम में लॉग इन करने के बाद, हमें यह सुनिश्चित करने के लिए निम्नलिखित कमांड चलाना चाहिए कि हमारी लाइब्रेरी और रिपॉजिटरी अपडेट हो गई हैं। $ sudo apt-get -y update
हम बैकएंड में MySQL सर्वर का उपयोग कर रहे हैं और इसलिए, हमें इसे अपने VM पर स्थापित करने की आवश्यकता है, जो हम निम्नलिखित कमांड से कर सकते हैं: $ sudo apt-get – y install mysql-server
डेटाबेस की स्थापना के दौरान, सिस्टम डेटाबेस के लिए रूट उपयोगकर्ता पासवर्ड मांगता है। अब हम gogs.sql नामक एक फ़ाइल बनाएंगे। हमने nano का उपयोग किया है लेकिन कोई भी फ़ाइल संपादक काम करेगा।
फिर हम निम्नलिखित SQL कथनों को gogs.sql फ़ाइल में पेस्ट करते हैं और इसे सहेजते हैं। DROP DATABASE IF EXISTS gogs; CREATE DATABASE IF NOT EXISTS gogs CHARACTER SET utf8 COLLATE utf8_general_ci;
अब हम MySQL के साथ gogs.sql फ़ाइल को निष्पादित करेंगे ताकि GOGS डेटाबेस बना सकें, निम्नलिखित कमांड का उपयोग करके: $ mysql – u root -p < gogs.sql
फिर हमें डेटाबेस स्थापना चरण के दौरान बनाए गए रूट पासवर्ड के लिए संकेत दिया जाता है, जिसे हम दर्ज करते हैं और सफलतापूर्वक GOGS डेटाबेस बना लेते हैं।
GOGS को स्रोत से स्थापित करने के लिए हमें Git और Mercurial जैसे संस्करण नियंत्रण उपकरणों की आवश्यकता है और उन्हें अपने VM पर स्थापित करने के लिए, हम निम्नलिखित कमांड का उपयोग करते हैं: $ sudo apt-get -y install mercurial git
चरण 2: Go स्थापित करें GOGS Go प्रोग्रामिंग भाषा में लिखा गया है और इसलिए GOGS को संकलित करने से पहले इसे स्थापित करना आवश्यक है।
सबसे पहले, कुछ पर्यावरण चर हैं जिन्हें हमें सेट करने की आवश्यकता है और उन्हें सेट करने के लिए हम ~/.bashrc फ़ाइल को संपादित करते हैं और इसमें निम्नलिखित पंक्तियाँ जोड़ते हैं और फ़ाइल को सहेजते हैं: export GOPATH=/home/git/go export GOROOT=/usr/local/src/go export PATH=${PATH}:$GOROOT/bin
यह सुनिश्चित करने के लिए कि हमारे परिवर्तन सफलतापूर्वक लागू हो गए हैं, हम निम्नलिखित कमांड चलाते हैं: $ source ~/.bashrc
अब हम wget कमांड का उपयोग करके Go के संकलित संस्करणों में से एक को स्थापित करते हैं और कमांड इस प्रकार है: $ wget https://storage.googleapis.com/golang/go1.4.2.linux-amd64.tar.gz
फिर हम निम्नलिखित कमांड का उपयोग करके इसे अनार्काइव करते हैं: $ tar zxf go1.4.2.linux-amd64.tar.gz
एक बार हमारी फ़ाइल अनार्काइव हो जाने के बाद, हम अपनी कार्यशील निर्देशिका को ~/.bashrc में परिभाषित $GOROOT में बदलते हैं, इसके लिए कमांड है: $ sudo mv go $GOROOT
अब, हम अपने VM में Go की स्थापना को निम्नलिखित कमांड का उपयोग करके सत्यापित करते हैं: $ go
सभी आवश्यक दस्तावेज़ों के साथ Gogs फ़ोल्डर तक पहुँचने के लिए, बस Gogs फ़ोल्डर को $GOPATH/src/github.com/gogits/gogs पथ पर git clone करें। यह निम्नलिखित कमांड के साथ किया जा सकता है: $ cd $GOPATH/src/github.com/gogits/gogs
अब हम Gogs सेवा को प्रबंधित करने के लिए Supervisor स्थापित करेंगे, निम्नलिखित कमांड का उपयोग करके: $ sudo apt-get -y install supervisor
हमारे VM में Supervisor स्थापित होने के बाद, अब हम Supervisor कॉन्फ़िगरेशन अनुभाग बनाकर Gogs डेमन बनाते हैं। ऐसा करने के लिए हमें पहले लॉग फ़ाइलों के लिए एक स्थान परिभाषित करना होगा। लॉग फ़ाइलों का स्थान /var/log/gogs है। इसके लिए कमांड है: $ sudo mkdir -p /var/log/gogs
लॉग संग्रहीत करने के लिए परिभाषित स्थान के साथ, हम Supervisor कॉन्फ़िगरेशन फ़ाइल को संपादित करने के लिए आगे बढ़ते हैं जो /etc/supervisor/supervisord.conf पर स्थित है और इसके लिए कमांड है: $ sudo nano /etc/supervisor/supervisord.conf
हम Gogs अनुभाग बनाने के लिए फ़ाइल में निम्नलिखित सामग्री जोड़ते हैं:
[program:gogs] directory=/home/git/go/src/github.com/gogits/gogs/ command=/home/git/go/src/github.com/gogits/gogs/gogs web autostart=true autorestart=true startsecs=10 stdout_logfile=/var/log/gogs/stdout.log stdout_logfile_maxbytes=1MB stdout_logfile_backups=10 stdout_capture_maxbytes=1MB stderr_logfile=/var/log/gogs/stderr.log stderr_logfile_maxbytes=1MB stderr_logfile_backups=10 stderr_capture_maxbytes=1MB environment = HOME="/home/git", USER="git" user = git
उपरोक्त कोड उन कमांड को परिभाषित करता है जिन्हें हम Gogs शुरू करने, Supervisor शुरू करने, लॉग फ़ाइलों का स्थान प्रदान करने और संबंधित पर्यावरण चर प्रदान करने के लिए निष्पादित करना चाहते हैं। अब हम अपने परिवर्तनों को प्रभावी करने के लिए Supervisor को पुनरारंभ करते हैं, निम्नलिखित कमांड का उपयोग करके: $ sudo service supervisor restart
यह सत्यापित करने के लिए कि Gogs वास्तव में चल रहा है, हम निम्नलिखित कमांड का उपयोग करते हैं: $ ps -ef | grep gogs ps कमांड सक्रिय प्रक्रियाओं के बारे में जानकारी प्रदर्शित करता है और हम Gogs के लिए जानकारी प्राप्त करने के लिए उन परिणामों को grep करते हैं।
सर्वर चल रहा है यह सत्यापित करने का एक और तरीका stdout.log फ़ाइल को निम्नलिखित कमांड का उपयोग करके देखना है: $ tail /var/log/gogs/stdout.log
अब हम वेब पेज पर भी जा सकते हैं जो इंस्टॉलेशन पेज दिखाएगा। इसके लिए URL होगा: http://10.0.2.15:3000
चरण 4: Nginx को रिवर्स प्रॉक्सी के रूप में सेट अप करें सबसे पहले, हमें Nginx स्थापित करने की आवश्यकता है और हम इसे निम्नलिखित कमांड का उपयोग करके करते हैं: $ sudo apt-get -y install nginx
अब, हम Gogs के लिए एक Nginx कॉन्फ़िगरेशन फ़ाइल बनाते हैं जो etc/nginx/sites-available/gogs पर स्थित होगी। हम फ़ाइल में निम्नलिखित कोड भी जोड़ते हैं:
server { listen 80; server_name “ADD IP ADDRESS HERE!!!”;
proxy_set_header X-Real-IP $remote_addr; # pass on real client IP
location / {
proxy_pass http://localhost:3000;
}
} हमें Nginx के लिए फ़ाइल तक पहुँचने के लिए एक सिमलिंक भी बनाना होगा। सिमलिंक /etc/nginx/sites-available/gogs और /etc/nginx/sites-enabled/gogs के बीच बनाया जाता है। हम निम्नलिखित कमांड का उपयोग करके सिमलिंक बना सकते हैं:
$ sudo ln -s /etc/nginx/sites-available/gogs /etc/nginx/sites-enabled/gogs अंत में, हमें वर्चुअल होस्ट कॉन्फ़िगरेशन को सक्रिय करने के लिए Nginx सेवा को पुनरारंभ करना होगा। पुनरारंभ करने का कमांड है: $ sudo service nginx restart
अब, हम पहले उपयोग किए गए URL पर बिना पोर्ट नंबर के जा सकते हैं। URL है: http://10.0.2.15
चरण 5: Gogs को प्रारंभ करें Gogs को प्रारंभ करने से पहले, हमें सर्वर के वेब पेज पर कुछ जानकारी भरनी होगी जिसका URL है: http://10.0.2.15/install
पहले खंड में, हम डेटाबेस के बारे में जानकारी भरते हैं, जो हमारे मामले में MySQL है। फ़ील्ड इस प्रकार हैं:
Database Type: MySQL Host: 127.0.0.1:3306 User: root Password: seedubuntu Database Name: gogs
दूसरे खंड में, हम Gogs की सामान्य सेटिंग्स भरते हैं और इसके लिए फ़ील्ड हैं: Repository Root Path: /home/git/gogs-repositories Run User: git Domain: 10.0.2.15 HTTP Port: 300 Application URL: http://10.0.2.15:3000
फिर, हम Admin Account Settings के अंतर्गत व्यवस्थापक उपयोगकर्ता नाम और पासवर्ड सेटिंग्स को संशोधित करते हैं।
अब, हम "Install Gogs" पर क्लिक करते हैं और लॉग इन करते हैं।
चरण 6: Gogs का परीक्षण करें यह सुनिश्चित करने के लिए कि Gogs वास्तव में डिज़ाइन के अनुसार काम कर रहा है, हम एक साधारण पुल/पुश परीक्षण करते हैं। सबसे पहले, हम URL http://10.0.2.15/repo/create पर जाते हैं और my-test-repo नाम से एक रिपॉजिटरी बनाते हैं।
सभी आवश्यक जानकारी भरने के बाद, हम हरे "Create Repository" बटन पर क्लिक करके रिपॉजिटरी बनाने के लिए आगे बढ़ सकते हैं।
अब, हम इस रिपॉजिटरी को निम्नलिखित कमांड का उपयोग करके क्लोन भी कर सकते हैं: $ git clone http://10.0.2.15//my-test-repo.git
फिर हम अपने VM पर रिपॉजिटरी के स्थान पर जाते हैं और README.md फ़ाइल को अपडेट करते हैं। अंत में, हम सभी परिवर्तनों को कमिट करते हैं और निम्नलिखित कमांड का उपयोग करके उन्हें पुश करते हैं: $ git add –-all %% git commit -m “init command”” && git push origin master
हमारी रिपॉजिटरी सफलतापूर्वक बनाई गई है और अब जब हम URL http://10.0.2.15/iammuskaan/my-test-repo पर जाते हैं तो हम README.md फ़ाइल में अपनी सामग्री जुड़ी हुई देख सकते हैं।