FTP সার্ভারের পথে VPN সুরক্ষা কোথায় শেষ হয়
একটি VPN তার গেটওয়ে পর্যন্ত পথ ঢাকে, তার পরের অংশ নয়। সাধারণ FTP, FTPS ও SFTP আলাদা করুন, তারপর ডেটা চ্যানেল ও প্রতিপক্ষের পরিচয় যাচাই করুন।
একটি VPN একটি পথ রক্ষা করে, আর প্রতিটি পথের একটি শেষ আছে। যখন টানেল কোম্পানির গেটওয়েতে শেষ হয়, ফাইল স্থানান্তর সেখান থেকে তার নিজের প্রোটোকল যে সুরক্ষা দেয় তা নিয়েই চলতে থাকে। এই পার্থক্যই ঠিক করে স্থানান্তরটি শুরু থেকে শেষ পর্যন্ত সুরক্ষিত, না কেবল গেটওয়ে পর্যন্ত। Connected সূচক দুটির কোনোটিই বলে না।
দুটি অবস্থান, দুটি অবশিষ্ট পথ
এমন একটি ল্যাপটপ নিন যা কোম্পানির VPN-এ যুক্ত হয় এবং তারপর আলাদা একটি অভ্যন্তরীণ সার্ভারে FTP সেশন খোলে। টানেল গেটওয়েতে থেমে যায়, আর গেটওয়ে থেকে ওই সার্ভার পর্যন্ত অংশটি তার বাইরে থাকে।
সাধারণ FTP প্যাকেট টানেল দিয়ে এসেছে বলে কোনো এনক্রিপশন পায় না। ওই অবশিষ্ট অংশে কমান্ড, শংসাপত্র ও ফাইলের বিষয়বস্তু ঠিক প্রোটোকল যেভাবে নির্ধারণ করে সেভাবেই, অর্থাৎ খোলাখুলিভাবে চলাচল করে। এটি গুরুত্বপূর্ণ কি না তা নির্ভর করে টপোলজি এবং ওই অংশটি আর কী পাহারা দেয় তার উপর, আর ঠিকানাকে ব্যক্তিগত বলা প্রশ্নটির উত্তর দেয় না। সার্ভারটি যখন এমন একটি ক্লাউড নেটওয়ার্কে থাকে যেখানে গেটওয়ে আরেকটি হপ দিয়ে পৌঁছায়, তখন একই যুক্তি উল্টোদিকেও প্রযোজ্য।
VPN এন্ডপয়েন্ট ও FTP সেবা একই মেশিনে রাখুন, তাহলে চিন্তার মতো আর কোনো পরবর্তী অংশ থাকে না। এটি ভিন্ন একটি অবস্থান, হোস্টের প্রসেস, ফাইল ও শংসাপত্র নিরাপদ—এমন প্রমাণ নয়।
সাধারণ FTP, FTPS ও SFTP তিনটি সিদ্ধান্ত
সাধারণ FTP কিছুই এনক্রিপ্ট করে না, এমনকি পাসওয়ার্ডও নয়। FTPS FTP-তে TLS যোগ করে, তাই নিয়ন্ত্রণ চ্যানেল এবং সম্মত হলে ডেটা চ্যানেল সুরক্ষিত থাকে। SFTP হলো SSH-এর ভেতরে বহন করা একটি ভিন্ন প্রোটোকল, আর এটি FTPS-এর অন্য বানান নয়।
সার্ভারকে এই পছন্দ সমর্থন করতে হবে, কারণ ক্লায়েন্ট এমন লিসেনার তৈরি করতে পারে না যা নেই। SFTP বেছে নিলে শুধু FTP চালানো সেবা SSH এন্ডপয়েন্টে রূপান্তরিত হয় না, আর বুকমার্কের নাম বদলানো বা পোর্ট পরিবর্তন করা কী নিয়ে সম্মতি হয়েছে তার কোনো প্রমাণ দেয় না। ক্লায়েন্টের পাশাপাশি সার্ভারের দিক থেকেও প্রোটোকল নিশ্চিত করুন। ফাইল ম্যানেজারের তালা সেশন সম্পর্কে একটি দাবি, তার পেছনের লিসেনার সম্পর্কে নয়।
| Protocol | Usual port | What it protects | Identity check |
|---|---|---|---|
| FTP | 21 | Nothing on the wire | None beyond the login |
| FTPS | 21 or 990 | Control channel, data channel when required | TLS server certificate |
| SFTP | 22 | The whole session inside SSH | SSH host key |
স্থানান্তরটি গুরুত্বপূর্ণ হলে শেষ কলামটি পড়ুন, কারণ সেখানেই অপ্রত্যাশিত পরিচয় পরিবর্তন দেখা যায়।
ডেটা সংযোগ একটি দ্বিতীয় সংযোগ
FTP প্রথমে একটি নিয়ন্ত্রণ সংযোগ খোলে, তারপর তালিকা ও স্থানান্তরের জন্য আলাদা ডেটা সংযোগ। সুরক্ষিত লগইন ওই পরবর্তী সংযোগগুলি সম্পর্কে কিছুই বলে না, যদি না ডিপ্লয়মেন্ট তাদের জন্যও সুরক্ষা বাধ্যতামূলক করে।
FTPS-এ ক্লায়েন্ট একটি নির্দিষ্ট কমান্ডের মাধ্যমে সুরক্ষিত ডেটা চ্যানেল চায়, আর সার্ভার নীতি খোলা বিকল্পটি প্রত্যাখ্যান করতে পারে। ক্লায়েন্টের ডিফল্ট যথেষ্ট—এমন ধরে নেওয়ার বদলে যাচাই করুন যে নীতি এটিই দাবি করে। প্যাসিভ মোড আরেকটি জটিলতা যোগ করে, কারণ সার্ভার ডেটা সংযোগের জন্য একটি ঠিকানা ও পোর্ট বিজ্ঞাপন করে। যে ফায়ারওয়াল বা NAT ডিভাইস ওই বিজ্ঞাপন পুনর্লিখন বা ব্লক করে, তা এমন সেশন তৈরি করে যা প্রমাণীকরণ পেরিয়ে প্রথম তালিকাতেই আটকে যায়।
curl -vk ftps://files.corp.example/ --user alice --ftp-ssl-control
openssl s_client -connect files.corp.example:21 -starttls ftp
ss -tnp | grep -E ':21|:990'
দ্বিতীয় কমান্ডটি দেখায় কোনো ফাইল স্পর্শ করার আগে সার্ভার নিয়ন্ত্রণ চ্যানেলে কী উপস্থাপন করে। তৃতীয়টি দেখায় ডেটা সংযোগ আদৌ প্রতিষ্ঠিত হয়েছিল কি না, যা প্রমাণীকরণ ব্যর্থতা ও প্যাসিভ-মোড ব্যর্থতার মধ্যে পার্থক্য।
পরিচয় যাচাই টানেল পেরিয়ে টিকে থাকে
একটি FTPS ক্লায়েন্ট TLS সার্ভারের পরিচয় যাচাই করে, আর একটি SFTP ক্লায়েন্ট SSH হোস্ট কী যাচাই করে। দুটি যাচাইই ফাইল স্থানান্তর প্রোটোকলের অন্তর্গত, আর কোনোটিই VPN করে না।
মাঝখানে কিছু সেশন পরিদর্শন করতে চাইলে এই বিচ্ছেদ গুরুত্বপূর্ণ। নেটওয়ার্ক অ্যাপ্লায়েন্স কমান্ড পড়তে পারে বলে TLS বন্ধ করা সুরক্ষা মডেলটি সম্পূর্ণ করার বদলে বদলে দেয়, আর টানেল উঠেছে বলে অব্যাখ্যাত হোস্ট কী গ্রহণ করাও একই কথা। অভীষ্ট বিশ্বাস কনফিগারেশন রাখুন এবং সঠিক উপাদান অপারেটরের কাছ থেকে নিন। যে টানেল প্রমাণীকরণ করে, তা তার দূর প্রান্তের সার্ভার সম্পর্কে কিছুই বলে না।
এই প্রোটোকলগুলির জন্য ব্যক্তিগত কী ও সার্টিফিকেট উপাদান VPN শংসাপত্র থেকে আলাদা, আরেকটি তৃতীয় গোপনীয়তা।
আপনি আসলে কী যাচাই করেছেন তা লিখে রাখুন
এমন একটি নিরীহ ফাইল বেছে নিন যা সরানোর অনুমতি আপনার আছে, আর চেষ্টাটি সম্পর্কে চারটি তথ্য টুকে রাখুন: কোন প্রোটোকল চলেছিল, কোন প্রতিপক্ষ পরিচয় যাচাই হয়েছিল, কোন পথ অভীষ্ট ছিল, এবং স্থানান্তর শেষ হয়েছিল কি না।
lftp -u alice -e "set ftp:ssl-protect-data true; ls; bye" ftps://files.corp.example
sftp -v [email protected]
ডিরেক্টরি তালিকা, টানেলে লগইন আর সম্পন্ন স্থানান্তর তিনটি আলাদা পর্যবেক্ষণ, আর কেবল শেষটিই বলে পথটি ফাইলের জন্য কাজ করে। যদি নকশাটি অবশিষ্ট হপে গোপনীয়তার জন্য কেবল VPN-এর উপর নির্ভর করে, তবে সেটি যেই সিদ্ধান্ত, সেইভাবেই লিখে রাখুন। হপ ও তার বিশ্বাস-অনুমান উল্লেখ করা গ্রহণ-নোট সংযুক্ত ক্লায়েন্টের স্ক্রিনশটের চেয়ে বেশি মূল্যবান।