הקדמה
MariaDB הוא מערכת ניהול מסדי נתונים רצופיים מקורית שנפתחת, השמשה באופן נפוץ כאלטרנטיבה ל־MySQL כחלק מהמערכת המבוססת על LAMP (Linux, Apache, MySQL, PHP/Python/Perl) הפופולרית. המטרה היא להיות תחליף ישיר ל־MySQL.
גרסה הקצרה של מדריך ההתקנה מורכבת משלושה שלבים אלו:
- עדכן את אינדקס החבילות באמצעות
apt
- התקן את החבילה
mariadb-server
באמצעותapt
. החבילה מביאה גם כלים קשורים לאינטראקציה עם MariaDB - הפעל את סקריפט האבטחה
mysql_secure_installation
המובנה כדי להגביל גישה לשרת
מדריך זה יסביר כיצד להתקין את MariaDB על שרת Ubuntu 22.04 ולוודא שהוא פועל ושיש לו תצורה ראשונית בטוחה.
דרישות מוקדמות
- כדי לעקוב אחרי המדריך הזה, יהיה עליך להשתמש בשרת הפועל על Ubuntu 22.04. השרת צריך לכלול משתמש ניהול לא רוט ולהגדיר חומת אש עם UFW. הגדר את זה על ידי עקיפה של מדריך התקנת השרת הראשוני שלנו עבור Ubuntu 22.04.
שלב 1 — התקנת MariaDB
עם כתיבת המאמר הזה, מאגרי הנתונים המוכלים ב־APT של Ubuntu 22.04 כוללים את MariaDB גרסה 10.5.12.
כדי להתקין אותה, עדכן את אינדקס החבילות של השרת שלך באמצעות apt
:
לאחר מכן התקן את החבילה:
פקודות אלו יתקינו את MariaDB, אך לא יפעילו תרומה להגדרת סיסמה או לביצוע שינויים בהגדרה אחרת. מאחר שההגדרה ברירת המחדל משאירה את ההתקנה של MariaDB לא מאובטחת, עליך להשתמש בתסריט שהחבילה mariadb-server
מספקת כדי להגביל את הגישה לשרת ולהסיר חשבונות שאינם בשימוש.
שלב 2 — הגדרת MariaDB
עבור התקנות חדשות של MariaDB, השלב הבא הוא להפעיל את סקריפט האבטחה המצורף. הסקריפט הזה משנה חלק מהאפשרויות הברירת המחדל הפחות מאובטחות לדברים כמו התחברויות שורש מרוחקות ומשתמשים דוגמאיים.
הרץ את סקריפט האבטחה:
זה יקח אותך דרך סדרת שאלות שבהן תוכל לבצע שינויים באפשרויות האבטחה של ההתקנה שלך של MariaDB. השאלה הראשונה תבקש ממך להזין את הסיסמה הנוכחית של מסד הנתונים root. מאחר ועדיין לא הגדרת אחת, לחץ על ENTER
כדי לציין "אין".
OutputNOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, you'll need the current
password for the root user. If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
Enter current password for root (enter for none):
תתבקש האם ברצונך לעבור לאימות סוקט Unix. מאחר וכבר קיים לך חשבון מוגן root, תוכל לדלג על שלב זה. הקלד n
ואז לחץ על ENTER
.
Output. . .
Setting the root password or using the unix_socket ensures that nobody
can log into the MariaDB root user without the proper authorisation.
You already have your root account protected, so you can safely answer 'n'.
Switch to unix_socket authentication [Y/n] n
השאלה הבאה תשאל אותך האם ברצונך להגדיר סיסמת root למסד הנתונים. ב-Ubuntu, החשבון root של MariaDB קשור ישירות לתחזוקת המערכת האוטומטית, לכן לא עליך לשנות את שיטות האימות המוגדרות עבור החשבון הזה.
עשיית כך עשויה להוביל לשבירת מערכת המסד נתונים בקריאת עדכון חבילה על ידי הסרת גישה לחשבון המנהל. הקלד n
ואז לחץ על ENTER
.
Output. . .
OK, successfully used password, moving on...
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
Set root password? [Y/n] n
במעקב מאוחר יותר, תלך על איך להגדיר חשבון מנהל נוסף עבור גישת סיסמה אם האימות באמצעות סוקט אינו מתאים למקרה השימוש שלך.
משם, תוכל ללחוץ על Y
ואז ENTER
כדי לקבל את ברירות המחדל לכל השאלות הבאות. זה יסיר כמה משתמשים אנונימיים ואת מסד הנתונים לבדיקה, יבטל כניסות root מרחוק, ויטען את הכללים החדשים אז כך ש-MariaDB תיישם מיד את השינויים שביצעת.
עם זאת, סיימת את התצורה הראשונית של האבטחה של MariaDB. השלב הבא הוא אופציונלי, אך כדאי לעקוב אחריו אם תעדיפו לאמת את שרת MariaDB שלכם באמצעות סיסמה.
שלב 3 — (אופציונלי) יצירת משתמש מנהל שמשתמש באימות סיסמה
במערכות Ubuntu שרצות MariaDB 10.5, המשתמש הראשי של MariaDB מוגדר לאמת באמצעות תוסף unix_socket
כברירת מחדל במקום באמצעות סיסמה. זה מאפשר אבטחה ושימושיות גבוהה יותר ברבים מהמקרים, אך יכול גם להקשות על דברים כאשר יש צורך לאפשר לתוכנה חיצונית (לדוגמה, phpMyAdmin) זכויות מנהל.
מכיוון שהשרת משתמש בחשבון root למשימות כמו סיבובי יומן והתחלה ועצירת השרת, כדאי שלא לשנות את פרטי האימות של חשבון root. שינוי פרטי כניסה בקובץ התצורה /etc/mysql/debian.cnf
עשוי לעבוד בתחילה, אך עדכוני חבילה עשויים להתעלם מהשינויים האלו. במקום לשנות את חשבון root, מתחזקי החבילהה ממליצים ליצור חשבון מנהל נפרד לגישה המבוססת על סיסמה.
לכן, ניצור חשבון חדש בשם admin עם היכולות הזהות לחשבון root, אך מוגדר עבור אימות סיסמה. פתח את מסך ה-prompt של MariaDB מהטרמינל שלך:
לאחר מכן צור משתמש חדש עם הרשאות של root וגישה המבוססת על סיסמה. הקפד לשנות את שם המשתמש והסיסמה כפי שמתאים לך:
נקה את ההרשאות כדי לוודא שהן נשמרות וזמינות במהלך ההפעלה הנוכחית:
לאחר מכן, צא מהשאל של MariaDB:
ולבסוף, בואו נבדוק את ההתקנה של MariaDB.
שלב 4 — בדיקת MariaDB
כאשר מותקן ממאגרי הנתונים המוגדרים כברירת מחדל, MariaDB תתחיל לרוץ אוטומטית. כדי לבדוק זאת, בדוק את מצבה.
תקבל פלט דומה לזה:
Output● mariadb.service - MariaDB 10.5.12 database server
Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2022-03-11 22:01:33 UTC; 14min ago
Docs: man:mariadbd(8)
https://mariadb.com/kb/en/library/systemd/
. . .
אם MariaDB אינה רצה, תוכל להתחיל אותה באמצעות הפקודה sudo systemctl start mariadb
.
לבדיקה נוספת, נסה להתחבר למסד הנתונים באמצעות כלי ה-mysqladmin
, שהוא לקוח שמאפשר לך להריץ פקודות מנהליות. לדוגמה, הפקודה הזו אומרת להתחבר ל-MariaDB כמשתמש root באמצעות סוקט Unix ולהחזיר את הגרסה:
תקבל פלט דומה לזה:
Outputmysqladmin Ver 9.1 Distrib 10.5.12-MariaDB, for debian-linux-gnu on x86_64
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Server version 10.5.12-MariaDB-1build1
Protocol version 10
Connection Localhost via UNIX socket
UNIX socket /run/mysqld/mysqld.sock
Uptime: 15 min 53 sec
Threads: 1 Questions: 482 Slow queries: 0 Opens: 171 Open tables: 28 Queries per second avg: 0.505
מסקנה
במדריך זה התקנת את מערכת ניהול מסדי הנתונים היחסית של MariaDB, וקיבלת אותה באמצעות הסקריפט mysql_secure_installation
שהותקן יחד איתה. כמו כן, הייתה לך אפשרות ליצור משתמש מנהל חדש המשתמש באימות סיסמה לפני בדיקת פונקציונליות שרת MariaDB.
עכשיו שיש לך שרת MariaDB רץ ומאובטח, הנה כמה דוגמאות של צעדים הבאים שתוכל לבצע לעבוד עם השרת:
Source:
https://www.digitalocean.com/community/tutorials/how-to-install-mariadb-on-ubuntu-22-04