ফায়ারওয়ালে UDP 500 খুললে টানেলটি নেগোশিয়েট করে, তারপর সংযোগটি ট্রাফিক পাঠানো বন্ধ করে দেয়। পোর্টের তালিকাটি ভুল ছিল না, অসম্পূর্ণ ছিল। IKEv2 একটি সকেটে শুরু হয় এবং অনেক বাস্তব স্থাপনায় অন্য একটি সকেটে চলতে থাকে, অথচ পেলোড আদৌ কোনো পোর্ট নাও হতে পারে। পর্যায়গুলো ক্রমানুসারে পড়লে বোঝা যায় কোন নিয়মটি অনুপস্থিত।

দুটি পোর্ট, দুটি কাজ

IKEv2 UDP 500-এ কী বিনিময় দিয়ে শুরু হয়, যেখানে দুই প্রান্ত প্রমাণীকরণ করে এবং টানেলের জন্য একটি সিকিউরিটি অ্যাসোসিয়েশন স্থাপন করে। এর পরের ডেটা পথটি আলাদা বিষয়: এটি নেটিভ ESP হতে পারে, যা পোর্ট নয় বরং একটি IP প্রোটোকল নম্বর, অথবা 4500-এ UDP-এনক্যাপসুলেটেড ট্রাফিক। ফায়ারওয়াল পর্যালোচনায় এগুলো আলাদা রাখাই হলো নেগোশিয়েট করা টানেল আর কাজ করা টানেলের মধ্যে পার্থক্য। একটি সকেট নিয়ন্ত্রণ বহন করে, অন্যটি পেলোড।

তাই শুধু 500 অনুমোদনকারী একটি নিয়ম পুরো প্রোটোকল পরিবারের সবচেয়ে বিভ্রান্তিকর লক্ষণ তৈরি করে: নেগোশিয়েশন সফল হয়, কিন্তু উপকারী কিছুই ঘটে না। স্টেট একটি পিয়ার দেখায়, লগ একটি প্রতিষ্ঠিত IKE SA দেখায়, তবুও অ্যাপ্লিকেশনটি টাইম আউট হয়। অনুপস্থিত অনুমতিটি ঠিক যে ফ্লো সফল হলো তার চেয়ে ভিন্ন একটি ফ্লোর অন্তর্গত।

4500 আদৌ কেন আছে

অনেক NAT ডিভাইস TCP বা UDP ছাড়া অন্য প্রোটোকল ফরওয়ার্ড করতে পারে না, আর কিছু ডিভাইস ঠিকানা এমনভাবে পুনর্লিখন করে যা ESP-এর অখণ্ডতা যাচাই ভেঙে দেয়। ESP-কে UDP-এর ভিতরে এনক্যাপসুলেট করলে দুই সমস্যাই সমাধান হয়, বিনিময়ে একটি অতিরিক্ত হেডার ও অনুমোদনযোগ্য দ্বিতীয় পোর্ট লাগে। এই এনক্যাপসুলেশনই দ্বিতীয় পোর্টটির অস্তিত্বের কারণ।

NAT শনাক্ত হওয়ার পর IKE নিজেও 4500-এ চলে যায়, যাতে সব ট্রাফিক অনুবাদকের মধ্য দিয়ে একটি পথ ভাগ করে নেয়। চার বাইটের একটি নন-ESP মার্কার সেই সকেটে নিয়ন্ত্রণ বার্তাকে ডেটা থেকে আলাদা করে। এই পরিবর্তন প্রোটোকলের সিদ্ধান্ত, প্রশাসকের পছন্দ নয়।

সোর্স পোর্ট কোথায় বদলায়

অনুবাদক ক্লায়েন্টের সোর্স পোর্ট পুনর্লিখন করতে পারে, তাই সার্ভারে দেখা টাপল ক্লায়েন্টের টাপলের সঙ্গে মেলে না। কোনো নিয়ম উপেক্ষিত হচ্ছে বলে সিদ্ধান্তে আসার আগে প্রতিটি NAT হপের দুই দিকই দেখুন। শুধু ক্লায়েন্টে সমস্যা খুঁজলে এমন নিয়ম তৈরি হতে পারে যা সঠিক দেখায় কিন্তু তবুও ব্যর্থ হয়।

MOBIKE-সক্ষম বাস্তবায়নগুলো NAT শনাক্ত না করেও 4500-এ যেতে পারে, আর কিছু স্থাপনা ইচ্ছাকৃতভাবে সেই পথ বাধ্যতামূলক করে। তাই 4500 দেখা একটি সিদ্ধান্তের প্রমাণ, বাড়ির রাউটারের প্রমাণ নয়।

প্রতিটি সীমানায় দুই ফ্লো-ই যাচাই করুন

তিনটি সীমানা ধরে হাঁটুন: ক্লায়েন্ট নেটওয়ার্ক, যেকোনো মধ্যবর্তী ফায়ারওয়াল এবং সার্ভার। প্রত্যেকেরই স্থাপনার নথিভুক্ত ফ্লো দরকার, অন্য একটি ক্ষেত্রের নিবন্ধের ফ্লো নয়।

sudo swanctl --list-sas
sudo tcpdump -ni any 'udp port 500 or udp port 4500'
sudo iptables -S | grep -E '500|4500|esp'
ip xfrm state

ফায়ারওয়াল তালিকায় ESP লাইনটি একটি প্রোটোকল মিল, তাই পোর্টের নিয়ম কখনোই তা কভার করে না। অপারেটর কাস্টম পোর্ট ব্যবহার করলে দুই প্রান্তেই নথিভুক্ত কনফিগারেশন অনুসরণ করুন, কারণ পরিচিত কোনো নম্বর বেছে নিয়ে ক্লায়েন্ট সার্ভারে লিসেনার তৈরি করতে পারে না।

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

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