প্রতিবার ইন্টারনেট ব্রাউজ করার সময় বা মোবাইল অ্যাপ ব্যবহার করার সময় বিজ্ঞাপনের ছড়াছড়িতে ক্লান্ত? তাহলে, এর একটি চমৎকার সমাধান আছে, যার নাম পাই-হোল (Pi-hole), যা মূলত একটি স্মার্ট ডিএনএস ফিল্টার হিসেবে কাজ করে । সবচেয়ে ভালো দিকটি হলো, আপনার বাড়ির প্রতিটি ডিভাইসে কিছু ইনস্টল করার প্রয়োজন নেই; এই সিস্টেমটি আপনার নেটওয়ার্কের কেন্দ্র থেকে কাজ করে এবং অবাঞ্ছিত কন্টেন্ট আপনার স্ক্রিনে পৌঁছানোর আগেই তা আটকে দেয় ও ব্লক করে দেয়।
এই সিস্টেমটি সেট আপ করার জন্য, বর্তমানে সবচেয়ে বুদ্ধিমানের কাজ হলো ডকার (Docker) ব্যবহার করা। পাই-হোলকে (Pi-hole) একটি কন্টেইনারে রাখার মাধ্যমে, আপনি আপনার কম্পিউটারের অপারেটিং সিস্টেমকে অতিরিক্ত ভারাক্রান্ত করা থেকে বিরত থাকতে পারেন, আপডেট করাকে অত্যন্ত সহজ করে তুলতে পারেন, এবং কোনো সার্ভিস কনফ্লিক্ট ছাড়াই আপনার হার্ডওয়্যার —সেটি রাস্পবেরি পাই (Raspberry Pi), একটি পুরোনো সার্ভার, বা এমনকি উবুন্টু (Ubuntu) বা ডেবিয়ান (Debian) চালিত একটি ভার্চুয়াল মেশিন—থেকে সর্বোচ্চ সুবিধা নিতে পারেন।
পূর্বশর্ত এবং স্থান প্রস্তুতি
বিস্তারিত জানার আগে, এটা জেনে রাখা ভালো যে পাই-হোল অত্যন্ত হালকা। এটি মসৃণভাবে চালানোর জন্য আপনার মাত্র প্রায় ৫১২ মেগাবাইট র্যাম এবং ২ থেকে ৪ গিগাবাইট ডিস্ক স্পেস প্রয়োজন। অপারেটিং সিস্টেমের ক্ষেত্রে, এটি সিস্টেমডি (systemd) বা সিসভিনিট (sysvinit) ব্যবহারকারী ডিস্ট্রিবিউশনগুলোর সাথে নিখুঁতভাবে কাজ করে, যেমন ডেবিয়ান, উবুন্টু, ফেডোরা বা রাস্পবেরি পাই ওএস।
একটি গুরুত্বপূর্ণ বিষয় হলো নেটওয়ার্ক। সিস্টেমটি স্থিতিশীল থাকার জন্য, পাই-হোলের একটি স্ট্যাটিক আইপি অ্যাড্রেস প্রয়োজন । আপনি যদি সার্ভারটি ম্যানুয়ালি কনফিগার করার ঝামেলায় যেতে না চান, তবে আপনার রাউটারে একটি আইপি অ্যাড্রেস রিজার্ভ করে রাখতে পারেন, যাতে এটি কন্টেইনার হোস্টকারী কম্পিউটারটিকে সবসময় একই অ্যাড্রেস বরাদ্দ করে।
ডকার ব্যবহার করে পাই-হোল স্থাপন করা
এটি সেট আপ করার সবচেয়ে সহজ উপায় হলো একটি docker-compose.yml ফাইলের মাধ্যমে । এই পদ্ধতিটি আপনাকে একবারে সমস্ত কনফিগারেশন নির্ধারণ করার সুযোগ দেয়। ভলিউমগুলোকে (যেমন /etc/pihole এবং /etc-dnsmasq.d) আপনার হোস্টের স্থানীয় ফোল্ডারগুলোর সাথে ম্যাপ করা অত্যন্ত গুরুত্বপূর্ণ, যাতে আপনি কন্টেইনার ইমেজ আপডেট করলেও আপনার সমস্ত কনফিগারেশন বা ব্ল্যাকলিস্ট হারিয়ে না যায় ।
কনফিগারেশন ফাইলে পোর্টগুলোর দিকে মনোযোগ দিন। পোর্ট ৫৩ হলো ডিএনএস (DNS)-এর মূল ভিত্তি এবং এটি অবশ্যই খালি থাকতে হবে। যদি দেখেন যে কন্টেইনারটি চালু হচ্ছে না, তাহলে সম্ভবত হোস্টের systemd-resolved অথবা dnsmasq ওই পোর্টটি ব্যবহার করছে। সেক্ষেত্রে, আপনাকে হয় সাংঘর্ষিক সার্ভিসটি নিষ্ক্রিয় করতে হবে অথবা ট্র্যাফিক পুনঃনির্দেশ করার জন্য একটি ব্রিজ কনফিগার করতে হবে।
যদি আপনি Pi-hole-কে একটি DHCP সার্ভার হিসেবেও ব্যবহার করার সিদ্ধান্ত নেন, তাহলে compose-এর cap_add সেকশনে NET_ADMIN ক্যাপাবিলিটি যোগ করতে মনে রাখবেন এবং কানেক্টিভিটির সমস্যা এড়াতে, বিশেষত হোস্ট নেটওয়ার্ক মোড (network_mode: host) ব্যবহার করবেন।
প্রাথমিক সেটআপ এবং অ্যাক্সেস ব্যবস্থাপনা
একবার আপনি কমান্ডটি কার্যকর করলে docker-compose up -dসিস্টেমটি লাইভ হবে। কন্ট্রোল প্যানেলে প্রবেশ করতে, আপনার নির্ধারিত পোর্টের (ডিফল্ট ৮০, যদিও অন্যান্য ওয়েব সার্ভারের সাথে দ্বন্দ্ব এড়াতে আপনি এটি ৮০৮০ বা ৮৯-এ পরিবর্তন করতে পারেন) মাধ্যমে আপনার সার্ভারের আইপি অ্যাড্রেসে সংযোগ করুন। যদি আপনি এনভায়রনমেন্ট ভেরিয়েবলে কোনো পাসওয়ার্ড নির্ধারণ না করে থাকেন... ওয়েব পাসওয়ার্ডসিস্টেমটি একটি র্যান্ডম তৈরি করবে যা আপনি কমান্ডের সাহায্যে লগ চেক করে খুঁজে পেতে পারেন। docker logs pihole | grep random.
অতিরিক্ত নিরাপত্তার জন্য, পাসওয়ার্ডটি দ্রুত পরিবর্তন করে নেওয়াই ভালো। আপনি কন্টেইনার টার্মিনালে প্রবেশ করতে পারেন এই কোড ব্যবহার করে। docker exec -it pihole /bin/bash এবং কমান্ড চালান পাইহোল -এ -পি এমন একটি পাসওয়ার্ড সেট করুন যা আপনার মনে রাখা সহজ কিন্তু অন্যদের জন্য কঠিন।
আপস্ট্রিম ফিল্টারিং এবং ডিএনএস অপ্টিমাইজেশন
যখন পাই-হোল কোনো ঠিকানা চিনতে পারে না, তখন কাকে জিজ্ঞাসা করতে হবে তা যাতে এটি জানতে পারে, তা নিশ্চিত করার জন্য আপনাকে একটি আপস্ট্রিম ডিএনএস সার্ভার কনফিগার করতে হবে। একটি অত্যন্ত নির্ভরযোগ্য বিকল্প হলো কোয়াড৯ (Quad9 ); ডিএনএস সেটিংস ট্যাবে কেবল এর ফিল্টার করা সার্ভারগুলো (যেমন 9.9.9.9) নির্বাচন করুন। এটি আপনার ব্রাউজিংয়ে নিরাপত্তা ও গোপনীয়তার একটি অতিরিক্ত স্তর যোগ করে।
পাই-হোলের মূল ভিত্তি হলো এর ব্লক-লিস্টগুলো। আপনি যদি মজবুত কিছু দিয়ে শুরু করতে চান, তাহলে স্টিভেনব্ল্যাক -এর লিস্টটি যোগ করতে পারেন। যখনই আপনি লিস্টগুলো পরিবর্তন করবেন, তা SQLite3 দিয়ে এন্ট্রি মুছে ফেলার মাধ্যমেই হোক বা নতুন URL যোগ করার মাধ্যমেই হোক, টুলস-এ গিয়ে আপডেট গ্র্যাভিটি (Update Gravity) চালানো অপরিহার্য, যাতে ডাটাবেস রিফ্রেশ হয় এবং পরিবর্তনগুলো কার্যকর হয়।
উন্নত পরামর্শ: স্থানীয় ডোমেইন এবং ব্যবস্থাপনা
আপনার বাড়িতে একাধিক পরিষেবা থাকলে আপনি তৈরি করতে পারেন স্থানীয় ডোমেন নামগুলি আইপি মুখস্থ করার ঝামেলা এড়াতে, একটি ফাইল তৈরি করুন যার নাম local.list মাউন্ট করা পাই-হোল ভলিউমে আইপি এবং ডোমেইন ফরম্যাট নির্ধারণ করুন। তারপর, dnsmasq-এর জন্য একটি কনফিগারেশন ফাইল তৈরি করুন যা সেই তালিকাটিকে রেফারেন্স করে এবং কন্টেইনারটি রিস্টার্ট করুন।
ওয়েবসাইটে প্রবেশ না করেই সিস্টেমটি পরিচালনা করার জন্য, হোস্ট থেকে কিছু অত্যন্ত দরকারি কমান্ড চালানো যায়। উদাহরণস্বরূপ, ব্ল্যাকলিস্টে কোনো ডোমেইন যোগ করতে `pihole -b mydomain.com` ব্যবহার করুন , অথবা ১০ মিনিটের জন্য সাময়িকভাবে ফিল্টারিং নিষ্ক্রিয় করতে আপনি `pihole disable 10m` ব্যবহার করতে পারেন , যা তখন খুব কাজে আসে যখন কোনো বৈধ ওয়েবসাইট ভুলবশত ব্লক হয়ে যায়।
সাধারণ হার্ডওয়্যারের সাথে ডকারের নমনীয়তার সমন্বয় ঘটিয়ে, পোর্ট ৫৩ খালি রেখে এবং ডেটা সংরক্ষণের জন্য ভলিউমগুলো সঠিকভাবে কনফিগার করার মাধ্যমে হোম অ্যাডভার্টাইজিং-এর নিয়ন্ত্রণ নেওয়া সম্পূর্ণ সম্ভব। একবার আপনার রাউটারের ডিএনএস (DNS) ঠিক করে এবং গ্র্যাভিটি লিস্টগুলো অপ্টিমাইজ করে নিলে, আপনি আপনার সমস্ত ডিভাইসে একটি আরও পরিষ্কার এবং অনেক দ্রুতগতির নেটওয়ার্ক উপভোগ করবেন।
