السلام عليكم ورحمة الله وبركاته
ايها الاعزاء يبدو ان البعض من مستخدمين لينوكس و مدراء الخوادم يعانون من مشكله فهم اوامر
mysql
وهذا الموضوع شروحات لبعض الاوامر التي ستفيدنيا في هذا الموضوع ان شاء الله :
البعض منكم يعرف كيفية ضبط ملف اعداد قواعد البيانات
my.cnf
هناك خيار يمكن وضعه في هذا الملف يمنع عملية ربط القواعد بأي خادم خارجي وهي مفيده ايضا في عمليات الحماية للقواعد توضع العباره في خانه
[mysqld] وهي جمله
او حل اخر نضع الجمله التالية بنفس المكان وهي
كود:
bind-address=127.0.0.1
اي لا تعمل القواعد استماع الى من خلال
localhost او الخادم نفسه
الامر الثاني وهو امر مفيد ومهم الجميع يضعه في ملف الاعداد لكن البعض لا يفهم ما هي الوظيفة الرئيسية له وسنشرح لكم ان شاء الله ما وظيفته
يستخدم هذا الامر لمنع تحميل البيانات المحلية
LOAD DATA LOCAL INFILE من داخل قواعد البيانات في السيرفر وهي تساعد على كشف ملفات مهمه على السيرفر مثل
/etc/passwd او ايا كان , وهذا الامر يمنع تحميل هذه البيانات وقرائتها من داخل القواعد .
ولتجربه وتأكد من صحة الكلام طبق التالي في
ssh mysql
كود:
mysql> LOAD DATA LOCAL INFILE '/etc/passwd' INTO TABLE hardnix
او
كود:
mysql> SELECT load_file("/etc/passwd")
اﻷن نأتي لصيغه الصحيحه للامر وهي
كود:
set-variable=local-infile=0
وتضع داخل خانه
[mysqld]
اﻷن عملية وضع باسورد mysql وهذا الموضوع مهم البعض يتركه سهل جدا وهذا يعد خلل امني داخل النظام والمرجو وضع كلمة المرور ان تكون قوية بعض الشيء تحتوي الرموز والارقام والحروف وطريقة تغير الباسورد هي كالتالي :
اكتب في الشل الامر التالي لتوليد كلمة مرور قوية مكونة من 50 خانه
كود:
</dev/urandom tr -dc A-Za-z0-9 | head -c50
سيكون المخرج عباره عن 50 خانه من الاحرف والارقام وبعدها نكتب الامر التالي
كود:
mysqladmin -u root password 'CRXYlfCkJC1z'
مع تغير
الى كلمة المرور التي قمت باستخراجها
التالي سيكون حذف قاعده البيانات test المتواجده في mysql وهذه القاعده تستخدم للاختبار على السيرفر ويمكن الوصول اليها من اي مستخدم مجهول وبالتالي وببساطه تستخدم للهجمات على السيرفر
والحل لها هو كالتالي :
حذف هذه القاعده عن طريق الامر التالي بعد الدخول ل mysql عن طريق ssh
كود:
mysql> drop database test;
التالي هو التأكد من التصاريح للمجلدات المتعلقه ب mysql وهذا مهم جدا في النظام وحاليا لندخل المجلد التالي على الخادم او الجهاز
عن طريق الامر التالي
وبعدها طبق
كود:
ls -l
total 20484
-rw-rw---- 1 mysql mysql 10485760 Oct 21 23:28 ibdata1
-rw-rw---- 1 mysql mysql 5242880 Oct 21 23:28 ib_logfile0
-rw-rw---- 1 mysql mysql 5242880 Oct 21 23:28 ib_logfile1
drwx------ 2 mysql mysql 4096 Oct 21 23:28 mysql
srwxrwxrwx 1 mysql mysql 0 Oct 21 23:28 mysql.sock
الملفات يملكها المجموعه mysql واليوزر الذي يملك هذه الملفات ايضا هو mysql
وايضا ندخل على المجلد التالي على الخادم بتطبيق الامر التالي
ونكتب بعدها
ونتأكد ايضا من تصاريح هذه الملفات يكون فقط للمستخدم الجذر root
مثال من المخرج
كود:
-rwxr-xr-x 1 root root 347380 Aug 29 07:45 mythfilldatabase
-rwxr-xr-x 1 root root 2062376 Aug 29 07:45 mythfrontend
-rwxr-xr-x 1 root root 31024 Aug 29 07:45 mythjobqueue
-rwxr-xr-x 1 root root 223752 Aug 29 07:45 mythlcdserver
-rwxr-xr-x 1 root root 1529 Aug 29 07:12 mythpython
-rwxr-xr-x 1 root root 88700 Aug 29 07:45 mythreplex
ايضا امر مهم جدا وهو امر اظهار قواعد البيانات على السيرفر
يمكن للمهاجم ان يقوم ببعض الاوامر التي تظهر معلومات عن قواعد البيانات على السيرفر او سرقتها ومن المستحسن اضافة الامر التالي في ملف اعداد قواعد البيانات على الخادم my.cnf بأضافة الامر التالي :
كالتالي
بأختصار لن يقوم احد من يوزر بأظهار اي قواعد بيانات ليوزر اخر على السيرفر
اظهار ملف تسجيل الاحداث على الخادم والكل يعرف اهمية log ﻷي مدير خوادم على الانترنت نقوم بأضافة الامر التالي داخل ملف الاعداد
داخل خانه
[mysqld]
كود:
log =/var/log/secsql.log
وايضا عمل سجل للاحداث البطيئة في استعلامات mysql لكي تتمكن من معالجة الاخطاء داخل قواعد البيانات مثل منتديات vb
كود:
log-slow-queries=/var/lib/mysql/slow.log
والقرأة تكون عن طريق الاوامر التالي
كود:
tail -f /var/log/secsql.log
tail -f /var/lib/mysql/slow.log
هناك سكربتات تقوم بأعداد ملف قواعد البيانات وتعطي قيم مناسبة لسيرفرك اذا كنت غير خبير او دارس خيارات هذا الملف /etc/my.cnf فهذا السكربت يقوم بعمل كل شيء عنك ويحسب القيم ويعطي لك تقرير بالقيم لكي تقوم بتغيرها في الملف يمكنك سحبة وتشغيله بهذه الاوامر
كود:
wget http://mysqltuner.com/mysqltuner.pl
chmod u+x mysqltuner.pl
./mysqltuner.pl
قبل التعديل على القيم التي سعرضها السكربت لك عليك اولاًَ اخذ نسخة احتياطية من ملف القواعد بحاله حدوث اخطاء يمكنك استعادته او تدقيق به مره اخرى وطريقة هي
كود:
cp /etc/my.cnf /etc/my.cnf.hardnix
وايضا تأكد ان قواعد البيانات لها اكثر من 72 ساعه تعمل ولم تتوقف لتكون نتائج بشكل دقيق جدا ويمكنك تأكد من وقت عملها عن طريق الامر التالي
كود:
mysqladmin version | grep Uptime
وايضا عمل الامر التالي ﻷصلاح قواعد البيانات قبل تعديل القيم
كود:
mysqlcheck -u root -p --auto-repair --check --optimize --all-databases
ﻷنشاء قاعده بيانات عن طريق الشل العملية ان شاء الله سهله ورح تفيد مجموعه من الاعضاء هنا بأذن لله
اولاً
ندخل mysql وبعد رح يطلب باسورد root mysql نضعه ونكمل المسير
بعدها عملية انشاء قاعده البيانات
كود:
create database hardnix;
غير hardnix الى اسم القاعده التي تريدها
اﻷن
ﻷنشاء مستخدم للقاعده + باسورد للقاعده وربطهم مع بعضهم البعض كما في سيبنل على سبيل المثال
نستخدم الامر التالي
كود:
grant all privileges on hardnix.* to 'GEEKZ'@'localhost' identified by "CIQDfoVUWC";
اﻷن انتهينا من عملية الربط بقي خطوه وهي عملية عمل فلش للقاعده اي تحظيرها + الخروج من mysql
ثم
بالاخر نحصل على :
مكان قاعده البيانات :
اسم قاعده البيانات :
اسم مستخدم القاعده :
الباسورد :
الى هنا ينتهي هذا الجزء وان شاء الله عندما اجد الوقت الكافي سأقوم بكتابه الجزء الثاني او التكملة
ارجوا ان يكون الموضوع قد نال اعجابكم تمنياتي لكم بالتوفيق
كامل حقوق الموضوع محفوظة ل
HardNix.com & Haitham Hani
Greets T0 Anass Atef & Abu Omar & Mustafa Mahmoud & Ramy Allam & Sameh
محمد شحاده و سامح الشورى
وجميع الباقين