ইন্টারনেটে একটি Website চালু রাখার জন্য শুধু Hosting Server থাকলেই হয় না। Website-এর speed, availability এবং security বাড়াতে অনেক প্রতিষ্ঠান Cloudflare, Amazon CloudFront, Fastly কিংবা Akamai-এর মতো Content Delivery Network (CDN) ব্যবহার করে। কিন্তু আপনার Website কোন CDN-এর মাধ্যমে Traffic serve করছে? DNS Resolution-এ কোন IP Address পাওয়া যাচ্ছে? CDN Configuration ঠিকভাবে কাজ করছে কি না? এসব প্রশ্নের উত্তর খুঁজতে কাজে আসতে পারে DRAKORYX CDN Detection Tool।

DRAKORYX CDN Revelator হলো Python-ভিত্তিক একটি Network Analysis ও CDN Detection Tool। GitHub Repository-এর README অনুযায়ী, এটি Cloudflare, CloudFront, Fastly এবং Akamai শনাক্ত করতে পারে। পাশাপাশি IP Range Matching, Reverse DNS Lookup, Domain Resolution, Multi-threaded Processing এবং JSON Report Export-এর সুবিধা রয়েছে।

এই DRAKORYX CDN Detection Tutorial-এ আমরা জানব Tool-টি কীভাবে কাজ করে, কীভাবে Linux বা Termux Environment-এ Setup করতে হয়, কীভাবে নিজের Website বা অনুমোদিত Test Domain বিশ্লেষণ করতে হয় এবং Report থেকে কীভাবে গুরুত্বপূর্ণ তথ্য বুঝতে হয়।

Repository: https://github.com/sylhetyhackvenger/DRAKORYX


🔍 DRAKORYX আসলে কী?

DRAKORYX একটি CDN Detection ও Network Analysis Framework। এর মূল উদ্দেশ্য হলো কোনো Domain অথবা IP Address পরিচিত CDN Provider-এর Public IP Range-এর মধ্যে পড়ে কি না তা যাচাই করা।

সহজভাবে বললে, একটি Website যদি Cloudflare-এর মাধ্যমে পরিচালিত হয়, তাহলে DNS Resolution-এর সময় Cloudflare-এর Network-এর IP Address পাওয়া যেতে পারে। DRAKORYX সেই IP Address-কে পরিচিত CDN Network Range-এর সঙ্গে মিলিয়ে CDN Status নির্ধারণের চেষ্টা করে।

README-তে Tool-টির চারটি প্রধান CDN Provider-এর কথা বলা হয়েছে:

  • Cloudflare

  • Amazon CloudFront

  • Fastly

  • Akamai

Source Code-এও এই Provider-গুলোর Public IP Range সংগ্রহ করার URL এবং Provider Signature Pattern সংজ্ঞায়িত রয়েছে।

⚙️ DRAKORYX-এর প্রধান Features

1. Multi-Provider CDN Detection

একাধিক CDN Provider-এর IP Range ব্যবহার করে Detection করা হয়। ফলে একটি Domain কোন পরিচিত CDN Network-এর IP ব্যবহার করছে, সেটি বোঝার সুযোগ পাওয়া যায়।

2. IP Range Verification

Tool-টি CDN Provider-এর Public CIDR Range সংগ্রহ করে। এরপর Target IP সেই Network Range-এর মধ্যে আছে কি না যাচাই করে।

CIDR কী?

CIDR হলো IP Address Range প্রকাশের একটি পদ্ধতি। যেমন, একটি Network Block-এর মধ্যে অনেকগুলো IP Address থাকতে পারে। DRAKORYX সেই Block-এর সঙ্গে পাওয়া IP Address তুলনা করে।

3. Reverse DNS Lookup

IP Address থেকে Reverse DNS Query করে সংশ্লিষ্ট Hostname পাওয়ার চেষ্টা করে।

কখনো Reverse DNS Record-এ CDN Provider-এর পরিচয় বোঝার মতো তথ্য থাকতে পারে। তবে Reverse DNS সব IP-এর জন্য পাওয়া যায় না।

4. Multiple Target Input

README ও Source Code অনুযায়ী, Tool-টি একাধিক Domain বা IP Address গ্রহণ করতে পারে।

5. Multi-threaded Processing

একাধিক Target আলাদাভাবে Process করার জন্য ThreadPoolExecutor ব্যবহার করা হয়েছে।

Source Code-এ Default Thread সংখ্যা ২০ এবং Maximum Thread Limit ১০০ নির্ধারিত রয়েছে।

6. JSON Report Export

Scan Result JSON File-এ Save করা যায়। এতে Target, CDN Status, Provider, Resolved IP, Response Time, Statistics এবং Timestamp-এর মতো তথ্য থাকে।

7. Terminal Interface

Colorama ব্যবহার করে Terminal-এ Color-coded Output দেখানো হয়। README-তে Cyberpunk-style Interface-এর কথা বলা হয়েছে।


🧠 DRAKORYX কীভাবে কাজ করে?

Tool-টির Source Code অনুযায়ী কাজের প্রধান ধাপগুলো হলো:

Step 1 — Target Input: ব্যবহারকারী Domain অথবা IPv4 Address প্রদান করেন।

Step 2 — CDN Network Collection: Tool-টি Cloudflare, CloudFront, Fastly এবং Akamai-এর নির্ধারিত Public Source থেকে IP Range সংগ্রহের চেষ্টা করে।

Step 3 — Domain Resolution: Domain হলে DNS Resolution-এর মাধ্যমে IP Address বের করা হয়।

Step 4 — IP Range Matching: পাওয়া IP Address পরিচিত CDN Network Range-এর সঙ্গে মিলিয়ে দেখা হয়।

Step 5 — Provider Identification: IP Range এবং Reverse DNS Pattern ব্যবহার করে Provider শনাক্ত করার চেষ্টা করা হয়।

Step 6 — Result Generation: Detection Result, Statistics এবং প্রয়োজনে JSON Report তৈরি হয়।

একটি গুরুত্বপূর্ণ বিষয়: README-তে Header Analysis-এর উল্লেখ থাকলেও দৃশ্যমান drakoryx.py Source Code-এ HTTP Response Header সংগ্রহ করে বিশ্লেষণের বাস্তব Implementation পাওয়া যায়নি। তাই Header-based Detection-কে এখানে নিশ্চিতভাবে কার্যকর Feature হিসেবে দাবি করা হচ্ছে না।


📥 Installation Guide — Linux, Kali Linux ও Termux

DRAKORYX Python 3.8 বা তার পরবর্তী Version-এর জন্য তৈরি বলে README-তে উল্লেখ রয়েছে।

Step 1: Python Version Check

প্রথমে আপনার System-এ Python আছে কি না দেখুন।

python3 --version

Python 3.8 বা তার পরবর্তী Version ব্যবহার করুন।

Step 2: Git Install

Repository Clone করার জন্য Git প্রয়োজন।

Debian বা Ubuntu-based Linux-এ:

sudo apt update
sudo apt install git python3 python3-pip -y

Termux ব্যবহার করলে:

pkg update
pkg install git python -y

Step 3: Repository Clone

এখন GitHub Repository Clone করুন।

git clone https://github.com/sylhetyhackvenger/DRAKORYX

Step 4: Project Directory-তে প্রবেশ

cd DRAKORYX

Step 5: Python Virtual Environment তৈরি

আলাদা Python Environment ব্যবহার করলে Dependency Conflict কমে।

python3 -m venv venv

Linux বা Kali Linux-এ Activate করুন:

source venv/bin/activate

Termux-এও একই Activation Command ব্যবহার করা যায়।

Step 6: Required Dependencies Install

Repository-এর requirements.txt অনুযায়ী প্রয়োজনীয় Package:

  • click

  • requests

  • colorama

  • ipaddress

Install করুন:

pip install -r requirements.txt

অথবা Package-গুলো আলাদাভাবে:

pip install click requests colorama

Dependency সম্পর্কে গুরুত্বপূর্ণ তথ্য: Python-এর আধুনিক Version-এ ipaddress Standard Library-এর অংশ। Repository-তে এটি requirements file-এ আলাদাভাবে রাখা হয়েছে। Installation Environment অনুযায়ী Package Management-এর আচরণ ভিন্ন হতে পারে।

Step 7: Installation Verify

pip show click requests colorama

Package-গুলো Installed থাকলে তাদের Version ও Installation Information দেখতে পাবেন।

Step 8: Tool-এর Help দেখুন

python drakoryx.py --help

এখানে CLI-এর Available Options দেখা যাবে।


🚀 Complete Usage Tutorial

নিচের উদাহরণগুলো নিজের Domain, নিজের Server অথবা লিখিত অনুমতি পাওয়া Test Environment-এর জন্য।

1. Interactive Mode

কোনো Target Argument না দিলে Tool Interactive Input নেওয়ার চেষ্টা করে।

python drakoryx.py

এরপর Terminal-এ Target Input দেওয়ার Interface আসবে।

একটি Domain লিখুন। একাধিক Target দিতে চাইলে প্রতিটি আলাদা লাইনে লিখুন। Input শেষ করতে ফাঁকা Line দিন।

2. Single Domain Analysis

নিজের Website-এর CDN Status যাচাই করার জন্য:

python drakoryx.py example.com

এখানে example.com কেবল Placeholder। নিজের অনুমোদিত Domain দিয়ে Replace করবেন।

3. HTTPS URL Input

README অনুযায়ী Protocol Prefix-সহ URL-ও দেওয়া যায়।

python drakoryx.py https://example.com

Source Code Input থেকে https:// এবং http:// Prefix সরিয়ে Domain বা IP যাচাই করার চেষ্টা করে।

4. Multiple Target Analysis

একাধিক অনুমোদিত Domain বা IP একসঙ্গে দেওয়া যায়।

python drakoryx.py example.com example.net

প্রতিটি Target আলাদাভাবে Analyze হবে।

5. Thread Configuration

DRAKORYX-এর Default Thread সংখ্যা ২০।

নিজের ছোট Test Environment-এ কম Thread ব্যবহার করতে চাইলে:

python drakoryx.py -t 5 example.com

এখানে -t হলো Thread Configuration Option।

Source Code-এ Maximum Thread Limit ১০০। এর বেশি সংখ্যা দিলে কার্যকর Thread সংখ্যা ১০০-এর বেশি হবে না।

অনেক Thread ব্যবহার করলেই যে Detection Accuracy বাড়বে, এমন নয়। বড় Thread সংখ্যা Network বা API-এর ওপর অপ্রয়োজনীয় চাপ তৈরি করতে পারে।

6. JSON Report তৈরি

Result JSON File-এ Save করতে:

python drakoryx.py -o report.json example.com

এই Command-এর মাধ্যমে report.json নামে Output File তৈরি করার নির্দেশ দেওয়া হয়।

7. Quiet Mode

কম Terminal Output দেখতে চাইলে:

python drakoryx.py --quiet example.com

এই Option Verbose Logging কমায়। এটি Detection Accuracy বাড়ানোর কোনো Option নয়।

8. Loading Animation বন্ধ করা

python drakoryx.py --no-animation example.com

Terminal Loading Animation বন্ধ হবে।

9. Multiple Option একসঙ্গে ব্যবহার

নিজের Domain-এর জন্য Thread, JSON Output এবং Quiet Mode একসঙ্গে ব্যবহার করা যায়:

python drakoryx.py -t 5 --quiet --no-animation -o report.json example.com

এখানে:

  • -t 5 — পাঁচটি Worker Thread

  • --quiet — কম Verbose Output

  • --no-animation — Animation বন্ধ

  • -o report.json — JSON Report Save

10. Text File থেকে Target Input

README-তে Pipe Input Support-এর কথা বলা হয়েছে।

নিজের অনুমোদিত Domain-এর একটি তালিকা targets.txt ফাইলে রাখুন। তারপর:

cat targets.txt | python drakoryx.py

এটি Standard Input থেকে Target পড়বে।

কম Output এবং JSON Report একসঙ্গে ব্যবহার করতে:

cat targets.txt | python drakoryx.py --quiet -o report.json

একটি বিষয় মনে রাখবেন: Target File-এ শুধু সেই Domain বা IP রাখবেন, যেগুলো আপনার নিজের অথবা যেগুলো বিশ্লেষণের অনুমতি আপনার রয়েছে।


📊 Output ও Result Analysis

DRAKORYX-এর Terminal Output-এ কয়েকটি গুরুত্বপূর্ণ Status দেখা যায়।

PROXIED

এর অর্থ পাওয়া IP Address পরিচিত CDN Network Range-এর মধ্যে পড়েছে।

এটি CDN ব্যবহার করার একটি ইঙ্গিত। তবে এটি কোনো Website-এর সম্পূর্ণ Security Configuration সঠিক—এমন প্রমাণ নয়।

DIRECT

এর অর্থ পাওয়া IP Address Tool-এর Loaded CDN Range-এর সঙ্গে Match করেনি।

এটিকে সরাসরি Origin Server বলে ধরে নেওয়া যাবে না। এটি অন্য Hosting Provider, অন্য CDN, অথবা কোনো Custom Network-এর IP হতে পারে।

Provider Name

Tool Cloudflare, CloudFront, Fastly অথবা Akamai-এর মতো Provider Name দেখানোর চেষ্টা করে।

Provider শনাক্তকরণে IP Range ও Reverse DNS Pattern ব্যবহৃত হয়।

Resolved IP

Domain DNS Resolution-এর মাধ্যমে পাওয়া IP Address দেখানো হয়।

একটি Domain-এর একাধিক IP Address থাকতে পারে। CDN এবং Anycast Network-এর কারণে বিভিন্ন Location থেকে আলাদা Result-ও পাওয়া যেতে পারে।

Response Time

Analysis শুরু থেকে শেষ পর্যন্ত সময় Millisecond-এ দেখানো হয়।

এটি Network Latency-এর পূর্ণাঙ্গ Benchmark নয়।


📁 JSON Report কীভাবে বুঝবেন?

DRAKORYX JSON Output-এ সাধারণত নিচের ধরনের Field থাকে:

Field অর্থ build Tool Build Identifier timestamp Report তৈরির সময় stats Scan Statistics total_scanned মোট Process করা Target proxied CDN Range-এ Match করা Target unproxied CDN Range-এ Match না করা Target errors Error Count results প্রতিটি Target-এর বিস্তারিত Result identifier Domain অথবা IP entity_type Target-এর ধরন cdn_status CDN Match Status provider শনাক্ত Provider reverse_dns Reverse DNS Result resolved_ips Resolved IP List response_time Analysis Time confidence_score Result Data Model-এর Confidence Field

JSON Report তৈরি হওয়ার পরে এটি যেকোনো Text Editor অথবা JSON Viewer দিয়ে দেখা যায়।

নিজের Website-এর CDN Configuration Audit করার সময় Report-এর তথ্য DNS Provider Dashboard, Hosting Dashboard এবং CDN Dashboard-এর তথ্যের সঙ্গে মিলিয়ে দেখুন।


🛡️ নিজের Website-এর CDN Security Audit কীভাবে করবেন?

DRAKORYX শুধু CDN শনাক্ত করার Tool হিসেবে ব্যবহার না করে নিজের Infrastructure Configuration Review-এর একটি অংশ হিসেবেও কাজে লাগানো যায়।

1. CDN Provider যাচাই

আপনার Website যে CDN Provider ব্যবহার করছে বলে Configuration-এ উল্লেখ আছে, Tool-এর Result-এর সঙ্গে তা তুলনা করুন।

2. DNS Configuration Review

আপনার DNS Record-গুলো প্রত্যাশিত CDN Endpoint-এ Point করছে কি না যাচাই করুন।

3. Direct IP Result যাচাই

Tool কোনো IP-কে DIRECT দেখালে সেটিকে স্বয়ংক্রিয়ভাবে Origin Server ধরে নেবেন না। Hosting Dashboard, DNS Records এবং Internal Asset Inventory দিয়ে যাচাই করুন।

4. Firewall Policy Review

Origin Server-এর Firewall Policy এমনভাবে Configure করা উচিত, যাতে প্রয়োজনীয় CDN Traffic ছাড়া অন্য অননুমোদিত Source থেকে সরাসরি Access সম্ভব না হয়।

5. Sensitive Report Protection

JSON Report-এ Infrastructure সম্পর্কিত তথ্য থাকতে পারে। তাই Report Public Repository বা Unprotected File Hosting-এ Upload করবেন না।


⚠️ DRAKORYX-এর Limitations ও Source Code Review

Tool ব্যবহারের আগে এর বাস্তব সীমাবদ্ধতাগুলো জানা জরুরি।

1. Static Detection Logic: Tool-টি পরিচিত CDN IP Range-এর ওপর নির্ভর করে। Custom CDN বা নতুন Network Range শনাক্ত নাও হতে পারে।

2. Provider API Availability: CDN Provider-এর Public IP List সংগ্রহ করতে Internet Connection প্রয়োজন। কোনো Source Unavailable হলে Detection অসম্পূর্ণ হতে পারে।

3. IPv4-কেন্দ্রিক Input Validation: Source Code-এর IP Pattern IPv4 Address যাচাই করে। IPv6 Support নিশ্চিত নয়।

4. HTTP Header Analysis নিশ্চিত নয়: README-তে Header Analysis-এর উল্লেখ থাকলেও দৃশ্যমান Source Code-এ HTTP Response Header Fetch ও Analysis-এর কার্যকর Implementation পাওয়া যায়নি।

5. Origin IP-এর নিশ্চয়তা দেয় না: কোনো IP DIRECT দেখালেই সেটি Origin Server—এমন সিদ্ধান্ত নেওয়া ভুল হবে।

6. Confidence Score সতর্কতার সঙ্গে দেখুন: Data Model-এ Confidence Score আছে। তবে সেটিকে স্বতন্ত্রভাবে Validated Accuracy Metric হিসেবে ধরে নেওয়ার মতো Evidence নেই।

7. README-এর কিছু দাবি Source Code-এর সঙ্গে পুরোপুরি মেলে না: README-তে Detection-এর বিস্তৃত বর্ণনা আছে, কিন্তু বাস্তব Implementation মূলত DNS Resolution, CDN IP Range Matching এবং Reverse DNS-এর ওপর নির্ভরশীল।

এই সীমাবদ্ধতাগুলো জানলে Tool-এর Result ভুলভাবে ব্যাখ্যা করার ঝুঁকি কমবে।


⚖️ Legal ও Ethical Considerations

DRAKORYX ব্যবহার করার সময় কিছু নিয়ম অনুসরণ করা জরুরি।

  • শুধু নিজের Domain ও Infrastructure পরীক্ষা করুন।

  • অন্য প্রতিষ্ঠানের Network বিশ্লেষণের আগে লিখিত অনুমতি নিন।

  • CDN Protection পাশ কাটানো, অননুমোদিত Server Access বা কোনো Service-এ ক্ষতি করার উদ্দেশ্যে Tool ব্যবহার করবেন না।

  • অপ্রয়োজনীয় High Thread Configuration এড়িয়ে চলুন।

  • Report-এ থাকা Infrastructure Information নিরাপদে সংরক্ষণ করুন।

CDN Detection এবং Security Assessment-এর মধ্যে পার্থক্য আছে। একটি CDN শনাক্ত করতে পারা মানেই কোনো System-এর Vulnerability প্রমাণিত হয়েছে—এমন নয়।


📜 License ও Repository Information

Repository-তে MIT License উল্লেখ রয়েছে এবং LICENSE ফাইলেও MIT License Text পাওয়া যায়।

MIT License অনুযায়ী নির্দিষ্ট শর্ত মেনে Software ব্যবহার, পরিবর্তন ও বিতরণের অনুমতি দেওয়া হয়েছে। Copyright Notice এবং License Notice সংরক্ষণ করতে হবে।

Repository: https://github.com/sylhetyhackvenger/DRAKORYX

Main Source: https://github.com/sylhetyhackvenger/DRAKORYX/blob/main/drakoryx.py

Requirements: https://github.com/sylhetyhackvenger/DRAKORYX/blob/main/requirements.txt


🎯 Final Verdict

DRAKORYX একটি নির্দিষ্ট কাজের জন্য তৈরি Python-based CDN Detection ও Network Analysis Tool। এর প্রধান শক্তি হলো পরিচিত CDN Provider-এর Public IP Range সংগ্রহ, Domain Resolution, Reverse DNS Lookup, Multi-threaded Processing এবং JSON Export।

যারা নিজের Website-এর CDN Configuration যাচাই করতে চান, তাদের জন্য এটি একটি প্রাথমিক Assessment Tool হিসেবে বিবেচনা করা যেতে পারে।

তবে এটিকে Full Vulnerability Scanner, Guaranteed Origin IP Finder অথবা Complete CDN Bypass Framework হিসেবে বিবেচনা করা ঠিক হবে না।

মনে রাখবেন: সঠিক Security Assessment-এর প্রথম শর্ত হলো সঠিক তথ্য, অনুমোদিত Testing এবং Result-এর দায়িত্বশীল ব্যাখ্যা।