
Docker कॉन्फ़िगरेशन अपने खुद के Canarytokens को जल्दी से सेटअप करने के लिए।
Thinkst Applied Research द्वारा
Canarytokens आपके नेटवर्क पर गतिविधि और क्रियाओं को ट्रैक करने में मदद करते हैं।
यदि आपको कोई समस्या आती है तो कृपया हमारा FAQ यहाँ देखें, या एक issue बनाएँ और हम जल्द से जल्द आपसे संपर्क करने का प्रयास करेंगे।
यह परियोजना और इसमें भाग लेने वाले सभी लोग आचार संहिता द्वारा शासित हैं। भाग लेने से, आपसे इस संहिता का पालन करने की अपेक्षा की जाती है। कृपया अस्वीकार्य व्यवहार की रिपोर्ट [email protected] पर करें।
docker compose -f docker-compose.yml down
या docker compose -f docker-compose-letsencrypt.yml downdocker-compose अब काम नहीं करता है, और docker compose के साथ अपनी Canarytokens इंस्टेंस चालू करने से पहले आपको docker network prune चलाना होगा। Canarytokens v2 अभी भी काम करेगा।canarytokens-docker रेपो का नवीनतम संस्करण पुल करें।docker compose -f docker-compose.yml up -d
या docker compose -f docker-compose-letsencrypt.yml up -dनोट: अपडेटेड canarytokens-docker रेपो में अब Canarytokens v2 के लिए Dockerfile नहीं है, इसलिए इसे चलाने के लिए टैग की गई इमेज thinkst/canarytokens:v2_latest का उपयोग करना आवश्यक है। हम दृढ़ता से v3 में जाने की अनुशंसा करते हैं। यदि आप माइग्रेशन में परेशानी का सामना कर रहे हैं तो कृपया हमसे संपर्क करें।
$ git clone https://github.com/thinkst/canarytokens-docker
$ cd canarytokens-docker
$ sudo apt-get install python3-pip python3-dev
$ sudo pip install -U docker-compose
#if this breaks with PyYAML errors, install the libyaml development package
# sudo apt-get install libyaml-dev
switchboard.env.dist और frontend.env.dist। आपको उन्हें क्रमशः switchboard.env और frontend.env में कॉपी/रीनेम करना होगा (यह सुनिश्चित करता है कि यदि आप बदलाव पुल करते हैं तो आपका कॉन्फ़िगरेशन मिट न जाए)। एक बार ऐसा कर लेने के बाद, आप उन्हें संपादित कर सकते हैं:कृपया अपनी दोनों नव निर्मित कॉन्फ़िगरेशन फ़ाइलों, switchboard.env और frontend.env को देखें, और Required Settings अनुभाग भरें। Optional Settings काम करने के लिए आवश्यक नहीं हैं और उनमें उचित डिफ़ॉल्ट मान हैं, इसलिए यदि आपको आवश्यकता न हो तो उन्हें न बदलें।
इसके बाद तय करें कि आप अलर्ट भेजने के लिए किस ईमेल प्रदाता का उपयोग करना चाहते हैं। आपको mailgun, SMTP और sendgrid के बीच चयन करना होगा। संबंधित आवश्यक विवरण संबंधित .env फ़ाइल में पाए जा सकते हैं।
switchboard.env और frontend.env दोनों में CANARY_WG_PRIVATE_KEY_SEED के रूप में सेट करने के लिए एक अद्वितीय WireGuard key seed जनरेट करें, इस कमांड से:
dd bs=32 count=1 if=/dev/urandom 2>/dev/null | base64
switchboard के माध्यम से canarytoken ट्रिगर के लिए डोमेन example1.com, example2.com, और example3.com (PDFs)
switchboard ट्रिगर के लिए सार्वजनिक IP 1.1.1.1
फ्रंटएंड को सर्व करने के लिए डोमेन 'my.domain'
Mailgun डोमेन नाम 'x.y' और API Key 'zzzzzzzzzz'
WireGuard key seed vk/GD+frlhve/hDTTSUvqpQ/WsQtioKAri0Rt5mg7dw=
frontend.env
#These domains are used for general purpose tokens
CANARY_PUBLIC_IP=1.1.1.1
CANARY_DOMAINS=example1.com,example2.com
#These domains are only used for PDF tokens
CANARY_NXDOMAINS=example3.com
#Requires a Google Cloud API key to generate an incident map on the history page with the Maps JavaScript API
CANARY_GOOGLE_API_KEY=<grab google maps api key>
LOG_FILE=frontend.log
CANARY_PUBLIC_DOMAIN=mydomain.com
LOG_FILE=switchboard.log
CANARY_MAILGUN_DOMAIN_NAME=x.y
CANARY_MAILGUN_API_KEY=zzzzzzzzzz
[email protected]
CANARY_ALERT_EMAIL_FROM_DISPLAY="Example Canarytokens"
CANARY_ALERT_EMAIL_SUBJECT="Canarytoken"
CANARY_WG_PRIVATE_KEY_SEED=vk/GD+frlhve/hDTTSUvqpQ/WsQtioKAri0Rt5mg7dw=
$ docker compose up
$ docker compose up -d
नोट: यदि आपके पास केवल एक डोमेन है, और आप pdf टोकन का उपयोग करना चाहते हैं, तो आप CANARY_NXDOMAINS के लिए सबडोमेन का उपयोग कर सकते हैं। example.com को अपना डोमेन मानते हुए, आप CANARY_NXDOMAINS को nx.example.com पर सेट कर सकते हैं। फिर अपने DNS मैनेजर कंसोल में लॉग इन करें (जहाँ आप अपने डोमेन के DNS रिकॉर्ड संपादित कर सकते हैं) और nx.example.com का एक NS रिकॉर्ड जोड़ें जो example.com की ओर मैप करता हो।
टोकन एक Redis डेटाबेस फ़ाइल में सहेजे जाते हैं जो Docker कंटेनरों के बाहर मौजूद होती है। canarytokens-docker/data डायरेक्टरी में dump.rdb देखें।
यदि आप अपने सभी टोकन मिटाना चाहते हैं, तो dump.rdb को डिलीट करें।
हमारे पास एक अलग docker-compose फ़ाइल है जो HTTPS के साथ Canarytokens सर्वर को चालू करने की प्रक्रिया को (अधिकतर) स्वचालित कर देगी। आपको निम्नलिखित करना होगा:
certbot.env को संपादित करें। आपको अपना डोमेन और ईमेल पता प्रदान करना होगा (ये certbot की पंजीकरण प्रक्रिया के लिए आवश्यक हैं)।
उदा.# Specify a single domain name
MY_DOMAIN_NAME=example.com
# or multiple domains names with this different key (comment out MY_DOMAIN_NAME above if you do):
# MY_DOMAIN_NAMES=example.com anotherexample.net thirdexample.org
[email protected]
अब जब आप अपना सर्वर चालू करना चाहें, तो आप docker compose -f docker-compose-letsencrypt.yml up का उपयोग करेंगे जो सर्वर को
फोरग्राउंड में चलाएगा ताकि आप सुनिश्चित कर सकें कि सब कुछ ठीक से शुरू हो गया है।
यदि सब कुछ चल रहा है, तो आप CTRL+C दबाना चाहेंगे, एक स्वच्छ स्थिति पाने के लिए docker compose -f docker-compose-letsencrypt.yml down चलाएँ, और फिर सर्वर को बैकग्राउंड में (डेमॉन मोड में) चलाने के लिए जोड़े गए -d के साथ docker compose -f docker-compose-letsencrypt.yml up -d दोबारा चलाएँ
कृपया ध्यान रखें कि HTTPS विधि का उपयोग करने पर सर्टिफिकेट पंजीकृत करने के लिए आपके द्वारा निर्दिष्ट ईमेल और डोमेन नाम का उपयोग किया जाएगा। आप let's encrypt प्रक्रिया (cerbot का उपयोग करके) के बारे में यहाँ पढ़ सकते हैं। इस प्रक्रिया में यह सत्यापित करना शामिल है कि आप अपने द्वारा निर्दिष्ट डोमेन के स्वामी हैं, और आपको let's encrypt के साथ पंजीकृत करना शामिल है।
एक RATE LIMIT (दर सीमा) है। इसलिए इस सर्वर को बार-बार चालू और बंद न करें, अन्यथा आप जल्दी ही let's encrypt सर्टिफिकेट जनरेशन सीमा तक पहुँच जाएँगे। इससे बचने के लिए, परीक्षण उद्देश्यों के लिए आप cerbot-nginx/start.sh में ./certbot-auto कमांड में --staging जोड़ सकते हैं, जो यह परीक्षण करेगा कि let's encrypt आपको सर्टिफिकेट देता है या नहीं।
यदि आप एक सार्वजनिक canarytokens साइट रखना चाहते हैं लेकिन उस तक पहुँचने के लिए कुछ बेसिक ऑथ चाहते हैं, तो आप इन चरणों का पालन कर सकते हैं।
git clone https://github.com/thinkst/canarytokens-docker.gitcd canarytokens-docker/nginx
cd canarytokens-docker/certbot-nginx
sudo htpasswd -c .htpasswd user जहाँ user कोई भी यूज़रनेम हो सकता है जिसे आप उपयोग करना चाहें।sudo chown <user>:<user> .htpasswd जहाँ user स्थानीय linux उपयोगकर्ता हैnginx.conf संपादित करें औरserver {
...
location ~* (/generate|/manage|/download|/history|/settings|/resources|/legal).* {
auth_basic "Basic Auth Restricted Canrytokens"; <---- ADD
auth_basic_user_file /etc/nginx/.htpasswd; <---- ADD
Dockerfile संपादित करें और COPY nginx.conf ... के नीचे जोड़ेंCOPY .htpasswd /etc/nginx/.htpasswd
docker compose build
docker compose -f docker-compose-letsencrypt.yml build
अपने docker कंटेनर पुनः प्रारंभ करें, और आनंद लें!
धन्यवाद, @mamisano, उपरोक्त का उपयोग करते समय एक छोटी-सी समस्या पकड़ने के लिए 🙏
हम यहाँ कुछ नई सुविधाओं/जोड़ों को ट्रैक करने जा रहे हैं ताकि यह देखना त्वरित और आसान हो कि हाल ही में क्या जोड़ा गया है।
हमने "What's new?" को Github Discussions पर स्थानांतरित कर दिया है। इसे यहाँ देखें।
अब हमारे पास त्रुटि लॉग को आपकी पसंद के webhook पर भेजने की क्षमता है, उम्मीद है कि यह आपको
या आपकी टीम को विफलताओं के प्रति सचेत करेगा, बजाय इसके कि ये त्रुटियाँ केवल एक लॉग फ़ाइल में रहें।
अपनी switchboard.env फ़ाइल में ERROR_LOG_WEBHOOK मान में संबंधित webhook URI प्रदान करें। (2021-04-09)
हमने वितरित .env फ़ाइलों का नाम बदलकर switchboard.env.dist और frontend.env.dist कर दिया है। यह सुनिश्चित करता है कि जब आप रेपो से बदलाव पुल करते हैं तो आपका स्थानीय
कॉन्फ़िगरेशन मिट न जाए। (हम कॉन्फ़िग के लिए अभी भी switchboard.env और frontend.env का
उपयोग करते हैं, इसका सीधा मतलब है कि रेपो की नई क्लोन में उपयोगकर्ताओं को dist फ़ाइलों को कॉपी/रीनेम करना होगा)
हमने एक अतिरिक्त switchboard.env जोड़ा है जिसका नाम CANARY_IPINFO_API_KEY है। यह आपको अपनी ipinfo.io API key का उपयोग करने की अनुमति देता है यदि आप
चाहें (ध्यान रखें कि ipinfo.io का एक निःशुल्क टियर है जिसमें प्रतिदिन 1000 अनुरोध तक शामिल हैं)।
अब हमारे पास slack समर्थन है। जब आप एक webhook प्रदान करते हैं, तो आप बस अपना slack webhook URL प्रदान करते हैं। (@shortstack को धन्यवाद)।
हमने frontend.env में एक नया environment variable जोड़ा है जिसका नाम है, जो आपको AWS ID टोकन के लिए एक निजी या
अलग URL निर्दिष्ट करने की अनुमति देता है। इसका मतलब है कि आप आसानी से खातों के बीच बदलाव कर सकते हैं। (2018-10-17)
हमारा एक FAQ यहाँ है
पुल रिक्वेस्ट सबमिट करने से पहले कृपया हमारे आचार संहिता और योगदान दस्तावेज़ देखें।
हम आपके बहुमूल्य योगदानों की प्रतीक्षा कर रहे हैं।
CANARY_AWSID_URLयदि आप उस इमेज को बनाने का इरादा रखते हैं जिसे भिन्न आर्किटेक्चर वाले किसी अन्य सिस्टम पर चलाया जाना है, तो आप इमेज को
docker compose build --build-arg ARCH=<target arch>/ के साथ बना सकते हैं, ध्यान दें कि आर्ग्युमेंट के अंत में forward slash है। यदि इसे शामिल नहीं किया गया तो इमेज
सही ढंग से नहीं बनेगी।