আপনার VPN টানেল ঠিকানা কেন ইনবাউন্ড পোর্ট খোলে না
একটি টানেল ঠিকানা আপনার ক্লায়েন্টকে এমন পার্টনারদের কাছে চিহ্নিত করে যারা সেখানে রুট করতে পারে, এবং কখনোই লিসেনার তৈরি করে না। বাইন্ড, রিটার্ন রুট, তারপর পলিসি যাচাই করুন।
অফিস VPN-এ সংযোগ করুন, পোর্ট 8443-এ একটি ছোট সার্ভিস চালু করুন, সহকর্মীকে টানেল ঠিকানাটি পাঠান, এবং দেখুন সংযোগটি ব্যর্থ হয় অথচ ক্লায়েন্ট এখনো সংযুক্ত বলে জানায়। টানেলে কিছুই ভাঙেনি: ঠিকানাটি দেওয়া হয়েছে, সেশন চালু আছে, এবং যে প্যাকেটগুলো উত্তর বহন করত সেগুলো কেবল কখনোই অনুমোদিত হয় না। নিচের তিনটি পরীক্ষা ক্রমানুসারে করুন এবং যেটি ব্যর্থ হয় সেখানেই থামুন, কারণ প্রতিটির সমাধান আলাদা এবং এগুলোর মধ্যে কেবল একটি VPN সম্পর্কিত।
শুরু করুন সকেটটি আসলে কোথায় বাইন্ড হয়েছে তা দিয়ে
কিছু রুট হওয়ার আগে, কলকারীর পৌঁছানো যায় এমন একটি ঠিকানায় কিছু একটা শুনতে হবে। ডেভেলপমেন্ট সার্ভারগুলোই সাধারণত দোষী, কারণ এগুলোর অনেকগুলো ডিফল্টভাবে loopback-এ বাইন্ড হয় এবং কেবল একই মেশিন থেকে আসা সংযোগ গ্রহণ করে। টানেল ঠিকানা সেই বাইন্ডিং বদলায় না, এবং অপারেটিং সিস্টেম VPN জড়িত হওয়ার অনেক আগেই সংযোগ প্রত্যাখ্যান করবে।
ss -ltnp | grep 8443
netstat -ano | findstr 8443
স্টেট কলামের বদলে লোকাল অ্যাড্রেস কলামটি পড়ুন। 127.0.0.1:8443 মানে কেবল loopback, আর সমাধান হলো 0.0.0.0 বা টানেল ঠিকানার নিজের উপর বাইন্ড করা। 0.0.0.0:8443 প্রতিটি ইন্টারফেসে গ্রহণ করে, যা বেশিরভাগ মানুষ মনে করেন তার চেয়ে প্রশস্ত যখন মেশিনের একটি পাবলিক ঠিকানাও থাকে; 10.64.7.15:8443 হলো সংকীর্ণ সংস্করণ যা কেবল সেখানেই শোনে যেখানে সহকর্মী পৌঁছাতে পারেন। একই আউটপুটে প্রসেসের নামটিও লক্ষ করুন, কারণ আগের পরীক্ষার একটি অনাথ ইনস্ট্যান্সই সাধারণ কারণ যে পোর্টটি খোলা দেখায় কিন্তু ভুল বিষয়বস্তু দিয়ে উত্তর দেয়।
তারপর জিজ্ঞাসা করুন কিছু কি সেই ঠিকানায় রুট করতে পারে
একটি টানেল ঠিকানা কেবল সেই পার্টনারদের জন্য অর্থবহ যারা সেই প্রিফিক্স টানেলে পাঠাতে কনফিগার করা আছে। সহকর্মীর মেশিনের নিজস্ব টেবিল আছে, এবং টানেল সাবনেটের জন্য রুট না থাকলে প্যাকেটটি ডিফল্ট গেটওয়েতে যায় এবং এমন জায়গায় মরে যেখানে ঠিকানাটির অস্তিত্ব সম্পর্কে কোনো ধারণা নেই। এটি কলকারীর দিকের রাউটিং প্রশ্ন, আপনার দিকের অনুমতি নয়।
| Symptom from the caller | What it usually means | Where to look next |
|---|---|---|
| Connection refused immediately | Nothing is listening on the address the packet reached | The bind address and the process owning the port |
| Connection times out with no reply | A policy dropped the packet, or no route returns | Server forwarding, host firewall, cloud security group |
| Works from the same machine only | Listener is on loopback, or no route reaches the tunnel address | Bind address, then the caller's route to that prefix |
দুই ক্লায়েন্টের মধ্যবর্তী সার্ভারটিও সমান গুরুত্বপূর্ণ। সাধারণ রিমোট-অ্যাক্সেস ডিজাইনে প্রতিটি ক্লায়েন্ট গেটওয়ের দিকে একটি আউটবাউন্ড সংযোগ খোলে এবং গেটওয়ে সেই ফ্লোগুলোর স্টেট রাখে, তাই উত্তরগুলো এমন পথে ফিরে আসে যা সে ইতিমধ্যে জানে। এক ক্লায়েন্ট থেকে অন্য ক্লায়েন্টে সংযোগ একটি নতুন ফ্লো যা গেটওয়েকে গ্রহণ ও ফরোয়ার্ড করতে হয়, এবং অনেক ডিপ্লয়মেন্ট ক্লায়েন্টদের একে অপর থেকে আলাদা রাখতে এটি ইচ্ছাকৃতভাবে বন্ধ রাখে। কনজিউমার VPN সার্ভিস সাধারণত ডিফল্টভাবে আলাদা রাখে; কর্পোরেট গেটওয়ে মাঝে মাঝে গ্রুপভিত্তিক অনুমতি দেয়।
হোস্টে কিছু বদলানোর আগে দিকটি যাচাই করুন। যদি টানেল ঠিকানা গেটওয়ে থেকেই উত্তর দেয় কিন্তু পার্টনার থেকে না দেয়, তবে গেটওয়ের ক্লায়েন্ট-থেকে-ক্লায়েন্ট সেটিংটাই পার্থক্য, এবং লোকাল ফায়ারওয়াল সম্পাদনার কোনো পরিমাণই তার বিকল্প হবে না।
সবশেষে, যে পলিসি ফ্লোটি অনুমোদন করে তা খুঁজুন
রুট করা প্যাকেট এবং উত্তরদানকারী সার্ভিসের মধ্যে তিনটি পলিসি স্তর থাকে: VPN সার্ভারের ফরোয়ার্ডিং সিদ্ধান্ত, হোস্ট ফায়ারওয়াল, এবং ইনস্ট্যান্সের সামনে থাকা যেকোনো ক্লাউড সিকিউরিটি গ্রুপ। তিনটিকেই একমত হতে হবে, এবং এরা ভিন্নভাবে ব্যর্থ হয়, তাই উপরের টেবিলের লক্ষণটি ব্রাউজারের ত্রুটি বার্তার চেয়ে বেশি কাজে লাগে।
সফল বাইন্ডের পরে মানুষ যে স্তরটি ভুলে যায় সেটি হোস্ট ফায়ারওয়াল, কারণ LAN ইন্টারফেসে পোর্টটি অনুমোদনকারী নিয়ম স্বয়ংক্রিয়ভাবে টানেল ইন্টারফেসেও তা অনুমোদন করে না। ইন্টারফেস-সীমিত নিয়ম সঠিক ডিজাইন এবং একইসাথে অফিস থেকে কাজ করে কিন্তু বাড়ি থেকে কাজ করে না এমন সার্ভিসের সাধারণ কারণ। নিয়মের পোর্ট নম্বরের বদলে তার পরিধি পড়ুন।
স্টেটফুল ফিল্টারিং বিপরীত ঘটনাটি ব্যাখ্যা করে। আপনার ল্যাপটপ থেকে আউটবাউন্ড সংযোগ স্টেট তৈরি করে, এবং তার উত্তর ইনবাউন্ড নিয়ম ছাড়াই অনুমোদিত হয়। সহকর্মীর সংযোগ একটি সম্পূর্ণ নতুন ফ্লো যার পেছনে কোনো স্টেট নেই, তাই এর জন্য স্পষ্ট অনুমতি দরকার। এই অসমতাই হলো পুরো কারণ যে আপনার নিজের মেশিনে কাজ করা ব্রাউজার সেশন সার্ভিসটি বাইরে থেকে পৌঁছানো যায় কি না সে সম্পর্কে কিছুই বলে না।
একটি পরীক্ষা ব্যর্থ হলে টানেল নয়, ডিজাইন বদলান
যদি প্রয়োজন হয় সহকর্মী আপনার লোকাল সার্ভিস খুলবে, তবে সৎ উত্তর সাধারণত ইনবাউন্ড অ্যাক্সেসের জন্য তৈরি একটি ব্যবস্থা। রিভার্স SSH টানেল হলো সবচেয়ে ছোটটি: আপনার মেশিন এমন একটি হোস্টের দিকে বাইরে সংযোগ করে যেখানে সহকর্মী ইতিমধ্যে পৌঁছাতে পারেন, এবং লিসেনারটি সেই হোস্টে থাকে।
ssh -N -R 8443:127.0.0.1:8443 [email protected]
রিলের SSH সার্ভার কনফিগারেশনে GatewayPorts clientspecified থাকা দরকার, নইলে ফরোয়ার্ড করা লিসেনার রিলের loopback-এ বাইন্ড হয় এবং সহকর্মী আগের মতোই একই প্রত্যাখ্যানের মুখোমুখি হন। একটি বিকেলের চেয়ে দীর্ঘস্থায়ী যেকোনো কিছুর জন্য হেলথ চেক এবং প্রকাশিত নামের জন্য সার্টিফিকেটসহ লোড ব্যালেন্সার বা ingress ভালো যন্ত্র, আর দুটি নেটওয়ার্কের সত্যিই কথা বলা দরকার হলে উভয় সাবনেটের জন্য রুটসহ সাইট-টু-সাইট টানেলই সঠিক উত্তর।
এই ডিজাইনগুলোর প্রতিটি এক্সপোজারটিকে স্পষ্ট করে, আর সেটাই মূল কথা। VPN এমন নেটওয়ার্কের মধ্যে প্যাকেট সরায় যেগুলো ব্যবহারের অনুমতি আপনার আগেই ছিল; এটি কোনো সার্ভিস প্রকাশ করে না এবং ল্যাপটপকে ইন্টারনেটমুখী হোস্টে পরিণত করে না। তিনটি স্তরের মধ্যে কোনটি বদলাবেন তা ঠিক করাই কাজ, এবং টানেল সেগুলোর মধ্যে বিরলভাবে একটি।