প্রকল্প সম্পর্কে
TurkeyBite একটি ওপেন-সোর্ ডোমেইন ও হোস্ট কনটেক্সট বিশ্লেষণ পাইপলাইন, যা ক্লায়েন্ট নেটওয়ার্ক ট্রাফিক বিশ্লেষণ এবং ক্লায়েন্টদের অনুরোধকৃত ডোমেইন শ্রেণীবদ্ধ করার জন্য তৈরি; এতে প্রাপ্তবয়স্ক কনটেন্ট, জুয়া, শপিং ইত্যাদি ক্যাটাগরি অন্তর্ভুক্ত। এটি স্পষ্টভাবে একটি নন-ইনট্রুসিভ বিশ্লেষণ টুল হিসেবে তৈরি, যা ক্লায়েন্টের অনুরোধ ব্লক করে না; তাই প্রয়োজনে Pi-hole-এর মতো ব্লকিং টুলের পাশাপাশি চালানো যায় এবং শেষ ব্যবহারকারীর নেটওয়ার্ক অভিজ্ঞতায় কোনো প্রভাব পড়ে না।
পাইপলাইনটি Docker-ভিত্তিক টেকনোলজি স্ট্যাকের উপর নির্ভর করে, যার মধ্যে রয়েছে Python 3, Valkey (Redis-সামঞ্জস্যপূর্ণ ইন-মেমরি ডেটা স্টোর), Bind9 DNS সার্ভার, ট্রাফিক সংগ্রহের জন্য Packetbeat এবং/অথবা Browserbeat, ডেটা ইনডেক্সিং ও স্টোরেজের জন্য OpenSearch, এবং ভিজ্যুয়ালাইজেশনের জন্য OpenSearch Dashboards। এটি বিশ্লেষণ ফলাফল সমৃদ্ধ করতে একাধিক পাবলিক সোর্স থেকে ডোমেইন ও হোস্ট ক্লাসিফিকেশন তালিকা একত্রিত করে।
কার্যক্রমে, Packetbeat সমর্থিত DNS সার্ভার থেকে DNS ট্রাফিক ক্যাপচার করে (উৎপাদনে Bind9 ও Microsoft DNS সার্ভারের সাথে পরীক্ষিত, এবং যে কোনো DNS সার্ভারের সাথে সামঞ্জস্যপূর্ণ যা Packetbeat চালাতে পারে) এবং ডেটা Valkey-তে পাঠায়। Browserbeat সমর্থিত ব্রাউজার থেকে ব্রাউজার ইতিহাস ডেটা সংগ্রহ করতে ব্যবহার করা যায়। TurkeyBite core ও worker প্রসেস ইনজেস্ট করা ডেটা প্রসেস করে, ডোমেইন ক্যাটাগরি কনটেক্সট দিয়ে সমৃদ্ধ করে, এবং OpenSearch Dashboards-এর মাধ্যমে কুয়েরি ও ভিজ্যুয়ালাইজেশনের জন্য ফলাফল OpenSearch-এ ইনডেক্স করে।
ডিপ্লয়মেন্ট Docker Compose-এর মাধ্যমে পরিচালিত হয়, যেখানে একটি সেটআপ স্ক্রিপ্ট ব্যবহারকারীদের বিভিন্ন ডিপ্লয়মেন্ট স্কেল (ডেভেলপমেন্ট, ছোট স্কেল, পূর্ণ স্কেল) অনুযায়ী কনফিগারেশনের নির্দেশনা দেয়; এর মধ্যে ক্লায়েন্ট IP-এর জন্য DNS লুকআপ সেটিংস, আউটপুট অপশন (OpenSearch এবং/অথবা Syslog), এবং সার্ভিস ক্রেডেনশিয়াল অন্তর্ভুক্ত। সেটআপ স্ক্রিপ্ট স্বয়ংক্রিয়ভাবে প্রয়োজনীয় কনফিগারেশন ফাইল (.env, config.yaml, docker-compose.yml) এবং সার্ভিস অথেন্টিকেশনের জন্য সিক্রেট ফাইল তৈরি করে। একাধিক নোডজুড়ে ডিস্ট্রিবিউটেড ডিপ্লয়মেন্টের জন্য, উপযুক্ত কনফিগারেশনসহ প্রতিটি নোডে সেটআপ স্ক্রিপ্ট চালানো যায়, এবং Valkey আলাদা ডেডিকেটেড সার্ভারে চাললে core ও worker নোডে Valkey অথেন্টিকেশন সিক্রেট কপি করতে হবে।
ডেটা সংগ্রহ কনফিগারেশনের জন্য, Packetbeat-কে পোর্ট 53-এ DNS ট্রাফিক ক্যাপচার এবং Valkey-তে আউটপুট দেওয়ার জন্য সেট করতে হবে, নির্বাচিত TurkeyBite পাইপলাইন মোডের সাথে datatype ও key সেটিংস সযত্নে মিলিয়ে দিতে হবে: "consume" মোড at-least-once ডেলিভারির জন্য Valkey লিস্ট ব্যবহার করে এবং persistent backlog ট্র্যাকিং করে, আর "rq" মোড Valkey pub/sub ব্যবহার করে যা ডিজাইনগতভাবেই lossy। Browserbeat ব্রাউজার ইতিহাস ডেটা সংগ্রহের জন্য তার নিজস্ব ইনস্টলেশন নির্দেশনা অনুসরণ করে আলাদাভাবে কনফিগার করা হয়।
রুটিন রক্ষণাবেক্ষণের মধ্যে vols/logs ডিরেক্টরিতে সংরক্ষিত লগ পরীক্ষা করা অন্তর্ভুক্ত, এবং vols/lists-এ সংরক্ষিত ডোমেইন তালিকা ব্যবহারকারী-কনফিগার করা রিফ্রেশ ইন্টারভাল অনুযায়ী স্বয়ংক্রিয়ভাবে আপডেট হয়। সাধারণ ট্রাবলশুটিং ধাপের মধ্যে রয়েছে docker compose logs-এর মাধ্যমে কন্টেইনার লগ পরীক্ষা করা, আলাদা সার্ভিস রিস্টার্ট করা, এবং Docker নেটওয়ার্কে কন্টেইনারগুলোর মধ্যে কানেক্টিভিটি যাচাই করা।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.