একটি tor প্রক্রিয়ার জন্য অপেক্ষা করে তারপর VPN চালু করা এই স্ট্যাক ভুলভাবে তৈরির সবচেয়ে সাধারণ উপায়। ডেমনটি ক্লায়েন্ট স্ট্রিম বহন করতে সক্ষম হওয়ার অনেক আগেই উপস্থিত হয়, আর নির্দিষ্ট স্লিপ হলো নির্ভরশীলতার পোশাক পরা একটি অনুমান। গেটটিকে অবশ্যই সেই অবস্থা হতে হবে যা পরবর্তী উপাদানের সত্যিই প্রয়োজন। নিচের চারটি ধাপ ক্রমানুসারে সম্পন্ন করুন এবং প্রতিটিকে সামঞ্জস্য করার বিলম্ব নয়, বরং আলাদা শর্ত হিসেবে বিবেচনা করুন।

ধাপ 1: আপনি সত্যিই যে ট্রান্সপোর্টটি করেছেন সেটি বেছে নিন

প্রোটোকল দিয়ে শুরু করুন, কারণ ডিজাইনের বাকিটা এর উপর নির্ভর করে। Tor-এর SOCKS ইন্টারফেস UDP ASSOCIATE বাস্তবায়ন করে না, তাই এর মধ্য দিয়ে যা কিছু বহন করা হয় তা অবশ্যই TCP স্ট্রিম হতে হবে। UDP ব্যবহার করা OpenVPN প্রোফাইল সুপারভাইজার যেভাবেই লেখা হোক, এই পথে কাজ করবে না। প্রোফাইলটি TCP-তে পরিবর্তন করুন এবং স্টার্টআপ লজিক স্পর্শ করার আগে নিশ্চিত করুন যে দূরবর্তী পিয়ার এটি গ্রহণ করে।

তারপর নিশ্চিত করুন যে আপনার ক্লায়েন্ট আদৌ একটি SOCKS প্রক্সি পর্যন্ত পৌঁছাতে পারে। OpenVPN 2.6 TCP প্রোফাইলের জন্য socks-proxy অপশনের নথিভুক্ত করে, এবং বিভিন্ন ক্লায়েন্ট ভিন্ন প্রক্সি সমর্থন দেয়। যে লঞ্চার প্রক্সি অপশনটি নিঃশব্দে উপেক্ষা করে সেটি সরাসরি সংযুক্ত হবে এবং কাজ করছে বলে মনে হবে, যা ব্যর্থ হওয়ার চেয়েও খারাপ।

নির্বাচিত ট্রান্সপোর্টটি রানবুকে লিখুন, কারণ পরবর্তী প্রতিটি যাচাই এর উপর নির্ভর করে।

ধাপ 2: প্রক্রিয়া তালিকা নয়, bootstrap পর্যায় পড়ুন

Tor কন্ট্রোল প্রোটোকল GETINFO status/bootstrap-phase-এর উত্তরে সর্বশেষ bootstrap অবস্থা দেয়, যার মধ্যে অগ্রগতির শতাংশ ও সারসংক্ষেপ ট্যাগ থাকে। এই উত্তরটি ঠিক এর কারণেই উপযোগী যে একটি কন্ট্রোলার ডেমনটি bootstrap শেষ করার পরেও সংযুক্ত হতে পারে। যে সুপারভাইজার কেবল ইভেন্ট শোনে সে সেই ক্ষেত্রটি মিস করবে যেখানে সুপারভাইজার শুরুর আগেই Tor প্রস্তুত ছিল।

কন্ট্রোল সংযোগটি যথাযথভাবে প্রমাণীকরণ করুন। কন্ট্রোল পোর্ট একটি প্রশাসনিক ইন্টারফেস, এবং যে কেউ এর সাথে কথা বলতে পারে সে ডেমনটিকে পুনরায় কনফিগার করতে পারে। এটি localhost-এ রাখুন, কুকি বা পাসওয়ার্ড প্রমাণীকরণ চালু রাখুন, এবং স্টার্টআপ স্ক্রিপ্ট সরল করতে দুটির কোনোটিই সরাবেন না।

শুরুতে পর্যায়টি একবার পড়ুন, তারপর লাইভ ভিউয়ের জন্য অগ্রগতি ইভেন্টে সাবস্ক্রাইব করুন।

printf 'AUTHENTICATE\r\nGETINFO status/bootstrap-phase\r\nQUIT\r\n' | nc 127.0.0.1 9051
ss -ltn | grep -E '9050|9051'
tor --verify-config -f /etc/tor/torrc

অগ্রগতি 100 এবং done ট্যাগসহ উত্তর মানে ডেমনটি তার নিজের স্টার্টআপ শেষ করেছে। এর অর্থ এখনো এই নয় যে আপনার গন্তব্যের জন্য একটি ব্যবহারযোগ্য সার্কিট বিদ্যমান।

ধাপ 3: ক্লায়েন্ট সার্কিট ইভেন্টের জন্য অপেক্ষা করুন

Tor ইভেন্ট প্রোটোকল CIRCUIT_ESTABLISHED সংজ্ঞায়িত করে, যা জানায় যে ক্লায়েন্টের কাছে ব্যবহারযোগ্য একটি সার্কিট আছে। এটি সেই প্রস্তুতির সংকেত যা একটি ক্যারিয়ার গেট চায়, কারণ এটি শতাংশের চেয়ে আপনার প্রয়োজনীয় সক্ষমতার কাছাকাছি। ইভেন্টে সাবস্ক্রাইব করুন এবং রূপান্তরটি রেকর্ড করুন, যাতে লগ দেখায় ক্যারিয়ার কখন ব্যবহারযোগ্য হলো, প্রক্রিয়াটি কখন দেখা গেল তা নয়।

ইভেন্টটিকে চেষ্টা করার অনুমতি হিসেবে গণ্য করুন, কোনো নির্দিষ্ট গন্তব্য সম্পর্কে নিশ্চয়তা হিসেবে নয়। একটি এক্সিট নীতি এখনো দূরবর্তী পিয়ারকে প্রত্যাখ্যান করতে পারে, এবং VPN-এর নিজের হ্যান্ডশেক এখনো Tor-এর সাথে সম্পর্কহীন কারণে ব্যর্থ হতে পারে।

কোডে দুটি শর্ত আলাদা রাখুন। ready নামের একটি একক বুলিয়ান সেগুলোকে একীভূত করবে এবং পরবর্তী ঘটনাটিকে অপাঠ্য করে তুলবে।

ধাপ 4: VPN-কে তার নিজের হ্যান্ডশেকে গেট করুন

VPN-এর নিজস্ব প্রস্তুতি শর্ত আছে, এবং টানেল উঠেছে তা প্রমাণ করে একমাত্র সেটিই। ক্লায়েন্ট নির্ধারিত ঠিকানাসহ সংযুক্ত অবস্থা প্রতিবেদন করা পর্যন্ত অপেক্ষা করুন, তারপর যাচাই করুন যে প্রক্সি প্রয়োজনীয়তা বলবৎ থেকেছে। যে পুনঃচেষ্টা লুপ একবার ব্যর্থতার পর socks-proxy অপশনটি ফেলে দেয় সেটি সরাসরি সংযুক্ত হবে এবং নিঃশব্দে পুরো ডিজাইনটি ব্যর্থ করবে।

পিয়ার অপ্রাপ্য হলে কী হবে তা জানার প্রয়োজন হওয়ার আগেই ঠিক করুন। দৃশ্যমান ব্যর্থতাসহ সীমিত পুনঃচেষ্টা অসীম লুপের চেয়ে পরিচালনা করা সহজ, এবং এটি মনিটরিং সিস্টেমকে সতর্ক করার মতো কিছু দেয়। একই সিদ্ধান্ত ক্যারিয়ারের ক্ষেত্রেও প্রযোজ্য: Tor পুনরায় চালু হলে VPN-কে ভেঙে ফেলে আবার গেট করতে হবে, মৃত সার্কিটে চালু রেখে দেওয়া নয়।

সবশেষে, VPN বন্ধ থাকার সময় অ্যাপ্লিকেশনের নিজস্ব নীতি কার্যকর রাখুন। সঠিকভাবে অপেক্ষা করা একটি সুপারভাইজার কোনো সম্পর্কহীন প্রক্রিয়াকে সরাসরি ট্রাফিক পাঠানো থেকে বিরত করতে কিছুই করে না।

আপনাকে যে চারটি রূপান্তর টিকিয়ে রাখতে হবে তা যাচাই করুন

চারটি ক্ষেত্র ডিজাইনটি কভার করে: ঠান্ডা সূচনা যেখানে Tor আগে ওঠে, ইতিমধ্যে প্রস্তুত Tor-এ সংযুক্ত হওয়া সুপারভাইজার, অনুপলব্ধ VPN পিয়ার, এবং টানেল ওঠা অবস্থায় ক্যারিয়ারের ক্ষতি। প্রতিটির প্রত্যাশিত রূপান্তর ভিন্ন, এবং গেট সঠিকভাবে লেখা হলে প্রতিটি ভিন্ন লগ লাইন তৈরি করে।

সেগুলো ইচ্ছাকৃতভাবে, একবারে একটি করে চালান, এবং প্রক্রিয়া তালিকার বদলে অবস্থার পরিবর্তন পড়ুন।

journalctl -u tor@default -n 30 --no-pager
systemctl status [email protected]
curl -sS --socks5-hostname 127.0.0.1:9050 https://check.torproject.org/api/ip

ক্যারিয়ার পড়ে গেলে VPN-এর উচিত বাসি টানেল নিয়ে ঝুলে না থেকে এক পুনঃচেষ্টা ব্যবধানের মধ্যে তার সাথে নিচে নামা। Tor ফিরে এলে গেটটি কেবল সার্কিট ইভেন্টের পরেই খোলা উচিত, প্রক্রিয়া শুরুর পরে নয়। প্রতিটি ব্যর্থতায় কোন শর্তটি অনুপস্থিত ছিল তা লগ করুন, তাহলে পরবর্তী ডিউটিতে থাকা ব্যক্তিকে টাইমস্ট্যাম্প থেকে ক্রমটি পুনর্গঠন করতে হবে না।

সম্পর্কিত নিবন্ধ