কম্পিউটার

MySQL ক্লায়েন্টদের জন্য TLS সক্ষম করুন


TLS SSL (সিকিউর সকেট লেয়ার) নামেও পরিচিত। এটি ট্রান্সপোর্ট লেয়ার সিকিউরিটি বোঝায়।

যখন MySQL ক্লায়েন্ট এবং সার্ভারের মধ্যে একটি এনক্রিপ্টেড সংযোগ থাকে, তখন একজন ব্যক্তি যার নেটওয়ার্কে অ্যাক্সেস রয়েছে সে সমস্ত ট্র্যাফিক দেখতে পারে এবং ক্লায়েন্ট এবং সার্ভারের মধ্যে পাঠানো বা প্রাপ্ত ডেটা পরিদর্শন করতে পারে। যখন ব্যবহারকারী একটি নিরাপদ পদ্ধতিতে একটি নেটওয়ার্কে তথ্য স্থানান্তর করতে চায়, তখন একটি এনক্রিপ্ট করা সংযোগ গ্রহণযোগ্য নয়৷

যেকোন ধরণের ডেটা অপঠনযোগ্য করতে, এনক্রিপশন ব্যবহার করতে হবে। এনক্রিপশন অ্যালগরিদমগুলি সাধারণত নিরাপত্তা উপাদানগুলিকে অন্তর্ভুক্ত করে যা অনেক ধরণের পরিচিত আক্রমণ প্রতিহত করতে সাহায্য করে, যার মধ্যে কিছু এনক্রিপ্ট করা বার্তাগুলির ক্রম পরিবর্তন করা বা ডেটা দুবার রিপ্লে করা অন্তর্ভুক্ত৷ MySQL এনক্রিপ্ট করা সংযোগ সমর্থন করে যা ক্লায়েন্ট এবং সার্ভারের মধ্যে ঘটে যেখানে তারা উভয়েই TLS প্রোটোকল ব্যবহার করে। কিন্তু MySQL এনক্রিপ্ট করা সংযোগের জন্য SSL প্রোটোকল ব্যবহার করে না যেহেতু এনক্রিপশন দুর্বল।

টিএলএস এনক্রিপশন অ্যালগরিদম ব্যবহার করে নিশ্চিত করে যে কোনও পাবলিক নেটওয়ার্কে প্রাপ্ত ডেটা বিশ্বস্ত ডেটা। এতে ডেটা পরিবর্তন, ক্ষতি বা রিপ্লে শনাক্ত করার অনেক উপায় রয়েছে। TLS অ্যালগরিদমও ব্যবহার করে যা X.509 স্ট্যান্ডার্ডের সাহায্যে পরিচয় যাচাইয়ের সাথে আসে।

টিএলএস সক্ষম করার পদক্ষেপগুলি

MySQL প্রতি-সংযোগের ভিত্তিতে এনক্রিপশন সম্পাদন করে। প্রদত্ত ব্যবহারকারীর জন্য এনক্রিপশন ঐচ্ছিক বা বাধ্যতামূলক হতে পারে। এটি ব্যবহারকারীকে অ্যাপ্লিকেশনগুলির প্রয়োজনীয়তার উপর নির্ভর করে একটি এনক্রিপ্ট করা বা এনক্রিপ্ট করা সংযোগ চয়ন করতে সক্ষম করে৷

আসুন আমরা বুঝতে পারি কিভাবে MySQL ক্লায়েন্টদের জন্য TLS সক্ষম করা যায়:

  • সার্ভার চালু হলে কনফিগারেশন ফাইলের ssl-cert এবং ssl-কী প্যারামিটারগুলি নির্দিষ্ট করতে হবে৷
  • শংসাপত্র বা কী OpenSSL-এর সাহায্যে স্বাক্ষরিত এবং তৈরি করা হয়।
  • এই কীটি MySQL-এ mysql_ssl_rsa_setup টুল ব্যবহার করেও তৈরি করা যেতে পারে:
    mysql_ssl_rsa_setup --datadir=./certs
  • যদি পরামিতিগুলি সঠিক হয়, একটি সুরক্ষিত সংযোগ আউটপুট হিসাবে পাস করা হয় যা শুরু হওয়ার সময় সক্ষম হয়৷
  • শংসাপত্র, কী এবং CA পুনরায় লোড করা হয়েছে- ALTER INSTANCE RELOAD TLS স্টেটমেন্ট সার্ভার ইনস্ট্যান্সে কার্যকর করা হয়েছে৷ এটি নিশ্চিত করে যে সার্ভারের উদাহরণটি পুনরায় লোড করতে হবে না।
  • নতুন লোড হওয়া শংসাপত্র, কী, এবং CA সংযোগ স্থাপনের পরে প্রভাব দেখায় যা সফলভাবে কার্যকর হয়েছে৷
  • MySQL ক্লায়েন্ট এনক্রিপ্ট করা সংযোগ ব্যবহার করার জন্য কনফিগার করা হয়েছে- একটি এনক্রিপ্ট করা সংযোগ ডিফল্টরূপে সেট আপ করার চেষ্টা করা হয়। যদি সার্ভার একটি এনক্রিপ্ট করা সংযোগ সমর্থন না করে, তাহলে একটি এনক্রিপ্ট করা সংযোগ স্বয়ংক্রিয়ভাবে ফিরে আসে৷
  • ক্লায়েন্টের সংযোগ আচরণ --ssl-মোড প্যারামিটার ব্যবহার করে পরিবর্তন করা যেতে পারে:
    --ssl-mode=REQUIRED- Tells that en encrypted connection is needed.

প্রমাণীকরণ সক্ষম করা প্রয়োজন:যদি ssl-ca প্যারামিটার নির্দিষ্ট না থাকে, তাহলে ক্লায়েন্ট বা সার্ভার ডিফল্টরূপে প্রমাণীকরণ করে না।

  • ssl-cert এবং ssl-কী প্যারামিটার সার্ভারে নির্দিষ্ট করতে হবে।
  • --ssl-ca প্যারামিটার MySQL ক্লায়েন্টে নির্দিষ্ট করা আছে।
  • --ssl-মোড MySQL ক্লায়েন্টে VERIFY_CA-তে নির্দিষ্ট করা হয়েছে।
  • সার্ভারে কনফিগার করা সার্টিফিকেট (ssl-cert) ক্লায়েন্ট --ssl-ca প্যারামিটার দ্বারা নির্দিষ্ট করা CA দ্বারা স্বাক্ষরিত৷
  • যদি না হয়, প্রমাণীকরণ ব্যর্থ হয়।

সার্ভার থেকে MySQL ক্লায়েন্ট প্রমাণীকরণ করতে:

  • ssl-cert, ssl-key, এবং ssl-ca প্যারামিটার নির্দিষ্ট সার্ভার।
  • --ssl-cert এবং --ssl-কী প্যারামিটার ক্লায়েন্টে নির্দিষ্ট করা আছে।
  • সার্ভার-কনফিগার করা শংসাপত্র এবং ক্লায়েন্ট-কনফিগার করা শংসাপত্র সার্ভার দ্বারা নির্দিষ্ট করা ssl-ca দ্বারা স্বাক্ষরিত হয়৷
  • সার্ভার-টু-ক্লায়েন্ট প্রমাণীকরণ ঐচ্ছিক। যদি ক্লায়েন্ট TLS হ্যান্ডশেকের সময় তাদের শনাক্তকরণের শংসাপত্র না দেখায়, TLS সংযোগটি এখনও প্রতিষ্ঠিত থাকে।
  • বর্তমান সংযোগটি কোনো এনক্রিপশন ব্যবহার করে কিনা তা পরীক্ষা করুন।

  1. MacOS এ MySQL ইনস্টল করা হচ্ছে

  2. মাইক্রোসফ্ট উইন্ডোজে মাইএসকিউএল ইনস্টল করা হচ্ছে

  3. TLS ব্যর্থতার জন্য ওয়ার্কআউন্ডস, উইন্ডোজ সিস্টেমে টাইমআউট

  4. স্থির করুন:DHCP Wifi এর জন্য সক্ষম নয়