Tor exit node কীভাবে চালাবেন: পূর্ণাঙ্গ নির্দেশিকা
Tor exit node চালানোর বাস্তব অভিজ্ঞতা জানুন। সঠিক হোস্ট নির্বাচন, exit policy সেটআপ, ContactInfo, reverse DNS কনফিগারেশন এবং abuse mail হ্যান্ডেল করার সঠিক নিয়মগুলো এখানে দেওয়া হলো।
Tor exit node কী করে এবং এটি আপনাকে কী হিসেবে উপস্থাপন করে
একটি Tor exit node হলো একটি সার্কিটের সর্বশেষ রিলে: এটি এমন একটি মেশিন যা গন্তব্যের সাথে সংযোগ স্থাপন করে, ফলে গন্তব্য সার্ভার ব্যবহারকারীর আইপি অ্যাড্রেসের পরিবর্তে আপনার সার্ভারের অ্যাড্রেস লগ করে। এই গাইডের প্রতিটি সিদ্ধান্ত এই একটি তথ্যের ওপর ভিত্তি করে নেওয়া হয়েছে। যেহেতু এই অ্যাড্রেসটি এর মধ্য দিয়ে যাওয়া সমস্ত ট্র্যাফিকের উৎস হিসেবে বিবেচিত হয়, তাই এটি এমন একটি অ্যাড্রেস হতে হবে যা অন্য কোনো কাজ করে না এবং এমন একটি প্রোভাইডারের অধীনে থাকতে হবে যারা এই ট্র্যাফিক বহন করতে সম্মত হয়েছে।
একটি exit node চালানো নিজেকে লুকিয়ে রাখার ঠিক বিপরীত। এই রিলেটি একটি পাবলিক ডিরেক্টরিতে তালিকাভুক্ত থাকে যা যে কেউ ডাউনলোড করতে পারে। আপনার যোগাযোগের ঠিকানা সেই ডিরেক্টরিতে ContactInfo-এর অধীনে থাকে, আপনার reverse DNS (domain name system) নাম ঘোষণা করে যে এই বক্সটি কী, port 80 একটি পেজ সার্ভ করে যেখানে একই কথা লেখা থাকে, এবং আপনি নিজেই নিজের নামে abuse mail-এর উত্তর দেন। এই সিস্টেমে একজন exit operator-এর চেয়ে বেশি শনাক্তযোগ্য আর কেউ নেই। এটাই এই কাজের প্রকৃতি এবং এ কারণেই এই কাজটি কার্যকর।
আমরা এগুলো পরিচালনা করি। মুক্ত মতপ্রকাশের প্রতি অবদান হিসেবে SSD Nodes বিভিন্ন দেশে exit relay পরিচালনা করে। আমরা সেই মেশিনগুলো এমন প্রোভাইডারদের কাছ থেকে ভাড়া নিই যারা জেনেশুনে exit traffic বহন করতে সম্মত হয়েছে, এবং আমরা তাদের জন্য প্রোভাইডার নই। এটি ইচ্ছাকৃতভাবেই করা হয়েছে এবং পরবর্তী সেকশনে এর কারণ ব্যাখ্যা করা হয়েছে।
যেখানে একটি এক্সিট থাকা উচিত এবং যেখানে থাকা উচিত নয়
একটি সাধারণ উদ্দেশ্যমূলক VPS (virtual private server)-এ এক্সিট থাকা উচিত নয়, এবং আমাদের সার্ভারগুলোও এর অন্তর্ভুক্ত। একটি সাধারণ নেটওয়ার্ক হাজার হাজার গ্রাহকের ওয়েবসাইট, মেইল, ব্যাকআপ এবং কন্ট্রোল প্যানেল বহন করে, যাদের IP অ্যাড্রেসগুলো একে অপরের কাছাকাছি। এক্সিট ট্র্যাফিক এই অ্যাড্রেসগুলোর কোনো একটিকে স্ক্যানিং রিপোর্ট বা স্প্যাম ব্লকলিস্টে ফেলে দিতে পারে, যার প্রভাব প্রতিবেশী গ্রাহকদের ওপরও পড়ে। যে প্রোভাইডাররা সঠিকভাবে এক্সিট হোস্ট করে, তারা এর জন্য আলাদা অবকাঠামো তৈরি করে রাখে: এই কাজের জন্য আলাদা অ্যাড্রেস স্পেস বরাদ্দ থাকে এবং তাদের একটি অ্যাবিউজ ডেস্ক থাকে যারা Tor সম্পর্কে আগে থেকেই অবগত।
তাই এই গাইডের লেখক হিসেবে আমরা আপনাকে পরামর্শ দিচ্ছি অন্য কোথাও থেকে মেশিনটি কেনার জন্য। এটিই সবচেয়ে কার্যকর পরামর্শ। এক্সিট ট্র্যাফিক একটি অ্যাড্রেসের ওপর কী প্রভাব ফেলে তা আমরা জানি, কারণ আমাদের ট্র্যাফিক বহন করার জন্য আমরা অন্য কাউকে অর্থ প্রদান করি। আমরা তাদের অর্থ প্রদান করি কারণ সঠিকভাবে ট্র্যাফিক বহন করা সাধারণ সার্ভার বিক্রির ব্যবসার চেয়ে সম্পূর্ণ আলাদা একটি বিষয়।
The Tor Project একই কথা আরও সরাসরি বলেছে। তাদের types of relays পৃষ্ঠায় উল্লেখ করা হয়েছে যে, এক্সিট রিলেগুলোর "সবচেয়ে বেশি আইনি ঝুঁকি এবং দায়বদ্ধতা থাকে" এবং "আপনার নিজের বাসা থেকে Tor এক্সিট রিলে চালানো উচিত নয়"। আপনার নিজের প্রজেক্ট হোস্ট করা একটি সাধারণ VPS আপনার বাসার মতোই সংবেদনশীল। এটি এমন একটি মেশিন যার যত্ন আপনি নেন এবং এমন একটি অ্যাড্রেস যা আপনি পরিষ্কার রাখতে চান।
আপনার যদি একটি সাধারণ VPS থাকে এবং আপনি এই সপ্তাহে নেটওয়ার্ককে সাহায্য করতে চান, তবে তাতে একটি নন-এক্সিট রিলে বা ব্রিজ চালান। এটি কোনো সান্ত্বনা পুরস্কার নয়। এটি ভিন্ন ঝুঁকির প্রোফাইলসহ একটি ভিন্ন কাজ এবং নেটওয়ার্কের উভয়ই প্রয়োজন। একটি নন-এক্সিট রিলে কখনোই গন্তব্যের সাথে সরাসরি সংযোগ খোলে না, তাই এটি প্রায় কোনো অভিযোগই তৈরি করে না। Tor-এর নির্দেশিকা অনুযায়ী, একটি রিলে তালিকায় আসার জন্য উভয় দিকে অন্তত 2 MByte/s (megabytes per second) গতির প্রয়োজন। একটি bridge হলো সেন্সরশিপ থাকা নেটওয়ার্কের ব্যবহারকারীদের জন্য একটি অঘোষিত এন্ট্রি পয়েন্ট। এর জন্য 24/7 কানেক্টিভিটি এবং একটি খোলা TCP (transmission control protocol) পোর্ট প্রয়োজন, যা এটিকে একটি ছোট সার্ভারের জন্য সবচেয়ে মূল্যবান কাজে পরিণত করে। এই দুটিই আপনার বর্তমান হার্ডওয়্যারে চালানো সম্ভব। কিন্তু একটি এক্সিট সেখানে চালানো উচিত নয়।
কিভাবে একটি exit-friendly প্রোভাইডার খুঁজে পাবেন?
অর্ডার করার আগে লিখিতভাবে জিজ্ঞাসা করুন এবং উত্তরটি সংরক্ষণ করুন। Tor-এর exit guidelines অনুযায়ী দুটি ধাপে জিজ্ঞাসা করার পরামর্শ দেওয়া হয়: প্রথমে প্রোভাইডার Tor exit-এর অনুমতি দেয় কি না, এবং দ্বিতীয়ত তারা এর জন্য কোনো ডেডিকেটেড IP অ্যাড্রেস বা রেঞ্জ বরাদ্দ করবে কি না। একসাথে দুটি প্রশ্ন করলে সাধারণত তারা সরাসরি 'না' বলে দেয়।
নিচের চারটি প্রশ্ন থেকে বোঝা যাবে প্রোভাইডারটি সত্যিই এর জন্য প্রস্তুত কি না।
- আপনারা কি এমন একটি ডেডিকেটেড IP অ্যাড্রেস বরাদ্দ করবেন যেখানে অন্য কিছু হোস্ট করা থাকবে না এবং আমি যে reverse DNS রেকর্ড চাইব তা কি সেট করবেন?
- abuse মেইল কারা গ্রহণ করে এবং আপনারা কি তা কোনো পরিবর্তন ছাড়াই আমার কাছে পাঠিয়ে দেবেন, যাতে রিপোর্টারের অ্যাড্রেস অক্ষত থাকে এবং আমি সরাসরি তাদের উত্তর দিতে পারি?
- প্রথমবার অভিযোগ আসলে কী ঘটে: আপনারা কি তা আমার কাছে পাঠিয়ে দেন, নাকি আগে অ্যাড্রেসটি null-route করে পরে জিজ্ঞাসা করেন?
- এই নেটওয়ার্কে ইতিমধ্যে কতগুলো exit আছে? Tor-এর নির্দেশিকা এ বিষয়ে স্পষ্ট: "আমরা যদি একটি বন্ধুত্বপূর্ণ ISP-তে অনেক বেশি exit জমা করি, তবে তা কোনো কাজে আসে না।"
শেষের প্রশ্নটি যতটা সাধারণ মনে হয়, আসলে তার চেয়েও গুরুত্বপূর্ণ। একটি exit-এর মূল্যের একটি অংশ নির্ভর করে সেটি নেটওয়ার্কের কোথায় অবস্থিত তার ওপর। যে নেটওয়ার্কে ইতিমধ্যে পঞ্চাশটি exit আছে, সেখানে নতুন একটি যোগ করলে তা নতুন কোনো জায়গায় যোগ করার চেয়ে কম কার্যকর হয়। Relay Search থেকে দেখা যায় কোন নেটওয়ার্কগুলোতে ইতিমধ্যে exit রয়েছে, তাই প্রতিশ্রুতি দেওয়ার আগে তা যাচাই করে নিন।
পেমেন্ট করার আগেই উত্তরগুলো জেনে নিন এবং মেশিনটি আলাদা অ্যাকাউন্টে কিনুন, আপনার অন্যান্য সার্ভার যে অ্যাকাউন্টে আছে সেখানে যোগ করবেন না। VPS হোস্টিং কতটা নিরাপদ তা মূলত নির্ভর করে আপনি কোনটির পাশে কোনটি রাখছেন তার ওপর, এবং এটি সেই নিয়মের সবচেয়ে স্পষ্ট উদাহরণ।
একটি ঠিকানা, একটি কাজ
এক্সিট নোডের ঠিকানায় অন্য কোনো সার্ভিস চালানো যাবে না। কোনো ওয়েবসাইট, মেইল, VPN, মনিটরিং ড্যাশবোর্ড বা ব্যক্তিগত SSH (secure shell) জাম্প হোস্ট রাখা যাবে না। এই ঠিকানাটি ব্লক লিস্টে চলে যাবে, এবং সেখানে অন্য কিছু থাকলে তা এমনভাবে অকার্যকর হয়ে পড়বে যা ডিবাগ করা কঠিন। একটি একক উদ্দেশ্যে ব্যবহৃত ঠিকানা থাকলে অভিযোগের উত্তরে আপনি সংক্ষেপে বলতে পারবেন: এই ঠিকানাটি একটি এক্সিট রিলে, এটি অন্য কিছু নয়।
Tor চালু করার আগে সাধারণ কাজগুলো সম্পন্ন করুন। পাসওয়ার্ড লগইন নিষ্ক্রিয় করে শুধুমাত্র Key-based SSH ব্যবহার করুন এবং এমন একটি ফায়ারওয়াল সেট করুন যা শুধুমাত্র আপনার প্রকাশিত পোর্টগুলোকে অনুমতি দেয়। Hardening SSH on a VPS অংশে প্রথম বিষয়টি এবং ufw firewall basics অংশে দ্বিতীয় বিষয়টি আলোচনা করা হয়েছে। একটি এক্সিট নোড বাইরের বিশ্বের জন্য ঠিক দুটি পোর্ট উন্মুক্ত রাখে: ORPort যা Tor ট্রাফিক বহন করে এবং পোর্ট 80 যা এক্সিট নোটিশ পেজের জন্য ব্যবহৃত হয়। বাকি সবকিছু বন্ধ থাকবে।
Unattended upgrades চালু রাখুন, কারণ পুরনো Tor বিল্ডে পড়ে থাকা একটি এক্সিট নোড এর মাধ্যমে চলাচলকারী প্রতিটি ব্যবহারকারীর জন্য সমস্যা তৈরি করে।
sudo apt update && sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgradesলগিং যোগ করবেন না। এক্সিট নোড থেকে বেরিয়ে যাওয়া প্লেইনটেক্সট ডেটা ক্যাপচার করা প্রযুক্তিগতভাবে সহজ, কিন্তু একজন অপারেটরের জন্য এটি কখনোই করা উচিত নয়। EFF Tor legal FAQ অপারেটরদের এটি না করার পরামর্শ দেয়, কারণ মার্কিন যুক্তরাষ্ট্রের ওয়্যারট্যাপ আইন এবং অন্যান্য দেশের অনুরূপ আইন অনুযায়ী এই ট্রাফিক পরীক্ষা করা আইনি দায়বদ্ধতা তৈরি করতে পারে। Tor-এর ডিফল্ট notice-লেভেল লগিং বজায় রাখুন, এর চেয়ে বেশি কিছু নয়।
Tor Project repository থেকে Tor ইনস্টল করা
ডিস্ট্রিবিউশন প্যাকেজগুলো সাধারণত পুরনো ভার্সনের হয়। নিরাপত্তা সংক্রান্ত আপডেটগুলো প্রকাশের দিনই পাওয়ার জন্য Tor Project-এর নিজস্ব রিপোজিটরি ব্যবহার করুন। আগস্ট 2026 অনুযায়ী বর্তমান স্টেবল সিরিজ হলো 0.4.9।
sudo apt update
sudo apt install -y apt-transport-https gnupg wget
lsb_release -cs/etc/apt/sources.list.d/tor.sources লিখুন এবং noble-এর পরিবর্তে lsb_release -cs যে কোডনেমটি দেখিয়েছে তা বসান:
Types: deb deb-src
URIs: https://deb.torproject.org/torproject.org/
Suites: noble
Components: main
Signed-By: /usr/share/keyrings/deb.torproject.org-keyring.gpgসাইন করার কি (signing key) যোগ করুন, তারপর ইনস্টল করুন:
wget -qO- https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc | gpg --dearmor | sudo tee /usr/share/keyrings/deb.torproject.org-keyring.gpg >/dev/null
sudo apt update
sudo apt install -y tor deb.torproject.org-keyring
tor --versiondeb.torproject.org-keyring প্যাকেজটি কি-টিকে সবসময় আপডেট রাখে, ফলে কি পরিবর্তনের দিন রিপোজিটরি কাজ করা বন্ধ করে দেয় না। যদি apt update একই রিপোজিটরি দুইবার কনফিগার করা হয়েছে বলে রিপোর্ট দেয়, তবে আপনার কাছে একটি .list ফাইল এবং একটি .sources ফাইল আছে যা একই রিপোজিটরিকে নির্দেশ করছে। deb822 ডুপ্লিকেট সোর্স এরর কীভাবে সমাধান করতে হয় তা সেখানে ব্যাখ্যা করা হয়েছে।
DNS: আপনার এক্সিট এটি ব্যবহারকারী সবার জন্য নাম রেজলভ করে
একটি এক্সিট তার মধ্য দিয়ে যাওয়া প্রতিটি সার্কিটের জন্য নাম লুকআপ সম্পন্ন করে, তাই এর রেজলভার অন্য লোকেদের ব্যবহৃত নামের একটি স্ট্রিম দেখতে পায়। এটিকে কোনো বড় পাবলিক রেজলভারের দিকে নির্দেশ করলে আপনি পুরো স্ট্রিমটি একটি কোম্পানির হাতে তুলে দেবেন, যা সেই কেন্দ্রীকরণকেই ত্বরান্বিত করে যা টর (Tor) এক্সিট অপারেটরদের এড়িয়ে চলতে বলে। এর পরিবর্তে বক্সে একটি ভ্যালিডেটিং, ক্যাশিং রেজলভার চালান।
sudo apt install -y unbound bind9-dnsutils
sudo cp /etc/resolv.conf /etc/resolv.conf.backup
echo "nameserver 127.0.0.1" | sudo tee /etc/resolv.conf
sudo chattr +i /etc/resolv.conf
sudo systemctl enable --now unboundchattr +i ফাইলটিকে ইমিউটেবল বা অপরিবর্তনীয় হিসেবে চিহ্নিত করে, কারণ DHCP (dynamic host configuration protocol) ক্লায়েন্ট এবং resolvconf তাদের নিজস্ব শিডিউলে /etc/resolv.conf ফাইলটিকে নতুন করে লিখে ফেলে। এটি ছাড়া রিবুট করলে আপনার লুকআপগুলো আবার প্রোভাইডারের রেজলভারে ফিরে যেতে পারে এবং এটি ঘটলে আপনাকে সতর্ক করার মতো কেউ থাকবে না। টরের Debian এবং Ubuntu নির্দেশাবলীতে query name minimisation-ও সক্রিয় করা হয়, যা প্রতিটি নেম সার্ভারে শুধুমাত্র নামের সেই অংশটুকু পাঠায় যা তার প্রকৃতপক্ষে প্রয়োজন:
server:
qname-minimisation: yesএটিকে /etc/unbound/unbound.conf.d/-এর অধীনে একটি ফাইলে রাখুন, তারপর নিশ্চিত করুন যে রেজলভার উত্তর দিচ্ছে:
sudo systemctl restart unbound
dig +short example.com @127.0.0.1উত্তরে একটি অ্যাড্রেস থাকা মানে unbound কাজ করছে। যদি unbound address already in use দিয়ে শুরু হতে ব্যর্থ হয়, তবে অন্য কোনো প্রসেস 53 পোর্টটি দখল করে রেখেছে: sudo ss -lntup | grep :53 চালান এবং দেখুন কে এটি ব্যবহার করছে। Ubuntu-তে, systemd-resolved 127.0.0.53 পোর্টে লিসেন করে, তাই এটি 127.0.0.1-এ unbound-এর সাথে সংঘর্ষ তৈরি করে না।
একটি exit relay-এর জন্য torrc
Debian প্যাকেজটি /etc/tor/torrc ফাইলটি পড়ে। এটিই সম্পূর্ণ exit-সম্পর্কিত কনফিগারেশন।
Nickname exampleExit01
ORPort 443
ExitRelay 1
SocksPort 0
ContactInfo email:tor[]example.org abuse:abuse[]example.org url:https://example.org ciissversion:3
ReducedExitPolicy 1
Log notice syslogএখানে প্রতিটি লাইন অত্যন্ত গুরুত্বপূর্ণ, তাই একটি একটি করে বুঝে নিন।
ORPort 443 হলো সেই পোর্ট যেখানে অন্যান্য relay আপনার সাথে সংযোগ স্থাপন করে। পোর্ট 443 এমন সব সীমাবদ্ধ নেটওয়ার্কের মধ্য দিয়েও কাজ করে যা অস্বাভাবিক পোর্টগুলোকে ব্লক করে দেয়, তাই প্রচলিত 9001 পোর্টের তুলনায় আপনার relay-তে অনেক বেশি মানুষ পৌঁছাতে পারবে। আপনি শুধুমাত্র তখনই 443 পোর্টটি দাবি করতে পারবেন যদি এই সার্ভারের অন্য কোনো সার্ভিস এটি ব্যবহার না করে, যা একটি ডেডিকেটেড অ্যাড্রেস ব্যবহারের পক্ষে আরও একটি যুক্তি।
SocksPort 0 লোকাল SOCKS প্রক্সি বন্ধ করে দেয়। একটি relay-এর জন্য এর প্রয়োজন নেই, এবং পাবলিক অ্যাড্রেসে SOCKS পোর্ট খোলা রাখা মানে একটি ওপেন প্রক্সি তৈরি করা, যা কয়েক ঘণ্টার মধ্যেই খুঁজে বের করে অপব্যবহার করা হবে।
ExitRelay 1 হলো সেই সুইচ যা এটিকে একটি exit relay হিসেবে সক্রিয় করে। ডিফল্ট সেটিংসের ওপর নির্ভর না করে এটিকে স্পষ্টভাবে সেট করুন, যাতে কনফিগারেশন ফাইলটি দেখেই বোঝা যায় মেশিনটি কী কাজ করছে।
ContactInfo পাবলিক ডিরেক্টরিতে প্রকাশিত হয় যাতে যে কেউ এটি পড়তে পারে। এটি ContactInfo Information Sharing Specification ফরম্যাটে লিখুন, যা নেটওয়ার্কের টুলিং বিশ্লেষণ করতে পারে এবং এর মধ্যে ciissversion:3 বজায় রাখুন। @-এর পরিবর্তে [] ব্যবহার করা হলো সেই স্পেসিফিকেশনের প্রচলিত নিয়ম, যা অ্যাড্রেস স্ক্র্যাপারদের গতি কমিয়ে দেয়। এমন একটি মেইলবক্স ব্যবহার করুন যা আপনি প্রতিদিন চেক করেন, কারণ এখানেই অপব্যবহার সংক্রান্ত অভিযোগের মেইলগুলো আসবে।
যদি সার্ভারে IPv6 কার্যকর থাকে, তবে একটি IPv6 ORPort যোগ করুন এবং IPv6 এক্সিটিং সক্রিয় করুন। যদি তা না থাকে তবে উভয়ই বাদ দিন, কারণ একটি relay যদি এমন অ্যাড্রেস প্রচার করে যা সে আসলে ব্যবহার করতে পারে না, তবে সেটি তার নিজস্ব রিচেবিলিটি টেস্টে ব্যর্থ হবে।
ORPort [2001:db8::1]:443
IPv6Exit 1Exit policy: কোন পোর্টগুলো অনুমোদিত
Exit policy হলো সেই গন্তব্যগুলোর তালিকা যেখানে আপনার relay সংযোগ স্থাপন করতে পারবে। Tor এই তালিকাটি উপর থেকে নিচ পর্যন্ত পড়ে এবং প্রথম যে নিয়মের সাথে মিলে যায়, সেটিই কার্যকর হয়। ReducedExitPolicy 1 প্রায় সত্তরটি পোর্টের একটি বাছাইকৃত তালিকা নির্বাচন করে, যা ওয়েব, মেইল সাবমিশন, চ্যাট এবং git-এর জন্য প্রয়োজনীয়। এটি এমন পোর্টগুলোকে বাদ দেয় যেগুলোর বিরুদ্ধে সবচেয়ে বেশি অভিযোগ আসে। প্রথমবার exit relay চালানোর জন্য এটিই সঠিক সূচনা।
দুটি নিয়ম নাম ধরে জেনে রাখা ভালো। ExitPolicyRejectPrivate ডিফল্টভাবে চালু থাকে এবং এটি exit-কে প্রাইভেট অ্যাড্রেস রেঞ্জ এবং relay-এর নিজস্ব অ্যাড্রেসে সংযোগ করা থেকে বিরত রাখে। এটি আপনার exit-কে আপনার প্রোভাইডারের অভ্যন্তরীণ নেটওয়ার্কে আক্রমণ করা থেকে রক্ষা করে। পোর্ট 25 (SMTP, simple mail transfer protocol) প্রত্যাখ্যান করা হয় এবং এটি প্রত্যাখ্যান করাই উচিত, কারণ এটি চালু করলে relay একটি স্প্যামের উৎসে পরিণত হয় এবং কয়েক দিনের মধ্যেই অ্যাড্রেসটি ব্লক লিস্টে পড়ে যায়।
একটি exit-কে কার্যকর হতে হলে অবশ্যই পোর্ট 80 এবং 443 অনুমোদন করতে হবে। Tor-এর exit relay documentation সরাসরি এই ন্যূনতম প্রয়োজনীয়তার কথা উল্লেখ করে। আপনার প্রোভাইডার যদি reduced policy-এর চেয়েও কঠোর কিছু চায়, তবে শুধুমাত্র ওয়েব-ভিত্তিক exit-ও একটি গুরুত্বপূর্ণ অবদান:
ExitPolicy accept *:80
ExitPolicy accept *:443
ExitPolicy reject *:*তালিকার শেষে reject *:* যোগ করুন যাতে আপনার policy সম্পূর্ণ হয় এবং অন্য কোনো নিয়ম উত্তরাধিকারসূত্রে না আসে। reduced policy পোর্ট 22 (SSH) অনুমোদন করে, যা সাধারণত brute-force রিপোর্টের উৎস। তাই আপনি যদি এই ধরনের মেইল সামলাতে না চান, তবে তালিকার বাকি অংশের উপরে ExitPolicy reject *:22 যোগ করুন। 6881-6999 রেঞ্জের ফাইল-শেয়ারিং পোর্টগুলো সাধারণত কপিরাইট নোটিশের উৎস, এবং reduced policy ইতিমধ্যে সেগুলোকে বাদ দিয়েছে।
policy পরিবর্তনের পর তা ক্লায়েন্টদের কাছে পৌঁছাতে সময় লাগে, কারণ আপনার relay-কে নতুন descriptor প্রকাশ করতে হয় এবং directory-কে তা প্রচার করতে হয়। তাই প্রভাব যাচাই করার আগে কয়েক ঘণ্টা অপেক্ষা করুন।
যোগাযোগের তথ্য, ফ্যামিলি কি (family keys) এবং রিলে নিবন্ধন
একটি এক্সিট রিলে নিবন্ধন করার অর্থ হলো সেটিকে এমন একটি নামের সাথে যুক্ত করা যা অপরিচিত কেউ যাচাই করতে পারে। দুটি প্রক্রিয়ার মাধ্যমে এটি করা হয় এবং তারা একসাথে কাজ করে।
প্রথমটি হলো একটি সুপরিচিত ফাইল। আপনার নিয়ন্ত্রণে থাকা একটি ডোমেইনে আপনার ফ্যামিলি আইডেন্টিটি প্রকাশ করুন, তারপর ContactInfo-এ সেই প্রমাণের নাম উল্লেখ করুন:
ContactInfo email:tor[]example.org url:https://example.org proof:uri-familyid-ed25519 ciissversion:3ফাইলটি https://example.org/.well-known/tor-relay/ed25519-family-id.txt-এ থাকে এবং এতে আপনার ফ্যামিলি আইডি থাকে। এখন যে কেউ নিশ্চিত হতে পারে যে, যারা এই রিলেগুলোর দাবি করছে, তারাই সেই ডোমেইনটিও নিয়ন্ত্রণ করে। একটি সাধারণ যোগাযোগ ঠিকানা এবং একটি যাচাইকৃত ঠিকানার মধ্যে পার্থক্য এখানেই।
দ্বিতীয়টি হলো ফ্যামিলি বা পরিবার। আপনি যদি একাধিক রিলে চালান, তবে নেটওয়ার্কের জানা প্রয়োজন যে সেগুলোর অপারেটর একই, যাতে কোনো ক্লায়েন্ট কখনোই আপনার দুটি মেশিনের মধ্য দিয়ে সার্কিট তৈরি না করে। বর্তমান tor এটি করে একটি ফ্যামিলি কি-এর মাধ্যমে, যাকে বলা হয় Happy Families, যা 0.4.9.2-alpha বা তার পরবর্তী ভার্সনে চলে:
tor --keygen-family exampleFamilyএটি exampleFamily.secret_family_key লেখে এবং একটি FamilyId লাইন প্রিন্ট করে। সিক্রেট কি ফাইলটি প্রতিটি রিলের কি ডিরেক্টরিতে (Debian এবং Ubuntu-তে /var/lib/tor/keys) কপি করুন, ফাইলের নামের শেষে .secret_family_key রাখুন, প্রতিটি torrc-এ প্রিন্ট করা FamilyId লাইনটি যোগ করুন এবং tor রিলোড করুন। Tor-এর ডকুমেন্টেশনে স্পষ্টভাবে বলা হয়েছে যে, প্রজেক্ট থেকে যতক্ষণ না ঘোষণা করা হচ্ছে যে এটি আর প্রয়োজন নেই, ততক্ষণ আপনাকে অবশ্যই প্রতিটি রিলের ফিঙ্গারপ্রিন্ট তালিকাভুক্ত করে লিগ্যাসি MyFamily অপশনটি সেট করতে হবে, তাই উভয়ই কনফিগার করুন। প্রতিটি রিলের ফিঙ্গারপ্রিন্ট /var/lib/tor/fingerprint-এ থাকে।
দ্বিতীয় এবং তৃতীয় মেশিন থেকেই মূলত অপারেশনাল কাজগুলো গুরুত্বপূর্ণ হয়ে ওঠে, এবং একসাথে একাধিক Linux সার্ভার পরিচালনা করা এখানেও অন্য যেকোনো জায়গার মতোই একটি সমস্যা। /var/lib/tor/keys-এর একটি ব্যাকআপ বক্সের বাইরে কোথাও রাখুন। এটি হারিয়ে ফেললে রিলেটি একজন অপরিচিত হিসেবে ফিরে আসবে এবং প্রতিটি ফ্ল্যাগ ও তার সমস্ত রেপুটেশন শূন্য থেকে আবার অর্জন করতে হবে।
tor-relays mailing list-এও সাবস্ক্রাইব করুন। অপারেটরদের প্রভাবিত করে এমন পরিবর্তনগুলো সেখানেই সবার আগে ঘোষণা করা হয়।
Reverse DNS এবং পোর্ট 80-এ এক্সিট নোটিশ
রিলে কোনো ট্রাফিক বহন করার আগেই রিভার্স DNS রেকর্ড সেট করুন। Tor-এর এক্সিট নির্দেশিকা অনুযায়ী, সার্ভারটি কী তা বোঝানোর জন্য tor-exit-01.example.org-এর মতো একটি সংকেত রাখা উচিত। এর কারণটি ব্যবহারিক। যখন কারো লগে অপরিচিত কোনো আইপি অ্যাড্রেস দেখা যায়, তখন তাদের অ্যাডমিন প্রথমেই একটি রিভার্স লুকআপ করেন। নামের মধ্যে "tor-exit" থাকলে তা কাউকে ইমেইল করার আগেই প্রশ্নের উত্তর দিয়ে দেয়, যা সম্ভাব্য অভিযোগের সংখ্যা কমিয়ে আনে। আপনার প্রোভাইডারকে PTR (পয়েন্টার) রেকর্ড সেট করতে বলুন এবং আপনার দিক থেকে একটি সামঞ্জস্যপূর্ণ ফরওয়ার্ড রেকর্ড যোগ করুন।
এরপর পোর্ট 80-এ একটি নোটিশ পেজ রাখুন যা একই কথা স্পষ্টভাবে বলবে। পুরনো গাইডগুলোতে Tor-এর DirPortFrontPage সেটিং ব্যবহার করা হতো, যা DirPort-এর ওপর নির্ভরশীল। Tor 0.4.6.5 ভার্সন থেকে রিলের জন্য DirPort বাতিল করা হয়েছে, তাই এর পরিবর্তে একটি ছোট ওয়েব সার্ভার ব্যবহার করুন।
sudo apt install -y nginx
sudo install -d -m 755 /srv/tor-exit-notice/srv/tor-exit-notice/index.html লিখুন:
<!DOCTYPE html>
<html>
<head><title>This is a Tor exit relay</title></head>
<body>
<h1>This is a Tor exit relay</h1>
<p>Traffic from this address was sent by a user of the Tor network. It did not
come from the operator of this machine, and this machine keeps no record of
who sent it.</p>
<p>Operator: Example Org. Abuse reports: abuse@example.org. Every report gets a
reply from a person.</p>
<p>To check whether this address was a Tor exit at a given date and time:
https://metrics.torproject.org/exonerator.html</p>
</body>
</html>এই সার্ভার ব্লকটি /etc/nginx/sites-available/tor-exit-notice-এ লিখুন:
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
root /srv/tor-exit-notice;
index index.html;
access_log off;
}এটি সক্রিয় করুন, Nginx-এর ডিফল্ট সাইটটি সরিয়ে ফেলুন এবং ফলাফল যাচাই করুন:
sudo ln -sf /etc/nginx/sites-available/tor-exit-notice /etc/nginx/sites-enabled/tor-exit-notice
sudo rm -f /etc/nginx/sites-enabled/default
sudo nginx -t && sudo systemctl reload nginx
curl -s http://127.0.0.1/ | head -n 5nginx -t যদি syntax is ok এবং test is successful রিপোর্ট করে, তবে বুঝতে হবে ফাইলটি সঠিকভাবে পার্স হয়েছে। curl কমান্ডটি আপনার নোটিশের প্রথম লাইনগুলো প্রদর্শন করবে। যদি এটি Nginx-এর ওয়েলকাম পেজ দেখায়, তবে ডিফল্ট সাইটটি এখনো সক্রিয় আছে এবং আপনার ব্লকটি ব্যবহৃত হচ্ছে না।
এটি চালু করুন এবং লগে কী লেখা আছে তা পড়ুন
sudo systemctl restart tor@default
sudo journalctl -u tor@default -n 50 --no-pagerকয়েক মিনিটের মধ্যে লগে এমন একটি লাইন আসা উচিত যা নির্দেশ করে যে অন্যান্য relay আপনার সাথে যোগাযোগ করতে পারছে:
Self-testing indicates your ORPort is reachable from the outside. Excellent.যদি সেই লাইনটি কখনোই না আসে, তবে ORPort-এ পৌঁছানো যাচ্ছে না। sudo ss -lntp | grep 443 চালিয়ে নিশ্চিত করুন যে tor লিসেন করছে কি না, তারপর অন্য একটি মেশিন থেকে nc -vz your.address.here 443 ব্যবহার করে পোর্টটি পরীক্ষা করুন। সাধারণত VPS-এর সামনে থাকা কোনো ফায়ারওয়াল—সেটি আপনার নিজের হোক বা প্রোভাইডারের কন্ট্রোল প্যানেলের—এর কারণেই এমনটি হয়।
reboot-এর পরে সার্ভিসটি পুনরায় চালু হচ্ছে কি না তা পরীক্ষা করতে systemctl is-enabled tor ব্যবহার করুন, যা enabled আউটপুট দেখাবে।
আপনার বেছে নেওয়া nickname অনুযায়ী, চালু হওয়ার প্রায় তিন ঘণ্টা পর Relay Search-এ relay-টি দেখা যাবে। এরপর কয়েক দিন ধরে ট্রাফিক বাড়তে থাকবে, কারণ নেটওয়ার্কের ব্যান্ডউইথ পরিমাপের জন্য আপনার relay-কে পর্যবেক্ষণ করতে হয়, যার পরেই ক্লায়েন্টরা সেটিকে গুরুত্ব দেয়। প্রথম দিনে নতুন কোনো exit relay-তে ট্রাফিক না থাকাটা স্বাভাবিক।
অপব্যবহার মোকাবিলার প্লেবুক এবং ইমেইল যেমন হয়
প্রথম অভিযোগ আসার আগেই প্লেবুকটি লিখে রাখুন, কারণ সাধারণত প্রথম সপ্তাহের মধ্যেই প্রথম অভিযোগটি আসে। এই ধরনের বেশিরভাগ ইমেইলই মেশিন-জেনারেটেড। Tor-এর এক্সিট গাইডলাইন অনুযায়ী, স্বয়ংক্রিয় রিপোর্ট মোট অভিযোগের প্রায় 80% এবং একটি স্ট্যান্ডার্ড রিপ্লাই বাকিগুলোর বেশিরভাগই সমাধান করে দেয়।
আসলে যা আসে তা হলো: কারো ইন্ট্রুশন ডিটেকশন সিস্টেম থেকে তৈরি করা স্ক্যানিং বা ব্রুট-ফোর্স রিপোর্ট, যেখানে আপনার আইপি অ্যাড্রেস এবং টাইমস্ট্যাম্প উল্লেখ থাকে। যদি আপনার পলিসিতে ফাইল-শেয়ারিং পোর্ট ব্যবহারের অনুমতি থাকে, তবে কপিরাইট নোটিশ আসতে পারে। কোনো সাইট মালিকের কাছ থেকে ফোরাম বা কমেন্ট স্প্যামের অভিযোগ আসতে পারে। মাঝেমধ্যে আইন প্রয়োগকারী সংস্থার কাছ থেকে প্রিজারভেশন রিকোয়েস্ট বা সাবপোনা আসতে পারে, যা সম্পূর্ণ ভিন্ন একটি বিষয় এবং এই পর্যায়ে টেমপ্লেট ব্যবহার না করে একজন আইনজীবীর সাথে কথা বলা উচিত।
উত্তরটি সংক্ষিপ্ত হয় এবং প্রতিবারই প্রায় একই থাকে:
Hello,
Thank you for the report. The address 203.0.113.10 is a Tor exit relay,
operated by <your name> at <your organisation>. The connection you saw was
made by a user of the Tor network. It did not originate on this machine.
This relay keeps no record of which user made which connection, so I cannot
identify the sender and there are no logs for me to hand over.
You can confirm that this address was a Tor exit at the date and time in
question here: https://metrics.torproject.org/exonerator.html
If you would prefer to stop Tor traffic reaching your service, the current
list of exit addresses is published here:
https://check.torproject.org/torbulkexitlist
I read this mailbox personally and will answer any follow-up.
<your name>এই পদ্ধতি কার্যকর করার জন্য চারটি অভ্যাস গড়ে তুলুন। এক কর্মদিবসের মধ্যে উত্তর দিন, ContactInfo-এ থাকা ঠিকানা থেকে এবং নিজের নাম দিয়ে স্বাক্ষর করুন। কোনো ব্যবহারকারীকে শনাক্ত করার প্রতিশ্রুতি দেবেন না, কারণ আপনি তা করতে পারবেন না। যে অপারেটর এমন প্রতিশ্রুতি দেয়, তাকে পরবর্তীতে তা ভাঙতে হয়। প্রতিটি উত্তর একটি ফোল্ডারে রাখুন, যাতে একই ঘটনা নিয়ে দ্বিতীয়বার মেইল আসলে একই উত্তর দেওয়া যায়। যদি প্রোভাইডার সাসপেনশন ওয়ার্নিং সহ কোনো অভিযোগ ফরোয়ার্ড করে, তবে আগে প্রোভাইডারকে এবং পরে অভিযোগকারীকে উত্তর দিন।
এই উত্তরগুলোতে দুটি লিঙ্ক সবচেয়ে গুরুত্বপূর্ণ ভূমিকা পালন করে। ExoneraTor তদন্তকারীর মূল প্রশ্নের উত্তর দেয়: নির্দিষ্ট সময়ে এই অ্যাড্রেসটি কি Tor এক্সিট ছিল? bulk exit list হলো বর্তমান এক্সিট অ্যাড্রেসগুলোর একটি সাধারণ তালিকা, যেখানে প্রতি লাইনে একটি করে অ্যাড্রেস থাকে। যারা Tor ব্লক করতে চান, তারা অনুমানের ওপর ভিত্তি না করে এই তালিকা ব্যবহার করে নির্ভুলভাবে তা করতে পারেন।
ব্যান্ডউইথ, খরচ এবং দ্বিতীয় রিলে
এক্সিট রিলে দিয়ে প্রকৃত ট্রাফিক আদান-প্রদান হয়। অর্ডার করার আগেই মাসিক সীমার পরিমাণ নির্ধারণ করুন এবং আপনার বরাদ্দকৃত ডেটা শেষ হয়ে গেলে প্রোভাইডার কীভাবে বিল করে তা জেনে নিন। কারণ একটি VPS-এর প্রকৃত খরচ মূলত এর ট্রান্সফার লিমিটের ওপর নির্ভর করে, স্টিকার প্রাইসের ওপর নয়। Tor আপনার পক্ষ থেকে এই সীমা নিয়ন্ত্রণ করতে পারে:
AccountingMax 4 TBytes
AccountingStart month 1 00:00
RelayBandwidthRate 20 MBytes
RelayBandwidthBurst 25 MBytesAccountingMax ব্যবহার করলে অ্যাকাউন্টিং পিরিয়ডে নির্দিষ্ট পরিমাণ ডেটা আদান-প্রদানের পর Tor হাইবারনেট মোডে চলে যাবে এবং পরবর্তী পিরিয়ডের শুরুতে পুনরায় সচল হবে। প্রথম মাসের ব্যবহারের সাথে প্রোভাইডারের নিজস্ব কাউন্টারের হিসাব মিলিয়ে দেখুন, কারণ উভয় ক্ষেত্রে বাইট গণনার পদ্ধতিতে পার্থক্য থাকতে পারে। RelayBandwidthRate ব্যবহার করে আপলিংকের গতি সীমাবদ্ধ রাখা যায়, যা নেটওয়ার্ক সচল রাখে এবং প্রোভাইডারকে নিশ্চিন্ত রাখে।
দ্বিতীয় একটি এক্সিট রিলে যোগ করার সময় সেটিকে প্রথমটির মতো একই র্যাকে না রেখে ভিন্ন নেটওয়ার্কে স্থাপন করুন। বৈচিত্র্য বা ডাইভারসিটি একটি এক্সিট রিলের কার্যকারিতার বড় অংশ, কারণ একই জায়গায় থাকা দুটি মেশিন একসাথে অকেজো হয়ে যেতে পারে। সেগুলোকে একটি ফ্যামিলির অন্তর্ভুক্ত করুন, দুটির জন্যই একই যাচাইকৃত যোগাযোগ তথ্য প্রকাশ করুন এবং উভয় রিলের ইমেইলের উত্তর দিন। যে এক্সিট রিলের অপারেটরের সাথে যোগাযোগ করা যায় না, সেটিকে একটি বেনামী সমস্যা হিসেবে দেখা হয়। কিন্তু যে অপারেটর একই দিনে ইমেইলের উত্তর দেন, তার সার্ভারকে একজন দায়িত্বশীল ব্যক্তির পরিচালিত সার্ভার হিসেবে গণ্য করা হয়, যা আসলে বাস্তবসম্মত।
FAQ
আমি কি আমার বর্তমান VPS-এ একটি Tor exit node চালাতে পারি?
না, এবং এই ক্ষেত্রে কঠোর হওয়া প্রয়োজন। একটি exit node-এর জন্য এমন একটি ডেডিকেটেড IP address প্রয়োজন যা অন্য কোনো কাজে ব্যবহৃত হয় না। এছাড়া, সেই প্রোভাইডারের সাথে আগে থেকেই চুক্তি থাকতে হবে যে তারা exit traffic বহন করবে এবং আপনার কাছে কোনো প্রকার পরিবর্তন ছাড়াই abuse mail ফরোয়ার্ড করবে। একটি সাধারণ VPS-এ, আমাদেরগুলোসহ, সেই IP address অন্য কাজে ব্যবহৃত হয় এবং একই নেটওয়ার্কের অন্যান্য গ্রাহকরা সেখানে সাধারণ সার্ভিস চালান। আপনার বর্তমান মেশিনে একটি non-exit relay বা obfs4 bridge চালান। এগুলো অত্যন্ত কার্যকর, এগুলোর বিরুদ্ধে অভিযোগ প্রায় আসেই না এবং আপনার বর্তমান সার্ভারেই এগুলো চালানো সম্ভব।
একটি Tor exit relay-তে কতগুলো abuse mail আসে এবং কে সেগুলো পায়?
এটি আপনার exit policy-র ওপর নির্ভর করে। ReducedExitPolicy 1 ব্যবহার করলে, port 25 বন্ধ থাকলে এবং file-sharing পোর্টগুলো বাদ দিলে, অধিকাংশ মেইলই আসে অটোমেটেড স্ক্যানিং এবং brute-force রিপোর্ট থেকে। Tor-এর exit নির্দেশিকা অনুযায়ী, মোট মেইলের প্রায় 80% হলো অটোমেটেড রিপোর্ট। এই মেইলগুলো প্রোভাইডারের abuse desk-এর কাছে যায়, যারা সেগুলো আপনার কাছে ফরোয়ার্ড করে। এই কারণেই সার্ভার নেওয়ার আগে নিশ্চিত হয়ে নিন যে তারা রিপোর্টারের ঠিকানা অপরিবর্তিত রেখে আপনার কাছে মেইল পাঠাবে কি না। একই ঠিকানা ContactInfo-এ এবং port 80-এর নোটিশ পেজে প্রকাশ করুন এবং এক কর্মদিবসের মধ্যে তার উত্তর দিন।
আমাকে কি আমার আসল নাম এবং ইমেইল ঠিকানা প্রকাশ করতে হবে?
হ্যাঁ। ContactInfo পাবলিক relay ডিরেক্টরিতে প্রকাশিত হয় এবং যে কেউ তা ডাউনলোড করতে পারে। reverse DNS নাম থেকে বোঝা যায় মেশিনটি কী কাজে ব্যবহৃত হচ্ছে এবং port 80-এর নোটিশ পেজেও তা উল্লেখ থাকে। এই স্বচ্ছতা সিস্টেমের ডিজাইনের অংশ, কোনো পার্শ্বপ্রতিক্রিয়া নয়। যোগাযোগ করার মতো কোনো ঠিকানা না থাকলে একটি exit node-কে বেনামী উপদ্রব হিসেবে গণ্য করা হয় এবং কিছু ক্লায়েন্ট এমন exit node-কে এড়িয়ে চলে। আপনার নিয়ন্ত্রণাধীন একটি ডোমেইনে proof:uri-familyid-ed25519 এবং /.well-known/tor-relay/ed25519-family-id.txt ফাইলটি যুক্ত করুন, যাতে যোগাযোগের তথ্যটি কেবল দাবির বদলে যাচাইযোগ্য হয়।
আমার নতুন exit relay-তে কেন কোনো ট্রাফিক নেই?
প্রথমে পরীক্ষা করুন যে journalctl -u tor@default-এ Self-testing indicates your ORPort is reachable from the outside. Excellent. আছে কি না, কারণ যে relay তার reachability টেস্টে ব্যর্থ হয় তা কখনোই প্রকাশিত হয় না এবং কোনো ট্রাফিক বহন করে না। যদি এই লাইনটি থাকে, তবে সাধারণত সময়ের প্রয়োজন হয়। স্টার্টআপের প্রায় তিন ঘণ্টা পর একটি relay Relay Search-এ দেখা যায়, এবং নেটওয়ার্কের ব্যান্ডউইথ পরিমাপের পর ক্লায়েন্টরা এতে উল্লেখযোগ্য ট্রাফিক পাঠাতে শুরু করে, যার জন্য কয়েক দিন সময় লাগতে পারে। আপনার relay-কে exit হিসেবে গণ্য করার জন্য port 80 এবং 443 খোলা থাকাও বাধ্যতামূলক।