সঠিক OpenVPN সংযোগ বন্ধ করুন: ফোরগ্রাউন্ড, systemd নাকি NM
টানেল বিচ্ছিন্ন করার কমান্ডটি নির্ভর করে কে এটি শুরু করেছে তার উপর। সিগন্যাল পাঠানোর আগে ফোরগ্রাউন্ড, systemd, NetworkManager ও OpenVPN 3 মালিকদের তুলনা করুন।
টার্মিনাল উইন্ডো বন্ধ করা আর টানেল বন্ধ করা এক নয়, আর কোনো প্রক্রিয়া হত্যা করা আর কোনো সেবা থামানো এক নয়। Linux-এ যে কমান্ডটি আসলে সংযোগ বিচ্ছিন্ন করে তা নির্ভর করে কোন উপাদানটি সংযোগটি শুরু করেছে এবং তাই এর জীবনচক্রের মালিক তার উপর। নিচের তুলনাটি আপনার সবচেয়ে বেশি সম্ভাব্য চারটি বিন্যাস এবং প্রতিটির প্রয়োজনীয় শনাক্তকারী কভার করে।
ফোরগ্রাউন্ড ও ডেমনায়িত ক্লায়েন্ট
টার্মিনালে হাতে চালু করা ক্লায়েন্ট সেই টার্মিনালের অন্তর্গত। Ctrl+C একটি বিঘ্ন পাঠায়, ক্লায়েন্ট তার ইন্টারফেস ভেঙে ফেলে, এবং টানেল শেষ হয়। আর কিছুকে জানানোর দরকার নেই।
শেল র্যাপারের মাধ্যমে চালু করা এবং পটভূমিতে রেখে দেওয়া ক্লায়েন্ট বিশেষ কারও নয়, আর ঠিক এই ক্ষেত্রেই মানুষ killall-এর দিকে ঝোঁকে। প্রথমে প্রক্রিয়াটি খুঁজুন, নিশ্চিত করুন যে এর কমান্ড লাইনে আপনার বোঝানো প্রোফাইলের উল্লেখ আছে, তারপর স্বাভাবিক সমাপ্তি সংকেত পাঠান। কোনো তত্ত্বাবধায়কের অধীনে থাকা প্রক্রিয়া তার তত্ত্বাবধায়কের নিচে নিহত হলে কেবল পুনরায় চালু হবে, তাই সংকেত বাছাইয়ের চেয়ে মালিক শনাক্ত করা বেশি গুরুত্বপূর্ণ। প্রক্রিয়া গোষ্ঠীতে সংকেত পাঠান কেবল তখনই যখন নিশ্চিত করেছেন যে অন্য কোনো টানেল এটি ভাগ করে না।
SIGUSR1 কোনো বিচ্ছিন্নতা নয়; এটি ক্লায়েন্টকে টানেল পুনরায় চালু করতে বলে।
systemd ইনস্ট্যান্স
যখন কোনো unit সংযোগের মালিক, তখন unit-ই থামানোর বস্তু। openvpn-client@office-এর মতো টেমপ্লেট ইনস্ট্যান্স প্রোফাইলের নাম বহন করে, আর ইনস্ট্যান্সের বদলে টেমপ্লেট টার্গেট থামালে হোস্টের প্রতিটি ক্লায়েন্ট প্রভাবিত হতে পারে।
systemctl list-units 'openvpn-client@*'
systemctl stop [email protected]
ইনস্ট্যান্সটি কোন প্রোফাইল লোড করেছে তা নিশ্চিত না হলে unit-এর ExecStart পড়ুন।
সক্রিয় করা unit পরবর্তী বুটে ফিরে আসবে, যা এখন এটি থামানো থেকে আলাদা সিদ্ধান্ত। সংযোগটি ফিরে আসা উচিত নয় বলে সিদ্ধান্ত নেওয়ার পরেই এটি নিষ্ক্রিয় করুন, এবং সেই সিদ্ধান্তটি এমন জায়গায় লিখে রাখুন যেখানে পরবর্তী প্রশাসক এটি পাবেন।
NetworkManager প্রোফাইল
NetworkManager-পরিচালিত প্রোফাইল কোনো প্রক্রিয়া নয় যাকে আপনি সংকেত পাঠাতে পারেন। ম্যানেজার জীবনচক্রের মালিক, আর কাজ করার বস্তু হলো সক্রিয় সংযোগ, যা প্রদর্শন নামের বদলে UUID দিয়ে শনাক্ত হয়। আগে সক্রিয় তালিকা পড়লে এটাও দেখা যায় যে আপনার প্রত্যাশিত নামের বাইরে দ্বিতীয় কোনো টানেল চলছে কি না।
nmcli connection show --active
nmcli connection down uuid actual-uuid
প্রদর্শন নাম পুনরাবৃত্ত হয়, আর প্রোফাইল ফাইলের নাম তার শনাক্তকারী নয়, তাই তালিকা থেকে UUID কপি করুন। যদি সংযোগটি সঙ্গে সঙ্গে ফিরে আসে, তবে কিছু একটি এটিকে সক্রিয় করছে: ভিত্তি সংযোগে একটি secondaries এন্ট্রি, একটি dispatcher স্ক্রিপ্ট, বা একটি অটোকানেক্ট ফ্ল্যাগ। ম্যানেজারের সংযোগ থামানোই সঠিক প্রথম ধাপ, আর পুনরায় সক্রিয়করণ পরের প্রশ্ন। পুনরায় সক্রিয়করণ থামাতে প্রোফাইলটি মুছবেন না, কারণ তাতে আগামীকালের প্রয়োজনীয় শংসাপত্রও মুছে যায়।
ম্যানেজারের কমান্ড রেফারেন্স নথিভুক্ত করে কীভাবে down লক্ষ্য বাছা হয়।
OpenVPN 3 সেশন
OpenVPN 3 Linux প্রতিটি টানেলের জন্য প্রক্রিয়ার বদলে সেশন মডেল ব্যবহার করে। সেবাটি যে সেশনগুলো জানে সেগুলো আপনি পরিদর্শন করেন, তারপর একটি সেশন পথে কাজ করেন। পথটিই শনাক্তকারী, এবং এটি কোনো কনফিগারেশন নামের সঙ্গে বিনিময়যোগ্য নয়।
openvpn3 sessions-list
openvpn3 session-manage --path /net/openvpn/v3/sessions/... --disconnect
প্রতিটি সেশন বিচ্ছিন্ন করা ভিন্ন একটি কাজ, এবং এটি ইচ্ছাকৃত হওয়া উচিত।
একই হোস্ট একাধিক ব্যবহারকারীর সেশন রাখতে পারে, তাই কাজ করার আগে তালিকা করুন এবং যে সেশনটি শেষ করতে যাচ্ছেন তার মালিক নিশ্চিত করুন।
পরে কী যাচাই করবেন
এই থামানোর যেকোনোটির পরে তিনটি জিনিস যাচাই করুন: সক্রিয় সংযোগ তালিকায় আর টানেল নেই, ইন্টারফেস চলে গেছে, এবং অভ্যন্তরীণ ঠিকানার জন্য রুট অনুসন্ধান আর কোনো টানেল ডিভাইস বাছছে না। তারপর পরবর্তী বুটে কী হবে তা ঠিক করুন।
ip -brief address
ip route get 10.8.0.1
হাতে ইন্টারফেস সরানো মালিককে থামায় না, এবং পরিষ্কারকরণ অর্ধেক করা অবস্থায় রেখে দেয়।
এখন বিচ্ছিন্ন করা, পরবর্তী স্বয়ংক্রিয় শুরু প্রতিরোধ করা, এবং পরে অ-VPN ট্রাফিক অনুমোদন করা তিনটি আলাদা পছন্দ। প্রতিটিকে স্পষ্টভাবে করুন।