OpenVPN-এ সংযুক্ত কিন্তু পিং বা SMB শেয়ার নেই? তিনটি গেট পরীক্ষা করুন
কাজ করা টানেল ফরওয়ার্ডিং, SMB পোর্ট বা নেম লুকআপ সম্পর্কে কিছুই বলে না। প্রতিটি গেট ক্রমানুসারে পরীক্ষা করুন এবং প্রথমটিতে ব্যর্থ হলেই থামুন।
টানেল উঠে আসে, ক্লায়েন্ট একটি ঠিকানা পায়, কিন্তু দূরের LAN-এ কিছুই সাড়া দেয় না। পিং ব্যর্থ হয়, শেয়ার খোলে না, আর VPN লগ পরিষ্কার দেখায়, কারণ তার দৃষ্টিতে সেশনটি সুস্থ। সেই সেশনের সাথে সার্ভারের একটি ফাইলের মাঝে তিনটি স্বাধীন গেট রয়েছে: ফরওয়ার্ডিং নীতি, পরিষেবার প্রয়োজনীয় পোর্ট, এবং ঠিকানার বদলে আপনি যে নামটি টাইপ করেছেন।
প্রতিটি গেট ভিন্ন লক্ষণে ব্যর্থ হয়, আর কেবল প্রথমটিই VPN সার্ভারে থাকে।
ফরওয়ার্ডিং হলো FORWARD চেইনের একটি নীতি
OpenVPN লিসেনার গ্রহণ INPUT-এ ঘটে, তাই টানেল সংযুক্ত হতে পারে অথচ LAN-এর দিকে যাওয়া প্রতিটি প্যাকেট বাদ পড়ে। যে ট্রাফিক আসে tun0 থেকে এবং LAN ইন্টারফেস দিয়ে বের হয়, তা FORWARD অতিক্রম করে, এবং সেখানে ডিফল্ট DROP নীতি থাকা হোস্ট তা নিঃশব্দে ফেলে দেয়। অন্য কিছু করার আগে sysctl ও চেইন দুটোই দেখুন: sysctl net.ipv4.ip_forward এবং iptables -L FORWARD -v -n।
আপনি যে দিকটি চান এবং তার সঙ্গে সংশ্লিষ্ট উত্তরগুলি অনুমোদন করুন, যেমন টানেল ইন্টারফেস থেকে LAN ইন্টারফেসে একটি accept নিয়ম এবং established ও related ট্রাফিকের জন্য একটি stateful নিয়ম। যদি LAN অন্য রাউটারের পিছনে থাকে, সেই রাউটারের কাছে ক্লায়েন্ট পুলে ফেরার রুট বা VPN সার্ভারে source NAT থাকা দরকার। আরও নিয়ম যোগ করার আগে একটি পিং দিয়ে সেই পথ নিশ্চিত করুন, কারণ যে নিয়মে পৌঁছানো যায় না তা কখনো কাউন্টারে দেখায় না।
SMB-এর একাধিক পোর্ট দরকার
ফাইল শেয়ারিং কেবল একটি TCP 445 কথোপকথন নয়। ডিসকভারি UDP 137 ও 138 ব্যবহার করে, পুরনো NetBIOS সেশন TCP 139 ব্যবহার করে, আর আধুনিক SMB সেশন TCP 445 ব্যবহার করে। কেবল 445 খোলা একটি নিয়ম সেই হতাশাজনক অবস্থা তৈরি করে যেখানে ম্যাপ করা ড্রাইভ কাজ করে কিন্তু নেটওয়ার্ক ব্রাউজিং করে না, বা উল্টোটা।
টানেলের উপর বড় স্থানান্তরও MSS সমস্যায় পড়ে যা ভাঙা শেয়ারের মতো দেখায়। যে SYN LAN-এর পূর্ণ সেগমেন্ট সাইজ ঘোষণা করে তা টানেলের ছোট MTU-তে বাদ পড়ে, আর হ্যান্ডশেকের পরে সংযোগটি ঝুলে থাকে। ফরওয়ার্ডিং পথে MSS ক্ল্যাম্প করা, iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu, সেই ধরনের স্থবিরতা দূর করে। ডিরেক্টরি লিস্টিংয়ের বদলে কয়েক মেগাবাইটের একটি কপি দিয়ে যাচাই করুন, কারণ ছোট উত্তর বাল্ক স্থানান্তর ব্যর্থ হলেও পার হয়ে যায়।
টানেল অ্যাডাপ্টার নতুন নেটওয়ার্ক প্রোফাইল হিসেবে আসে
Windows প্রতিটি অ্যাডাপ্টারকে একটি নেটওয়ার্ক প্রোফাইলে শ্রেণিবদ্ধ করে, আর নতুন টানেল অ্যাডাপ্টার সাধারণত Public-এ পড়ে, যেখানে ফাইল ও প্রিন্টার শেয়ারিং নিয়ম ব্লক থাকে। এটি ফাইল সার্ভারে হোস্ট ফায়ারওয়ালের সিদ্ধান্ত, VPN সার্ভারে রাউটিং সমস্যা নয়। নীতিটি অনুমোদন করে কি না নিশ্চিত করে সচেতনভাবে বিভাগটি বদলান Set-NetConnectionProfile -InterfaceAlias "Ethernet 3" -NetworkCategory Private দিয়ে, কারণ বিভাগটি কোন ইনবাউন্ড নিয়ম প্রযোজ্য হবে তাও বদলে দেয়।
একই প্রোফাইল ব্যাখ্যা করে কেন TCP 445 সফল হওয়া সত্ত্বেও পিং ব্যর্থ হয়: Public-এ ডিফল্টভাবে ইকো রিকোয়েস্ট বাদ পড়ে।
নাম নিজে থেকে রাউটেড টানেল পার হয় না
NetBIOS নেম রেজোলিউশন ও স্থানীয় ডিসকভারি ব্রডকাস্টের উপর নির্ভর করে, যা রাউটেড টানেল বহন করে না। তাই সার্ভারের সংক্ষিপ্ত নাম টাইপ করলে ব্যর্থ হয় অথচ তার ঠিকানা কাজ করে, আর কেবল লুকআপ ব্যর্থ হলেও শেয়ারটি ভাঙা দেখায়। টানেল যে রিজলভার দেয় সেখানে সার্ভারের জন্য একটি DNS রেকর্ড যোগ করুন, অথবা শর্টকাটে ঠিকানাটি ব্যবহার করুন।
যদি ডিপ্লয়মেন্ট এখনো WINS-এর উপর নির্ভর করে, ব্রডকাস্ট ট্রাফিক আসবে বলে আশা না করে ক্লায়েন্টে এটি কনফিগার করুন। আগে ঠিকানা দিয়ে পরীক্ষা করুন যাতে নামের ব্যর্থতাকে ফায়ারওয়ালের ব্যর্থতা ভাবা না হয়।
একবারে একটি স্তর পরীক্ষা করুন এবং প্রথম ব্যর্থতাটি পড়ুন
উপরের দিকে এগোন: টানেল গেটওয়ে পিং করুন, ঠিকানা দিয়ে একটি LAN হোস্ট পিং করুন, তারপর Test-NetConnection -ComputerName 10.8.0.5 -Port 445 দিয়ে পরিষেবার পোর্ট খুলুন, এবং কেবল তারপর শেয়ারে প্রমাণীকরণ করুন। যে ধাপটি প্রথমে ব্যর্থ হয় সেটিই ঠিক করার স্তর, আর তার পরে প্রতিটি ধাপ শব্দ, যতক্ষণ না সেটি পাস করে। যে পিং উত্তর দেয় অথচ পোর্ট বন্ধ থাকে তা ফাইল সার্ভারের নিজের ফায়ারওয়ালের দিকে ইঙ্গিত করে, আর পিং নিঃশব্দ থাকা সত্ত্বেও যে পোর্ট খোলে তা ICMP ফিল্টারিংয়ের দিকে ইঙ্গিত করে। কিছু বদলানোর আগে প্রথম ব্যর্থ ধাপটি লিখে রাখুন, কারণ দ্বিতীয় পরিবর্তন প্রথমটির ফলাফল ঢেকে দেয়।
যদি VPN সার্ভার LAN-এর রাউটার না হয়, সেই রাউটারে ফেরার রুট নিশ্চিত করুন সার্ভারে আরও নিয়ম যোগ করার আগে। এটি ছাড়া অনুরোধ হোস্টে পৌঁছায় আর উত্তর ডিফল্ট রুটে ইন্টারনেটের দিকে বেরিয়ে যায়, যা ক্লায়েন্টের দিক থেকে হুবহু ফায়ারওয়াল ড্রপের মতো দেখায়।
আপনার নোটে শেয়ার অ্যাকাউন্টটি VPN লগইন থেকে আলাদা রাখুন, কারণ সফল টানেল ফাইল অনুমতি সম্পর্কে কিছুই বলে না। অনুপস্থিত নিয়ম এড়াতে SMB ইন্টারনেটে উন্মুক্ত করা কোনো সমাধান নয়।