UFW অ্যাপ প্রোফাইল নেই? এটি পরিষেবা নয়, পোর্ট বর্ণনা করে
একটি UFW অ্যাপ প্রোফাইল হলো পোর্ট ও প্রোটোকলের একটি নামকরণ করা তালিকা, কোনো পরিষেবা নয়। app info পড়ুন, প্রকৃত লিসেনার মিলিয়ে দেখুন এবং পুনরায় লোড করার আগে ফেরার পথ রাখুন।
UFW বলছে সে OpenSSH-এর সঙ্গে মেলে এমন কোনো প্রোফাইল খুঁজে পাচ্ছে না, আর কারণের খোঁজ সরাসরি SSH সার্ভারে গিয়ে থামে। এটি ভুল দিক: বার্তাটি একটি নামকরণ করা ফায়ারওয়াল সংজ্ঞা সম্পর্কে, এবং sshd ইনস্টল, চলমান বা শোনা করছে কি না সে বিষয়ে কিছুই বলে না। একটি UFW অ্যাপ প্রোফাইল হলো লেবেল লাগানো পোর্ট ও প্রোটোকলের তালিকা। সংজ্ঞাটি পড়তে একটি কমান্ড লাগে আর সাধারণত তদন্ত সেখানেই শেষ হয়।
ধাপ 1: UFW আসলে যেসব নাম জানে সেগুলো তালিকাভুক্ত করুন
কোনো একটি নাম অনুমোদন করতে বলার আগে ফায়ারওয়ালকে জিজ্ঞাসা করুন তার কাছে কী কী নাম আছে। তালিকাটি এই মেশিনে ইনস্টল করা প্রোফাইল থেকে আসে, তাই অনুপস্থিত নাম এই সিস্টেম সম্পর্কে একটি তথ্য, আপনি যে সফটওয়্যার রক্ষা করতে চেয়েছিলেন তার সম্পর্কে নয়। নামটি থাকলে ত্রুটিটি এসেছে কোনো টাইপো বা আপনার শেল ইতিহাসের পুরোনো অ্যালিয়াস থেকে।
ufw app list
ufw app info OpenSSH
ডিফল্ট ইনস্টলে তালিকাটি ছোট, আর নামগুলো প্যাকেজের নাম নয়। openssh-server প্যাকেজ ইনস্টল থাকলেও OpenSSH নামের প্রোফাইল অনুপস্থিত থাকতে পারে, আর উল্টোটাও সম্ভব। তালিকা যে হুবহু নাম ছাপে সেটিই ব্যবহার করুন; একই রকম বানানের VPN প্রোফাইল নাম বা ডেস্কটপ লঞ্চার UFW অ্যাপ প্রোফাইল নয়। আপনার কাঙ্ক্ষিত নামটি না থাকলে সেটিই ফলাফল, আর পরের ধাপ হলো এটি কে সরবরাহ করার কথা তা দেখা।
ধাপ 2: লেবেল নয়, সংজ্ঞাটি পড়ুন
প্রোফাইল হলো /etc/ufw/applications.d-এর অধীনে INI-ধাঁচের একটি ফাইল, যাতে নাম, শিরোনাম, বর্ণনা ও একটি পোর্ট-ক্ষেত্র থাকে। পোর্ট-ক্ষেত্রটি একাধিক পোর্ট ও পরিবহন তালিকাভুক্ত করতে পারে, তাই লেবেল সংজ্ঞার চেয়ে কম বলে। UFW ম্যানুয়াল এই ক্ষেত্রগুলো ও অ্যাপ্লিকেশন-আপডেট কাজের বিবরণ দেয়। নামটি একটি পরিচিত পোর্ট বোঝায় ধরে নেওয়ার বদলে ফাইলটি পড়ুন।
cat /etc/ufw/applications.d/openssh-server
ufw app info OpenSSH
যে সংজ্ঞায় 22/tcp আছে তা TCP পোর্ট 22 বোঝায়, আর কিছু নয়। এটি প্রমাণ করে না যে এই মেশিনের ডেমন সেখানে শোনে, আর আপনি পরে যোগ করা দ্বিতীয় পোর্টটি তা কভার করে না। ডেমন অন্যত্র চললে প্রোফাইলটি ভুল অনুমতি, যদিও তার নাম পণ্যের সঙ্গে মেলে। দুটির যেকোনোটি অনুমোদনের আগে লিসেনারের সঙ্গে সংজ্ঞা মিলিয়ে দেখুন।
ss -ltnp 'sport = :22'
সংজ্ঞা ও লিসেনার না মিললে থামুন। এমন প্রোফাইল অনুমোদন করা যা কেউ শোনে না এমন পোর্টের নাম দেয়, অগ্রগতির মতো দেখতে একটি নিয়ম তৈরি করে যা কিছুই রক্ষা করে না।
ধাপ 3: প্রোফাইলকে চলমান পরিষেবা থেকে আলাদা করুন
নামকরণ করা প্রোফাইল অনুমোদন করা পরিষেবাটি ইনস্টল, শুরু বা কনফিগার করে না, আর চলমান পরিষেবার পৌঁছানোর যোগ্য হতে প্যাকেজ করা প্রোফাইলের দরকার নেই। এগুলো ভিন্ন ভিন্ন সরঞ্জামের মালিকানাধীন আলাদা সিদ্ধান্ত: প্যাকেজ ম্যানেজার, সার্ভিস ম্যানেজার ও ফায়ারওয়াল। এগুলোকে এক হিসেবে দেখা হলো সেই উপায় যাতে মানুষ প্রতীকী নাম দেখানোর জন্য অনাকাঙ্ক্ষিত সার্ভার ইনস্টল করে।
VPN সার্ভারের ক্ষেত্রে বাইরের লিসেনার অনুমোদনের পরেও বিচ্ছেদ চলতে থাকে। এনক্রিপ্টেড ট্রান্সপোর্ট পোর্টের অনুমতি কার্নেল ফরওয়ার্ডিং সক্রিয় করে না, NAT নিয়ম যোগ করে না এবং টানেল ব্যবহারকারীদের LAN-এ প্রবেশাধিকার দেয় না। এর প্রত্যেকটি নিজস্ব পর্যালোচনাসহ আলাদা নীতি। VPN পণ্যের নামে নামকরণ করা প্রোফাইল কেবল যে পোর্টগুলো তালিকাভুক্ত করে তা বোঝায়, আর সার্ভার কনফিগারেশনের বাকিটা এখনো আপনারই লেখার কাজ।
প্রোফাইলটি না থাকলে এবং একটি দরকার হলে, পর্যালোচিত স্পষ্ট পোর্ট নিয়ম বা applications.d-এর অধীনে স্থানীয় প্রোফাইল দুটোই বৈধ। আপনি যা চাননি এমন প্যাকেজ ইনস্টল করা বৈধ নয়।
ধাপ 4: ফায়ারওয়াল পুনরায় লোড করার আগে ফেরার পথ রাখুন
যেকোনো নিয়ম পরিবর্তনের আগে নিশ্চিত করুন মেশিনে আপনার দ্বিতীয় পথ আছে: একটি কনসোল, আউট-অব-ব্যান্ড ঠিকানা বা নির্ধারিত রোলব্যাক। তারপর নিয়মসমূহ ও ডিফল্ট নীতি পড়ুন, কারণ SSH নিয়ম ছাড়া ডিফল্ট ডিনাই পরীক্ষার সময় নিজেকে বাইরে তালাবদ্ধ করার ক্লাসিক উপায়। একবারে একটি নিয়ম বদলান ও UFW যে নিশ্চিতকরণ ছাপে তা পড়ুন। সংরক্ষিত নিয়ম, সক্রিয় নিয়ম ও পৌঁছানোর যোগ্য পরিষেবা তিনটি ভিন্ন পর্যবেক্ষণ।
ufw status verbose
ufw allow 22/tcp
ufw app update OpenSSH
পরিবর্তনের পর অনুমোদিত সংযোগ এবং এমন একটি পথ পরীক্ষা করুন যা এখনো অস্বীকৃত থাকা উচিত। অস্বীকৃতির পরীক্ষা অনুমোদের মতোই গুরুত্বপূর্ণ, কারণ উদ্দেশ্যের চেয়ে প্রশস্ত নিয়ম প্রথম পরীক্ষায় পাস করে দ্বিতীয়টিতে ব্যর্থ হয়। প্রোফাইলের নাম, তাতে থাকা পোর্টগুলো ও যে লিসেনারের বিপরীতে যাচাই করেছেন তা লিখে রাখুন।
চেকলিস্ট শেষ হয় যখন নামটি থাকে বা ইচ্ছাকৃতভাবে প্রতিস্থাপিত হয়, সংজ্ঞা প্রকৃত লিসেনারের সঙ্গে মেলে, পরিষেবাটি আলাদাভাবে পরিচালিত হয়, এবং হাতে পুনরুদ্ধারের পথ নিয়ে অনুমোদিত ও অস্বীকৃত দুটো পথই পরীক্ষা করেছেন। তালিকায় একটি নাম থাকা এর কোনোটিই নয়।