কম্পিউটার টিউটোরিয়াল

বিশ্বস্ত SSL/TLS সার্টিফিকেট দিয়ে RDP কানেকশন সিকিউর করা

এই আর্টিকেলে আমরা দেখাবো কীভাবে Active Directory ডোমেনে Windows কম্পিউটার বা সার্ভারের RDP কানেকশন সিকিউর করতে বিশ্বস্ত SSL/TLS সার্টিফিকেট ব্যবহার করতে হয়। আমরা ডিফল্ট সেলফ-सাইনড RDP সার্টিফিকেটের বদলে বিশ্বস্ত SSL সার্টিফিকেট ব্যবহার করব (সেলফ-सাইনড RDP সার্টিফিকেট ব্যবহার করলে, হোস্টের সাথে কানেক্ট করার সময় ইউজারকে সার্টিফিকেট বিশ্বস্ত নয় বলে সতর্কতা মেসেজ আসে)। এই উদাহরণে, আমরা Certificate Authority-এ কাস্টম RDP সার্টিফিকেট টেমপ্লেট এবং একটি Group Policy কনফিগার করব যাতে SSL/TLS সার্টিফিকেট অটোমেটিক্যালি ইস্যু এবং Remote Desktop Services-এ বাইন্ড হয়।

Remote Desktop Connection (RDP) সেলফ-सাইনড সার্টিফিকেট সতর্কতা

ডিফল্টভাবে, একটি RDP সেশন সিকিউর করতে Windows একটি সেলফ-सাইনড সার্টিফিকেট জেনারেট করে। mstsc.exe ক্লায়েন্ট ব্যবহার করে প্রথমবার একটি RDP/RDS হোস্টের সাথে কানেক্ট করার সময়, ইউজার নিচের সতর্কতা দেখে:

The remote computer could not be authenticated due to problems with its security certificate. It may be unsafe to proceed. Certificate error: The certificate is not from a trusted certifying authority.

RDP কানেকশন প্রতিষ্ঠা করতে ইউজারকে Yes ক্লিক করতে হয়। RDP সার্টিফিকেট সতর্কতা আর না আসায়, আপনি "Don't ask me again for connections to this computer" অপশন চেক করতে পারেন।
বিশ্বস্ত SSL/TLS সার্টিফিকেট দিয়ে RDP কানেকশন সিকিউর করা

এই ক্ষেত্রে RDP সার্টিফিকেট থাম্বপ্রিন্ট ক্লায়েন্টে RDP কানেকশন হিস্টরির রেজিস্ট্রি কী-র CertHash প্যারামিটারে সংরক্ষিত হয় (HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers\)। আপনি যদি RDP সার্ভার ভেরিফাই না হওয়ার সতর্কতা লুকিয়ে দেন, রেজিস্ট্রি থেকে সার্টিফিকেট থাম্বপ্রিন্ট মুছে দিয়ে সেটিংস রিসেট করতে পারেন।

বিশ্বস্ত SSL/TLS সার্টিফিকেট দিয়ে RDP কানেকশন সিকিউর করা

সেলফ-सাইনড সার্টিফিকেট ব্যবহার করলেও, আপনার RDP সেশন সিকিউর এবং আপনার ট্রাফিক এনক্রিপ্টেড থাকে।

Certificate Authority (CA)-এ RDP সার্টিফিকেট টেমপ্লেট তৈরি

চলুন কর্পোরেট সার্টিফিকেট অথরিটি দ্বারা ইস্যু করা একটি বিশ্বস্ত SSL/TLS সার্টিফিকেট ব্যবহার করে RDP কানেকশন সিকিউর করার চেষ্টা করি। এই সার্টিফিকেট ব্যবহার করে, একটি ইউজার RDP সার্ভারের সাথে কানেক্ট করার সময় সেটিকে অথেন্টিকেট করতে পারবে। মান লইয়ে চলি, আপনার ডোমেনে একটি কর্পোরেট Microsoft Certificate Authority ইতিমধ্যে ডিপ্লয় করা আছে। এই ক্ষেত্রে, আপনি ডোমেনে সব Windows কম্পিউটার এবং সার্ভারের জন্য সার্টিফিকেট অটোমেটিক্যালি ইস্যু এবং কানেক্ট করতে কনফিগার করতে পারেন।

আপনার CA-এ RDP/RDS হোস্টের জন্য একটি নতুন টাইপের সার্টিফিকেট টেমপ্লেট তৈরি করতে হবে:

  1. Certificate Authority কনসোল চালু করুন এবং Certificate Templates সেকশনে যান;
  2. Computer সার্টিফিকেট টেমপ্লেট ডুপ্লিকেট করুন (Certificate Templates → Manage → Computer → Duplicate);
    বিশ্বস্ত SSL/TLS সার্টিফিকেট দিয়ে RDP কানেকশন সিকিউর করা
  3. General ট্যাবে, নতুন সার্টিফিকেট টেমপ্লেটের নাম দিন – RDPTemplate। নিশ্চিত করুন যে Template Name ফিল্ডের মান Template display name-এর সাথে মিলে যাচ্ছে;
    বিশ্বস্ত SSL/TLS সার্টিফিকেট দিয়ে RDP কানেকশন সিকিউর করা
  4. Compatibility ট্যাবে, আপনার ডোমেনে ব্যবহৃত ন্যূনতম ক্লায়েন্ট ভার্সন নির্দিষ্ট করুন (উদাহরণস্বরূপ, CA-র জন্য Windows Server 2008 R2 এবং ক্লায়েন্টের জন্য Windows 7)। এতে শক্তিশালী এনক্রিপশন অ্যালগরিদম ব্যবহার হবে;
  5. তারপর, Extensions ট্যাবের Application Policy সেকশনে, সার্টিফিকেটের ব্যবহার পরিসীমা Remote Desktop Authentication মাত্রে সীমাবদ্ধ করুন (নিচের অবজেক্ট আইডেন্টিফায়ার দিন — 1.3.6.1.4.1.311.54.1.2)। Add → New ক্লিক করুন, একটি নতুন পলিসি তৈরি করুন এবং সেটি সিলেক্ট করুন;
    বিশ্বস্ত SSL/TLS সার্টিফিকেট দিয়ে RDP কানেকশন সিকিউর করা
  6. সার্টিফিকেট টেমপ্লেট সেটিংসে (Application Policies Extension), Remote Desktop Authentication বাদ দিয়ে সব পলিসি রিমুভ করুন; বিশ্বস্ত SSL/TLS সার্টিফিকেট দিয়ে RDP কানেকশন সিকিউর করা
  7. আপনার ডোমেন কন্ট্রোলারগুলোর ওপর এই RDP সার্টিফিকেট টেমপ্লেট ব্যবহার করতে, Security ট্যাবে, Domain Controllers গ্রুপ যোগ করুন এবং সেটির জন্য Enroll এবং Autoenroll অপশন সক্রিয় করুন;
    বিশ্বস্ত SSL/TLS সার্টিফিকেট দিয়ে RDP কানেকশন সিকিউর করা
  8. সার্টিফিকেট টেমপ্লেট সংরক্ষণ করুন;
  9. তারপর Certificate Authority mmc snap-in-এ, Certificate Templates ফোল্ডারে ক্লিক করুন এবং New → Certificate Template to Issue → তৈরি করা টেমপ্লেটটি সিলেক্ট করুন (RDPTemplate);
    বিশ্বস্ত SSL/TLS সার্টিফিকেট দিয়ে RDP কানেকশন সিকিউর করা

Group Policy ব্যবহার করে RDP SSL/TLS সার্টিফিকেট ডিপ্লয় করা

এখন আপনাকে একটি ডোমেন GPO কনফিগার করতে হবে যাতে কনফিগার করা টেমপ্লেট অনুযায়ী কম্পিউটার/সার্ভারগুলোর সাথে RDP সার্টিফিকেট অটোমেটিক্যালি অ্যাসাইন হয়।

মানা হয় যে সকল ডোমেন কম্পিউটার কর্পোরেট Certificate Authority-র ওপর আস্থা রাখে, অর্থাৎ রুট সার্টিফিকেট GPO ব্যবহার করে Trusted Root Certificate Authorities-এ যোগ করা হয়েছে।

  1. Domain Group Policy Management কনসোল (gpmc.msc) খুলুন, একটি নতুন GPO অবজেক্ট তৈরি করুন এবং এটি RDP/RDS সার্ভার বা কম্পিউটারগুলোর OU-তে লিংক করুন যাতে TLS সার্টিফিকেট অটোমেটিক্যালি ইস্যু হয় RDP কানেকশন সিকিউর করার জন্য;
  2. নিচের GPO সেকশনে যান Computer Configuration → Policies → Administrative Templates → Windows Components → Remote Desktop Services → Remote Desktop Session Host → Security। Server Authentication Certificate Template পলিসি সক্রিয় করুন। আগে তৈরি করা CA টেমপ্লেটের নাম নির্দিষ্ট করুন (RDPTemplate);
    বিশ্বস্ত SSL/TLS সার্টিফিকেট দিয়ে RDP কানেকশন সিকিউর করা
  3. একই GPO সেকশনে, Require use of specific security layer for remote (RDP) connections পলিসি সক্রিয় করুন এবং এর মান SSL সেট করুন; বিশ্বস্ত SSL/TLS সার্টিফিকেট দিয়ে RDP কানেকশন সিকিউর করা
  4. RDP সার্টিফিকেট অটোমেটিক্যালি রিনিউ করতে, GPO-র Computer configuration → Windows settings → Security Settings → Public Key Policies সেকশনে যান এবং Certificate Services Client – Auto-Enrollment Properties পলিসি সক্রিয় করুন। "Renew expired certificates, update pending certificates and remove revoked certificates" এবং "Update certificates that use certificate templates" অপশনগুলো চেক করুন; বিশ্বস্ত SSL/TLS সার্টিফিকেট দিয়ে RDP কানেকশন সিকিউর করা
  5. আপনি যদি চান আপনার ক্লায়েন্টরা সবসময় RDP সার্ভার সার্টিফিকেট ভেরিফাই করে, তবে Configure Authentication for Client = Warn me if authentication fails পলিসি কনফিগার করুন (Computer Configuration → Policies → Administrative Templates → Windows Components → Remote Desktop Settings → Remote Desktop Connection Client);
  6. প্রয়োজনে, ফায়ারওয়াল পলিসি দিয়ে ইনকামিং RDP পোর্ট TCP/UDP 3389 খুলুন;
  7. তারপর ক্লায়েন্ট কম্পিউটারে গ্রুপ পলিসি সেটিংস আপডেট করুন, কম্পিউটার সার্টিফিকেট কনসোল (Certlm.msc) চালু করুন এবং নিশ্চিত করুন যে আপনার CA দ্বারা ইস্যু করা Remote Desktop Authentication সার্টিফিকেট Personal → Certificates সেকশনে আসেছে।

নতুন Group Policy সেটিংস প্রয়োগ না হলে, gpresult টুল এবং এই আর্টিকেল ব্যবহার করে ডায়াগনোজ করুন।

বিশ্বস্ত SSL/TLS সার্টিফিকেট দিয়ে RDP কানেকশন সিকিউর করা

নতুন RDP সার্টিফিকেট প্রয়োগ করতে Remote Desktop Services রিস্টার্ট করুন:

Get-Service TermService -ComputerName mun-dc01| Restart-Service –force –verbose

এরপর, RDP ব্যবহার করে সার্ভারের সাথে কানেক্ট করার সময়, আপনি সার্টিফিকেট বিশ্বস্ত নয় বলে কনফার্মেশন রিকোয়েস্ট আর দেখবেন না (সতর্কতা দেখতে চাইলে সার্ভারের সাথে তার IP ঠিকানা দিয়ে কানেক্ট করুন যার জন্য সার্টিফিকেট ইস্যু করা হয়েছে)। View certificate ক্লিক করুন, Details ট্যাবে যান এবং Thumbprint ফিল্ডের মান কপি করুন।
বিশ্বস্ত SSL/TLS সার্টিফিকেট দিয়ে RDP কানেকশন সিকিউর করা

Certification Authority কনসোলের Issued Certificates সেকশনে, আপনি নিশ্চিত করতে পারেন যে নির্দিষ্ট Windows সার্ভার/কম্পিউটারের জন্য একটি RDPTemplate সার্টিফিকেট ইস্যু করা হয়েছে। সার্টিফিকেটের Thumbprint মানও চেক করুন:

বিশ্বস্ত SSL/TLS সার্টিফিকেট দিয়ে RDP কানেকশন সিকিউর করা

তারপর এই থাম্বপ্রিন্টটি Remote Desktop Service দ্বারা ব্যবহৃত সার্টিফিকেট থাম্বপ্রিন্টের সাথে তুলনা করুন। RDS সার্টিফিকেট থাম্বপ্রিন্টের মান রেজিস্ট্রিতে (HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations, TemplateCertificate প্যারামিটার) বা নিচের PowerShell কমান্ড দিয়ে দেখতে পারেন:

Get-WmiObject -Class "Win32_TSGeneralSetting" -Namespace root\cimv2\terminalservices|select SSLCertificateSHA1Hash
বিশ্বস্ত SSL/TLS সার্টিফিকেট দিয়ে RDP কানেকশন সিকিউর করা

তারপর, যেকোনো Windows হোস্টের রিমোট ডেস্কটপের সাথে কানেক্ট করার সময়, আপনি আনট্রাস্টেড RDP সার্টিফিকেটের সতর্কতা আর দেখবেন না।

বিশ্বস্ত TLS সার্টিফিকেট থাম্বপ্রিন্ট দিয়ে .RDP ফাইল সাইন করা

আপনার কাছে CA নেই, কিন্তু আপনি আপনার ইউজারদের RDP/RDS হোস্টের সাথে কানেক্ট করার সময় সতর্কতা দেখাতে চান না, তবে আপনি সার্টিফিকেটটি ইউজার কম্পিউটারগুলোর ওপর বিশ্বস্ত সার্টিফিকেট হিসেবে যোগ করতে পারেন।

উপরোক্তভাবে বর্ণিতভাবে RDP সার্টিফিকেট থাম্বপ্রিন্টের মান পান:

Get-WmiObject -Class "Win32_TSGeneralSetting" -Namespace root\cimv2\terminalservices|select SSLCertificateSHA1Hash

এই ফিংগারপ্রিন্ট ব্যবহার করে RDPSign.exe টুল দিয়ে .RDP ফাইল সাইন করুন:

rdpsign.exe /sha256 25A27B2947022CC11BAFF261234567DEB2ABC21 "C:\ps\mun-dc01.rdp"

তারপর এই থাম্বপ্রিন্টটি ইউজার কম্পিউটারগুলোর ওপর বিশ্বস্ত সার্টিফিকেট হিসেবে GPO দিয়ে যোগ করুন। থাম্বপ্রিন্টগুলো (সেমিকোলন দিয়ে সেপারেট করে) নির্দিষ্ট করুন Specify SHA1 thumbprints of certificates representing trusted .rdp publishers পলিসিতে Computer Configuration → Policies → Administrative Templates → Windows Components → Remote Desktop Settings → Remote Desktop Connection Client-এ।

বিশ্বস্ত SSL/TLS সার্টিফিকেট দিয়ে RDP কানেকশন সিকিউর করা

ট্রান্সপারেন্ট RDP লগ অন কনফিগার করতে পাসওয়ার্ড ছাড়া (RDP Single Sign On), Allow delegation defaults credential পলিসি কনফিগার করুন এবং সেখানে RDP/RDS হোস্ট নামগুলো নির্দিষ্ট করুন (এটি কীভাবে করবেন সেটি এই আর্টিকেলে দেখুন)।


  1. উইন্ডোজ ১১/১০-এ Certmgr.msc বা সার্টিফিকেট ম্যানেজার

  2. উইন্ডোজ ১১/১০-এ ট্রাস্টেড রুট সার্টিফিকেট ম্যানেজ করা

  3. লিনাক্সে OpenSSL ব্যবহার করে SSL সার্টিফিকেট জেনারেট করা

  4. ফ্রি SSL সার্টিফিকেট কি কমার্শিয়ালটির চেয়ে ভালো?