FTP প্রোটোকল হল প্রাচীনতম প্রোটোকলগুলির মধ্যে একটি (এটি 40 বছরেরও বেশি পুরানো), তবে এটি এখনও ব্যাপকভাবে ব্যবহৃত হয় যেখানে একটি সাধারণ ফাইল স্থানান্তর প্রোটোকলের প্রয়োজন হয়। মাইক্রোসফ্ট অপারেশন সিস্টেমের যেকোনো সংস্করণে একটি FTP সার্ভার ইনস্টল করা সম্ভব। এফটিপি পরিষেবার সর্বশেষ গভীর আধুনিকীকরণটি উইন্ডোজ 7 / সার্ভার 2008 R2 এ করা হয়েছিল (আসলে পরিষেবা কোডটি প্রায় স্ক্র্যাচ থেকে লেখা হয়েছে)। পরিষেবাটির নিরাপত্তা উল্লেখযোগ্যভাবে উন্নত হয়েছে এবং বেশ কয়েকটি নতুন বৈশিষ্ট্য উপস্থিত হয়েছে৷ বিশেষ করে, Windows এ FTP সার্ভার আপনাকে FTP ব্যবহারকারী বিচ্ছিন্নতা কনফিগার করতে দেয় . এটি একটি একক FTP সার্ভারে অনেক ব্যবহারকারীকে তাদের নিজস্ব ফোল্ডারে অ্যাক্সেস সীমাবদ্ধ করতে দেয়।
বিচ্ছিন্নতার কারণে, ব্যবহারকারীরা শুধুমাত্র তাদের ফোল্ডারগুলির সাথে কাজ করতে পারে এবং FTP ডিরেক্টরি ট্রিতে যেতে পারে না (ব্যবহারকারীর শীর্ষ এফটিপি স্তরের ডিরেক্টরিটি FTP সার্ভারের রুট হিসাবে প্রদর্শিত হয়)। সুতরাং, FTP সার্ভারে অন্যান্য ব্যবহারকারীদের ডেটা অ্যাক্সেস রোধ করা যেতে পারে। FTP ব্যবহারকারী বিচ্ছিন্নতা ISP/হোস্টিং প্রদানকারীদের দ্বারা ব্যাপকভাবে ব্যবহৃত হয় যখন এটি বিভিন্ন ব্যবহারকারীদের জন্য একটি একক ফাইল স্টোরেজে পৃথক অ্যাক্সেস প্রদানের প্রয়োজন হয়৷
পূর্ববর্তী Windows সংস্করণগুলির মত, Windows Server 2016 / 2012 R2-এ FTP পরিষেবা (এটিকে sFTP এবং TFTP-এর সাথে বিভ্রান্ত করবেন না) ভিত্তি করে এবং গভীরভাবে IIS পরিষেবার সাথে একত্রিত এবং একটি একক প্রশাসনিক ব্যবস্থাপনা ইন্টারফেস রয়েছে৷
এই নিবন্ধে আমরা দেখাব কীভাবে Windows সার্ভার 2016/2012 R2 এ একটি IIS-ভিত্তিক FTP সার্ভার ইনস্টল করতে হয় এবং FTP ব্যবহারকারী বিচ্ছিন্নতা কনফিগার করতে হয় (এই ম্যানুয়ালটি Windows 10 এবং 8.1-এও প্রযোজ্য)।
Windows Server 2016/ 2012 R2 এ FTP সার্ভার রোল কিভাবে ইনস্টল করবেন?
আপনি FTP পরিষেবা বিকল্পটি চেক করে সার্ভার ম্যানেজার কনসোল ব্যবহার করে FTP পরিষেবা ইনস্টল করতে পারেন এবং FTP এক্সটেনসিবিলিটি বিভাগে ওয়েব সার্ভার (IIS) -> FTP সার্ভার .
এছাড়াও আপনি একটি একক PowerShell কমান্ড দিয়ে FTP সার্ভারের ভূমিকা ইনস্টল করতে পারেন:Install-WindowsFeature Web-FTP-Server
FTP সার্ভার ম্যানেজমেন্ট কনসোল ইনস্টল করতে, নিম্নলিখিত কমান্ডটি চালান:
Install-WindowsFeature -Name "Web-Mgmt-Console"
একটি FTP সাইট তৈরি করা, FTP ব্যবহারকারীর অনুমতিগুলি পরিচালনা করা
সার্ভার ম্যানেজার চালু করুন এবং IIS ম্যানেজমেন্ট কনসোল খুলুন (ইন্টারনেট ইনফরমেশন সার্ভিস ম্যানেজার)।
একটি নতুন FTP সাইট তৈরি করুন (সাইট -> FTP সাইট যোগ করুন )
FTP সাইটের নাম:MyTestSite
FTP সাইটের রুট ডিরেক্টরি:C:\inetpub\ftproot
নেটওয়ার্কের মাধ্যমে প্রেরিত FTP ডেটা সুরক্ষিত করতে, FTP-এর জন্য SSL কনফিগার করা সম্ভব (এই ক্ষেত্রে, সেশন চলাকালীন ftp ব্যবহারকারীদের পাঠানো সমস্ত ডেটা এবং পাসওয়ার্ড/অ্যাকাউন্ট এনক্রিপ্ট করা হবে), কিন্তু আমাদের প্রদর্শনে এটি প্রয়োজনীয় নয়। অন্যান্য সমস্ত সেটিংস ডিফল্ট রেখে দেওয়া হয়৷
৷ আপনি PowerShell মডিউল ওয়েব অ্যাডমিনিস্ট্রেশন ব্যবহার করে আপনার FTP সাইট পরিচালনা করতে পারেন . উদাহরণস্বরূপ, একটি নতুন FTP সাইট তৈরি করতে, শুধুমাত্র কমান্ডগুলি চালান:
Import-Module WebAdministration
# Set the FTP site name
$FTPSiteName = 'CORP_FTP'
#FTP folder
$FTPRoot = 'D:\www\FTPRoot'
#FTP port
$FTPPort = 21
New-WebFtpSite -Name $FTPSiteName -PhysicalPath $FTPRoot -Port $FTPPort
একটি নতুন FTP সাইট নির্বাচন করুন এবং বেনামী প্রমাণীকরণ অক্ষম করুন৷ FTP প্রমাণীকরণ -এ বিভাগ৷ মৌলিক প্রমাণীকরণ ৷ সক্রিয় করা আবশ্যক৷৷
Windows Server 2016/2012 R2-এ FTP পরিষেবা দুটি অ্যাকাউন্টের ধরন ব্যবহার করতে পারে:ডোমেন বা স্থানীয়। অ্যাকাউন্টের প্রকারের উপর নির্ভর করে, FTP ডিরেক্টরি এবং ব্যবহারকারীর বিচ্ছিন্নতা সেটিংসের কাঠামোর মধ্যে কিছু পার্থক্য রয়েছে। বর্ণনা করা সহজ করার জন্য, আমরা স্থানীয় Windows অ্যাকাউন্ট ব্যবহার করব।
কিছু FTP ব্যবহারকারী তৈরি করুন, ধরুন, এগুলো হল ftp_user1 , ftp_user2 এবং ftp_user3 . এছাড়াও একটি গ্রুপ ftp_users তৈরি করুন যা এই ব্যবহারকারীদের অন্তর্ভুক্ত। আপনি স্থানীয় ব্যবহারকারী এবং গোষ্ঠীতে স্থানীয় ব্যবহারকারী তৈরি করতে পারেন৷ কম্পিউটার ব্যবস্থাপনার বিভাগ কনসোল।
আপনি কমান্ড প্রম্পট (বা PowerShell ব্যবহার করে) থেকে স্থানীয় ব্যবহারকারী এবং গ্রুপ তৈরি করতে পারেন। একটি স্থানীয় গ্রুপ তৈরি করুন:net localgroup ftp_users /add
একটি নতুন স্থানীয় ব্যবহারকারী তৈরি করুন:net user ftp_user1 /add *
গোষ্ঠীতে ব্যবহারকারীকে যুক্ত করুন:net localgroup ftp_users ftp_user1 /add
একইভাবে অন্য দুটি ব্যবহারকারী তৈরি করুন৷
৷ftp_users গ্রুপের জন্য C:\inetpub\ftproot ডিরেক্টরিতে পঠন ও লেখার অনুমতি বরাদ্দ করুন।
স্থানীয় ব্যবহারকারী নামের একটি ডিরেক্টরি তৈরি করুন৷ (নামটি অবশ্যই একই হতে হবে, এটি গুরুত্বপূর্ণ!!! ) C:\inetpub\ftproot ফোল্ডারে। তারপর C:\inetpub\ftproot\LocalUser ফোল্ডারে ftp_user1, ftp_user2, ftp_user3 নামে তিনটি ডিরেক্টরি তৈরি করুন।
দ্রষ্টব্য অ্যাকাউন্টের প্রকারের উপর নির্ভর করে, আপনাকে নিম্নলিখিত ডিরেক্টরি কাঠামো তৈরি করতে হবে (%FtpRoot%\ এর অধীনে আমরা FTP সাইটের রুটকে বুঝি; আমাদের ক্ষেত্রে এটি C:\inetpub\ftproot\):অ্যাকাউন্টের ধরন | হোম ডিরেক্টরি নামকরণের সিনট্যাক্স |
বেনামী ব্যবহারকারী | %FtpRoot%\LocalUser\Public |
স্থানীয় উইন্ডোজ অ্যাকাউন্ট | %FtpRoot%\LocalUser\%UserName% |
ডোমেন উইন্ডোজ অ্যাকাউন্ট | %FtpRoot%\%UserDomain%\%UserName% |
বিশেষ IIS ম্যানেজার বা ASP.NET অ্যাকাউন্ট | %FtpRoot%\LocalUser\%UserName% |
IIS কনসোলে ফিরে যান এবং একটি নতুন নিয়ম তৈরি করুন (AllowRules যোগ করুন ) FTP অনুমোদন বিধিতে সাইটের বিভাগ। উল্লেখ করুন যে ftp_users গ্রুপের অবশ্যই পড়ার এবং লেখার অনুমতি থাকতে হবে।
Windows সার্ভার 2016/2012 R2 এ FTP ব্যবহারকারী বিচ্ছিন্নতা কীভাবে কনফিগার করবেন?
আসুন FTP ব্যবহারকারী বিচ্ছিন্নতা কনফিগার করার দিকে এগিয়ে যাই। FTP ব্যবহারকারীদের বিচ্ছিন্নতা FTP সাইট স্তরে কনফিগার করা হয়, পুরো সার্ভারে নয়। FTP ব্যবহারকারী বিচ্ছিন্নতা আপনাকে প্রতিটি ব্যবহারকারীর জন্য আপনার ftp-হোম ফোল্ডারটি সংগঠিত করার অনুমতি দেয়।
FTP ব্যবহারকারী বিচ্ছিন্নতা খুলুন FTP সাইটের সেটিংসে।
এই বিভাগে বেশ কয়েকটি সেটিংস রয়েছে। তাদের মধ্যে প্রথম দুটি ব্যবহারকারীকে বিচ্ছিন্ন করার পরামর্শ দেয় না:
- FTP রুট ডিরেক্টরি (একজন ব্যবহারকারীর একটি FTP সেশন FTP সাইটের রুট ডিরেক্টরিতে শুরু হয়);
- ব্যবহারকারীর নাম ডিরেক্টরি (ব্যবহারকারী ব্যবহারকারীর নাম দিয়ে ভৌত/ভার্চুয়াল ডিরেক্টরি দিয়ে শুরু করে। যদি ডিরেক্টরিটি অনুপস্থিত থাকে, তাহলে সাইটের রুট FTP ডিরেক্টরিতে একটি সেশন শুরু হয়)।
পরবর্তী তিনটি বিকল্প হল ব্যবহারকারীর বিচ্ছিন্নতার বিভিন্ন মোড:
- ব্যবহারকারীর নাম ডিরেক্টরি (গ্লোবাল ভার্চুয়াল ডিরেক্টরি অক্ষম করুন)৷ পরামর্শ দেয় যে একজন ব্যবহারকারীর এফটিপি সেশনকে একটি ফিজিক্যাল/ভার্চুয়াল ডিরেক্টরিতে বিচ্ছিন্ন করা হয় যেটির নাম এফটিপি ব্যবহারকারীর মতো। ব্যবহারকারীরা শুধুমাত্র তাদের নিজস্ব ডিরেক্টরি দেখতে পায় (এটি তাদের রুট এফটিপি-ডিরেক্টরি) এবং এটির বাইরে যেতে পারে না (এফটিপি গাছের উপরের ডিরেক্টরিতে)। যেকোনো বিশ্বব্যাপী ভার্চুয়াল ডিরেক্টরি উপেক্ষা করা হয়;
- ব্যবহারকারীর নাম শারীরিক ডিরেক্টরি (গ্লোবাল ভার্চুয়াল ডিরেক্টরি সক্ষম করুন) পরামর্শ দেয় যে একজন ব্যবহারকারীর এফটিপি সেশনটি একটি ফিজিক্যাল ডিরেক্টরিতে বিচ্ছিন্ন করা হয় যার নাম এফটিপি ব্যবহারকারী অ্যাকাউন্টের নামের মতো। একজন ব্যবহারকারী তার ডিরেক্টরির উপরে যেতে পারে না। যাইহোক, সমস্ত তৈরি করা বিশ্বব্যাপী ভার্চুয়াল ডিরেক্টরি ব্যবহারকারীর জন্য উপলব্ধ;
- FTP হোম ডিরেক্টরি সক্রিয় ডিরেক্টরিতে কনফিগার করা হয়েছে – একজন এফটিপি ব্যবহারকারী তার অ্যাক্টিভ ডিরেক্টরি অ্যাকাউন্টের সেটিংসে (এফটিপিরুট এবং এফটিপিডির প্রপার্টি) নির্দিষ্ট করা হোম ডিরেক্টরির মধ্যে বিচ্ছিন্ন থাকে।
প্রয়োজনীয় বিচ্ছিন্নতা মোড নির্বাচন করুন (এফটিপি ব্যবহারকারীদের আলাদা করতে আমি দ্বিতীয় বিকল্পটি ব্যবহার করি)।
FTP সাইট সেটিংসে যেকোনো পরিবর্তনের সাথে Microsoft FTP পরিষেবা (FTPSVC) পুনরায় চালু করার পরামর্শ দেওয়া হচ্ছে।FTP সার্ভার অ্যাক্সেস করার জন্য উইন্ডোজ ফায়ারওয়াল নিয়মগুলি কনফিগার করা
আপনি যখন FTP সার্ভার ভূমিকা ইনস্টল করেন, ব্যবহারকারীদের FTP অ্যাক্সেস করার জন্য প্রয়োজনীয় সমস্ত প্রয়োজনীয় নিয়মগুলি স্বয়ংক্রিয়ভাবে উইন্ডোজ ফায়ারওয়াল সেটিংসে সক্রিয় হয়৷
প্যাসিভ FTP মোডে FTP সঠিকভাবে কাজ করার জন্য, ব্যবহারকারীদের RPC পোর্ট রেঞ্জ (1025-65535) এর সাথে সংযোগ করতে হবে। বাহ্যিক ফায়ারওয়ালে এই সমস্ত পোর্টগুলি না খোলার জন্য, আপনি FTP ডেটা ট্রান্সমিশনের জন্য ব্যবহৃত গতিশীল TCP পোর্টের পরিসর সীমিত করতে পারেন৷
- FTP ফায়ারওয়াল সমর্থন খুলুন FTP সাইট সেটিংস এবং ডেটা চ্যানেল পোর্ট রেঞ্জে বিভাগে ক্ষেত্রের পোর্ট পরিসীমা নির্দিষ্ট করুন যা আপনি FTP সংযোগের জন্য ব্যবহার করতে চান। উদাহরণস্বরূপ – 50000-50100;
- পরিবর্তনগুলি সংরক্ষণ করুন এবং IIS পুনরায় চালু করুন (
iisreset
); - Windows কন্ট্রোল প্যানেল খুলুন এবং Control Panel\System and Security\Windows Firewall\Allowed apps এ যান;
- নিশ্চিত করুন যে ফায়ারওয়ালের মাধ্যমে অ্যাক্সেসের অনুমতি দেওয়া অ্যাপ্লিকেশনগুলির তালিকায় FTP সার্ভারের অনুমতি রয়েছে ভূমিকা.
তারপরে অ্যাডভান্সড সিকিউরিটি সহ উইন্ডোজ ফায়ারওয়ালের সেটিংসে নিম্নলিখিত নিয়মগুলি সক্রিয় করা আছে কিনা তা পরীক্ষা করুন:
- FTP সার্ভার (FTP ট্র্যাফিক-ইন) – TCP প্রোটোকল, পোর্ট 21;
- এফটিপি সার্ভার প্যাসিভ (এফটিপি প্যাসিভ ট্রাফিক-ইন) – স্থানীয় পোর্ট ঠিকানা 1024-65535 (আমাদের ক্ষেত্রে 50000-50100);
- এফটিপি সার্ভার সিকিউর (এফটিপি এসএসএল ট্রাফিক-ইন)-পোর্ট 990 (এসএসএলের সাথে এফটিপি ব্যবহার করার সময়);
- এফটিপি সার্ভার (এফটিপি ট্রাফিক-আউট) – পোর্ট 20;
- FTP সার্ভার সিকিউর (FTP SSL ট্রাফিক-আউট)-পোর্ট 989 (যখন SSL এর সাথে FTP ব্যবহার করে)।
সেই অনুযায়ী, এই পোর্টগুলিকে আপনার রাউটারে (গেটওয়ে, ফায়ারওয়াল) খুলতে হবে যাতে বহিরাগত FTP ব্যবহারকারীরা আপনার সাইটে সংযোগ করতে পারে৷
উইন্ডোজ থেকে একটি FTP সার্ভার সংযোগ পরীক্ষা করা হচ্ছে
আপনি Test-NetConnection cmdlet ব্যবহার করে একটি FTP সার্ভারে পোর্টের উপলব্ধতা পরীক্ষা করতে পারেন:
Test-NetConnection -ComputerName yourftpservername -Port 21
অথবা ftp ব্যবহার করে কমান্ড:
ftp yourftpservername
আপনার FTP সাইটের সাথে যেকোনো FTP ক্লায়েন্টের সাথে বা সরাসরি ফাইল এক্সপ্লোরার থেকে সংযোগ করার চেষ্টা করুন (অ্যাড্রেস বারে ftp://yourservername/ উল্লেখ করুন)।
ব্যবহারকারীর নাম এবং পাসওয়ার্ড লিখুন৷
এবং এখন আপনি ব্যবহারকারীর ফাইলগুলির সাথে হোম ডিরেক্টরিতে অ্যাক্সেস পেয়েছেন (যা ব্যবহারকারীর জন্য FTP সাইটের মূল)। আমরা দেখতে পাচ্ছি, ব্যবহারকারীর সেশনটি বিচ্ছিন্ন এবং ব্যবহারকারী এফটিপি সার্ভারে শুধুমাত্র তার ফাইলগুলি দেখতে পায়৷
টিপ। আপনি যদি বেনামী অ্যাক্সেস (সমস্ত বেনামী ব্যবহারকারী) ব্যবহার করতে চান তবে যেকোন ব্যবহারকারী শংসাপত্রগুলি ব্যবহার করে আপনার FTP সার্ভারের সাথে সংযোগ করতে সক্ষম হবে:বেনামী অথবা অতিথি পাসওয়ার্ড হিসাবে ব্যবহারকারীর নাম এবং ইমেল ঠিকানা হিসাবে। আপনি যদি বেনামে একটি FTP সাইটে সংযোগ করেন, তাহলে সেশনটি LocalUser\Public ডিরেক্টরিতে সীমাবদ্ধ থাকবে (এটি স্পষ্ট, সর্বজনীন ডিরেক্টরি অবশ্যই আগে থেকেই তৈরি করা উচিত)।
আপনি FTP সার্ভারে ব্যবহারকারীর অ্যাক্সেস সম্পর্কে তথ্য দেখতে FTP লগ ব্যবহার করতে পারেন। লগ ফাইলগুলি ডিফল্টরূপে c:\inetpub\logs\logfiles এ সংরক্ষণ করা হয় u_exYYMMDD.log-এ ফোল্ডার ফাইল।
আপনার FTP সার্ভারে সক্রিয় ব্যবহারকারীর সংযোগগুলি দেখতে, আপনি PowerShell বা “বর্তমান FTP সেশনস-এর মাধ্যমে IIS কর্মক্ষমতা কাউন্টারগুলির মানগুলি ব্যবহার করতে পারেন। IIS কনসোলে ” বিভাগ। এই কনসোলে, আপনি FTP ব্যবহারকারীর নাম এবং IP ঠিকানা দেখতে পারেন এবং প্রয়োজনে FTP-সেশন সংযোগ বিচ্ছিন্ন করতে পারেন।
সুতরাং, আমরা উইন্ডোজ সার্ভার 2016 / 2012 R2 এর উপর ভিত্তি করে ব্যবহারকারী বিচ্ছিন্নতার সাথে একটি FTP সাইট কীভাবে কনফিগার করতে হয় তা দেখেছি। আইসোলেশন মোডে ব্যবহারকারীরা তাদের স্থানীয় বা ডোমেন শংসাপত্র ব্যবহার করে ব্যবহারকারীর নামের সাথে সম্পর্কিত তাদের রুট ডিরেক্টরি অ্যাক্সেস করতে FTP-তে প্রমাণীকৃত হয়।