লিনাক্সের জন্য 12 মাইএসকিউএল/মারিয়াডিবি সুরক্ষা সেরা অভ্যাস P


মাইএসকিউএল হ'ল বিশ্বের সর্বাধিক জনপ্রিয় ওপেন সোর্স ডাটাবেস সিস্টেম এবং মারিয়াডিবি (মাইএসকিউএলের একটি কাঁটাচালিকা) বিশ্বের দ্রুত বর্ধমান ওপেন সোর্স ডাটাবেস সিস্টেম। মাইএসকিউএল সার্ভার ইনস্টল করার পরে এটি এর ডিফল্ট কনফিগারেশনে অনিরাপদ এবং এটিকে সুরক্ষা দেওয়া সাধারণ ডাটাবেস পরিচালনার একটি প্রয়োজনীয় কাজ।

এটি সামগ্রিক লিনাক্স সার্ভারের সুরক্ষা জোরদার ও উত্সাহিত করতে ভূমিকা রাখবে, কারণ আক্রমণকারীরা সর্বদা কোনও সিস্টেমের যে কোনও অংশে দুর্বলতাগুলি স্ক্যান করে এবং অতীতে ডেটাবেসগুলি মূল লক্ষ্য অঞ্চল ছিল। একটি সাধারণ উদাহরণ মাইএসকিউএল ডাটাবেসের জন্য রুট পাসওয়ার্ডকে নিষ্ঠুর করে দেওয়া।

এই গাইডটিতে আমরা লিনাক্সের জন্য দরকারী মাইএসকিউএল/মারিয়াডিবি সুরক্ষা সেরা অনুশীলনের ব্যাখ্যা করব explain

1. সুরক্ষিত মাইএসকিউএল ইনস্টলেশন

এটি মাইএসকিউএল সার্ভার ইনস্টল করার পরে, প্রথম ডাটাবেস সার্ভার সুরক্ষিত করার প্রস্তাবিত পদক্ষেপ। এই স্ক্রিপ্টটি আপনাকে জিজ্ঞাসা করে আপনার মাইএসকিউএল সার্ভারের সুরক্ষা উন্নত করতে সহায়তা করে:

  • আপনি যদি ইনস্টলেশন চলাকালীন সেট না করে থাকেন তবে রুট অ্যাকাউন্টের জন্য একটি পাসওয়ার্ড সেট করুন
  • স্থানীয় হোস্টের বাইরে থেকে অ্যাক্সেসযোগ্য রুট অ্যাকাউন্টগুলি সরিয়ে দূরবর্তী রুট ব্যবহারকারী লগইনটি অক্ষম করুন
  • বেনামে-ব্যবহারকারীর অ্যাকাউন্টগুলি এবং পরীক্ষামূলক ডাটাবেসগুলি সরিয়ে ফেলুন যা ডিফল্টরূপে সমস্ত ব্যবহারকারী এমনকি বেনামী ব্যবহারকারীদের দ্বারা অ্যাক্সেস করা যায়

# mysql_secure_installation

এটি চালানোর পরে, মূল পাসওয়ার্ড সেট করুন এবং [হ্যাঁ/ওয়াই] প্রবেশ করে প্রশ্নের ধারাবাহিক উত্তর দিন এবং [এন্টার] টিপুন।

2. লুপব্যাকের ঠিকানায় ডাটাবেস সার্ভারকে আবদ্ধ করুন

এই কনফিগারেশনটি দূরবর্তী মেশিনগুলি থেকে অ্যাক্সেসকে সীমাবদ্ধ করবে, এটি মাইএসকিউএল সার্ভারকে কেবল লোকালহোস্টের মধ্যে থেকে সংযোগ গ্রহণ করতে বলে। আপনি এটিকে মূল কনফিগারেশন ফাইলে সেট করতে পারেন।

# vi /etc/my.cnf	                   [RHEL/CentOS]	
# vi /etc/mysql/my.conf                    [Debian/Ubuntu] 
OR
# vi /etc/mysql/mysql.conf.d/mysqld.cnf    [Debian/Ubuntu] 

[মাইকিকিএলডি] বিভাগের নীচে নিম্নলিখিত লাইনটি যুক্ত করুন।

bind-address = 127.0.0.1

৩. মাইএসকিউএল-এ স্থানীয় তথ্য অক্ষম করুন

সুরক্ষা কঠোর করার অংশ হিসাবে, [mysqld] বিভাগের অধীনে নিম্নলিখিত নির্দেশাবলী ব্যবহার করে মাইএসকিউএল থেকে অন্তর্নিহিত ফাইল সিস্টেমের অ্যাক্সেস রোধ করতে আপনাকে স্থানীয়_ইনফাইল অক্ষম করতে হবে।

local-infile=0

৪) এমওয়াইএসকিউএল ডিফল্ট পোর্ট পরিবর্তন করুন

পোর্ট ভেরিয়েবলটি মাইএসকিউএল পোর্ট নম্বর সেট করে যা টিসিপি/আইপি সংযোগগুলি শোনার জন্য ব্যবহৃত হবে। ডিফল্ট পোর্ট নম্বরটি 3306 তবে আপনি [মাইকিকিএলডি] বিভাগের অধীনে এটি প্রদর্শিত হিসাবে পরিবর্তন করতে পারেন।

Port=5000

৫. মাইএসকিউএল লগিং সক্ষম করুন

কোনও সার্ভারে যা ঘটে তা বোঝার সেরা উপায়গুলির মধ্যে লগগুলি হ'ল কোনও আক্রমণের ক্ষেত্রে, আপনি লগ ফাইলগুলি থেকে সহজেই কোনও প্রবেশাধিকার-সম্পর্কিত ক্রিয়াকলাপ দেখতে পারবেন। [mysqld] বিভাগের অধীনে নিম্নলিখিত ভেরিয়েবলটি যুক্ত করে আপনি মাইএসকিউএল লগিং সক্ষম করতে পারেন।

log=/var/log/mysql.log

6. মাইএসকিউএল ফাইলগুলিতে উপযুক্ত অনুমতি সেট করুন

আপনার কাছে সমস্ত মাইএসকিএল সার্ভার ফাইল এবং ডেটা ডিরেক্টরিগুলির জন্য উপযুক্ত অনুমতি সেট রয়েছে তা নিশ্চিত করুন। /Etc/my.conf ফাইলটি কেবল রুটটিতে লেখা যায়। এটি অন্যান্য ব্যবহারকারীদের ডাটাবেস সার্ভার কনফিগারেশন পরিবর্তন করতে বাধা দেয়।

# chmod 644 /etc/my.cnf

7. মাইএসকিউএল শেল ইতিহাস মুছুন

আপনি মাইএসকিউএল শেলের উপর চালিত সমস্ত কমান্ড হিস্ট্রি ফাইলটিতে মাইএসকিএল ক্লায়েন্ট দ্বারা সংরক্ষণ করা হয়: ~/.mysql_history। এটি বিপজ্জনক হতে পারে, কারণ আপনার তৈরি করা কোনও ব্যবহারকারীর অ্যাকাউন্টের জন্য, শেলটিতে টাইপ করা সমস্ত ব্যবহারকারীর নাম এবং পাসওয়ার্ড ইতিহাসের ফাইলটিতে রেকর্ড করা হবে।

# cat /dev/null > ~/.mysql_history

8. কমান্ডলাইন থেকে মাইএসকিউএল কমান্ডগুলি চালাবেন না

আপনি ইতিমধ্যে জানেন যে, আপনি যে শেলটি ব্যবহার করছেন সেটির উপর নির্ভর করে টার্মিনালে আপনি যে সমস্ত কমান্ড লিখেছেন তা হিস্ট্রি ফাইলে সংরক্ষণ করা হয় (উদাহরণস্বরূপ বাশের জন্য ~/.bash_history)। একজন আক্রমণকারী যিনি এই ইতিহাসের ফাইলে অ্যাক্সেস অর্জন করতে সক্ষম হন সহজেই সেখানে রেকর্ড করা যে কোনও পাসওয়ার্ড দেখতে পাবেন।

কমান্ড লাইনে পাসওয়ার্ড টাইপ করার জন্য দৃ strongly়ভাবে সুপারিশ করা হয়নি, এরকম কিছু:

# mysql -u root -ppassword_

আপনি যখন কমান্ড ইতিহাসের ফাইলের শেষ বিভাগটি পরীক্ষা করেন, আপনি উপরে পাসওয়ার্ডটি টাইপ করবেন।

# history 

মাইএসকিউএল সংযোগ করার উপযুক্ত উপায় হ'ল।

# mysql -u root -p
Enter password:

9. অ্যাপ্লিকেশন-নির্দিষ্ট ডেটাবেস ব্যবহারকারীদের সংজ্ঞা দিন

সার্ভারে চলমান প্রতিটি অ্যাপ্লিকেশনটির জন্য, কেবলমাত্র এমন কোনও ব্যবহারকারীকে অ্যাক্সেস দিন যিনি প্রদত্ত অ্যাপ্লিকেশনটির জন্য ডেটাবেসের দায়িত্বে আছেন। উদাহরণস্বরূপ, আপনার যদি কোনও ওয়ার্ডপ্রেস সাইট থাকে তবে নীচে ওয়ার্ডপ্রেস সাইট ডাটাবেসের জন্য একটি নির্দিষ্ট ব্যবহারকারী তৈরি করুন।

# mysql -u root -p
MariaDB [(none)]> CREATE DATABASE osclass_db;
MariaDB [(none)]> CREATE USER 'osclassdmin'@'localhost' IDENTIFIED BY '[email %!2';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON osclass_db.* TO 'osclassdmin'@'localhost';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> exit

এবং সর্বদা সার্ভারে কোনও অ্যাপ্লিকেশন ডাটাবেস পরিচালনা করে না এমন ব্যবহারকারীর অ্যাকাউন্টগুলি সরিয়ে ফেলতে ভুলবেন না।

10. অতিরিক্ত সুরক্ষা প্লাগইন এবং গ্রন্থাগারগুলি ব্যবহার করুন

মাইএসকিউএল এর জন্য বেশ কয়েকটি সুরক্ষা প্লাগইন অন্তর্ভুক্ত রয়েছে: মাইএসকিএল সার্ভারের সাথে সংযোগ স্থাপনের ক্লায়েন্টদের প্রয়াসকে অনুমোদন দেওয়া, পাসওয়ার্ড-যাচাইকরণ এবং সংবেদনশীল তথ্যের জন্য সঞ্চয়স্থান সংরক্ষণের জন্য যা সমস্ত বিনামূল্যে সংস্করণে উপলব্ধ।

আপনি এখানে আরও জানতে পারেন: https://dev.mysql.com/doc/refman/5.7/en/security-plugins.html

১১. নিয়মিত মাইএসকিউএল পাসওয়ার্ড পরিবর্তন করুন

এটি তথ্য/প্রয়োগ/সিস্টেম সুরক্ষা পরামর্শের একটি সাধারণ অংশ। আপনি কতবার এটি করেন তা সম্পূর্ণরূপে আপনার অভ্যন্তরীণ সুরক্ষা নীতির উপর নির্ভর করবে। তবে এটি "স্নোপার্স" কে রোধ করতে পারে যারা আপনার মাইএসকিএল সার্ভারে অ্যাক্সেস পেতে দীর্ঘ সময় ধরে আপনার ক্রিয়াকলাপটি ট্র্যাক করে চলেছে।

MariaDB [(none)]> USE mysql;
MariaDB [(none)]> UPDATE user SET password=PASSWORD('YourPasswordHere') WHERE User='root' AND Host = 'localhost';
MariaDB [(none)]> FLUSH PRIVILEGES;

12. মাইএসকিউএল সার্ভার প্যাকেজ নিয়মিত আপডেট করুন

বিক্রেতার সংগ্রহস্থল থেকে সুরক্ষা আপডেট এবং বাগ ফিক্সগুলি বজায় রাখতে নিয়মিত mysql/mariadb প্যাকেজগুলি আপগ্রেড করার পক্ষে সুপারিশ করা হয়। সাধারণত ডিফল্ট অপারেটিং সিস্টেমের সংগ্রহস্থলগুলির প্যাকেজগুলি পুরানো হয়।

# yum update
# apt update

Mysql/mariadb সার্ভারে কোনও পরিবর্তন করার পরে, পরিষেবাটি সর্বদা পুনরায় চালু করুন।

# systemctl restart mariadb		#RHEL/CentOS
# systemctl restart mysql		#Debian/Ubuntu

এখানেই শেষ! আমরা নীচের মন্তব্য ফর্ম মাধ্যমে আপনার কাছ থেকে শুনতে ভালোবাসি। উপরের তালিকায় অনুপস্থিত যে কোনও মাইএসকিউএল/মারিয়াডিবি সুরক্ষা টিপস আমাদের সাথে ভাগ করুন।