שמור על מסדי הנתונים של MySQL שלך על ידי יצירת משתמשים והרשאות נפרדים

תמיד הייתי חבר לשיטות עבודה טובות, הרבה יותר אם הם עוזרים לנו לשמור על אבטחת השרתים, השירותים שלנו או פשוט המידע שלנו.

הרגל (הרגל רע) שיש למנהלים או משתמשים רבים הוא להשתמש איתו בגישה שורש עבור כל מסדי הנתונים, כלומר ... הם מתקינים אתר באמצעות WordPress CMS, וכנתוני גישה למסד הנתונים (כדי ש- WP ישתמש בשרת MySQL וישתמש ב- DB שלו) הם שמו את המשתמש לניהול שרת MySQL: root

כמו כן, הם מתקינים כל יישום אינטרנט אחר (צ'אט, הדבק, פורום וכו ') ועושים את אותו הדבר, הם תמיד משתמשים במשתמש הבסיס של MySQL ...

שְׁגִיאָה!!!

זה פשוט הרגל קטלני.

נניח שיש לנו את השירותים הבאים בשרת:

  1. אתר או פורטל המשתמש בוורדפרס.
  2. פורום התמיכה שלנו, שיחות וכו '... קהילה שלמה.
  3. FTP המשתמש במסד נתונים של MySQL לאחסון משתמשים וסיסמאות.
  4. משתמשי הדוא"ל מאוחסנים (משתמשים וסיסמאות) במסד נתונים של MySQL.
  5. WebChat קטן שאנחנו מתקינים כדי לשוחח עם מישהו שאתה מכיר.

ובכולם, ב -5 השירותים אנו משתמשים במשתמש שורש MySQL כך שכל שירות ניגש ושומר את הנתונים במסד הנתונים המתאים לו.

יום בהיר אחד, כל אחד מהרבים הטרולים שם, אבל זה לא רק טרול, אלא שהוא גם שולט בכמה מעללים, פגיעות, פריצות וכו '... מחליט לעשות משהו מזיק לנו.

מצא באג ב- WebChat בו אנו משתמשים, תוך ניצול של באג זה, הוא מצליח לגשת לקבצי WebChat, כולל קובץ התצורה של WebChat, ו ... בקובץ זה, כמובן, שם המשתמש והסיסמה בהם WebChat משתמש כדי לגשת לשרת MySQL. , ונחש מה? ... האם לא יותר ולא פחות מהמשתמש בשורש!

על ידי קבלת מידע זה, בצורה פשוטה מאוד הטרול יכול:

  1. מחק אותנו ו / או גנוב כל מה שקשור לאתר או לפורטל שיש לנו (WordPress).
  2. באפשרותך למחוק ו / או לגנוב מאיתנו מידע ומשתמשינו המשתמשים בפורום, הקהילה שאנו יוצרים.
  3. אתה יכול גם לגנוב את שם המשתמש והסיסמה של כל המשתמשים שיש להם חשבון דוא"ל בשרת שלנו, כמו גם לגנוב את המידע מהאימיילים שלהם, להתחזות וכו '.
  4. ועכשיו, סוף סוף, תוכלו להשתמש בחשבון בשרת ה- FTP שלנו ולהעלות כל קובץ שמכיל תוכנות זדוניות, שיאפשר לכם לקחת שליטה מוחלטת ו- ABSOLUTE בשרת שלנו.

אז מה אתה חושב? ... 🙂

האם אתה רואה את כל מה שיכול לקרות רק על ידי לא ליצור משתמשים עצמאיים לכל מסד נתונים שיש לנו?

זה לא הגזמה חברים, זה יכול לקרות בקלות מדהימה ... ובכן, כל מה שנדרש כדי לעורר את האסון הוא רק באג בחלק מיישומי האינטרנט שהתקנת.

עַכשָׁיו…

כיצד ליצור משתמשי MySQL נפרדים לכל יישום אינטרנט?

ראשית עלינו להיכנס לשרת MySQL עם משתמש הבסיס, מכיוון שהוא זה שיש לו הרשאות ליצור מסדי נתונים, ליצור הרשאות, ליצור משתמשים וכו ':

mysql -u root -p

כאשר הם כותבים את האמור לעיל ולוחצים [להיכנס] הם יתבקשו להזין את הסיסמה של משתמש השורש MySQL, הם מקלידים אותה ולוחצים [להיכנס] שוב, מיד יוצג לך משהו כזה:

כעת ניצור מסד נתונים בשם «webchatdb":
CREATE DATABASE webchatdb;

שימו לב לחצי נקודה-פסיק «;»בסוף התור.

מוכן, כבר יצרת את מסד הנתונים, עכשיו בוא ניצור את המשתמש «משתמש צ'אט«עם הסיסמה«סיסמת מחיקת סיסמה":

CREATE USER 'webchatuser'@'localhost' IDENTIFIED BY 'passworddelputowebchat';

עכשיו הקסם ... ניתן את כל הפריבילגיות (לקרוא ולכתוב) משתמש צ'אט רק ב- DB webchatdb:

GRANT ALL PRIVILEGES ON webchatdb.* TO 'webchatuser'@'localhost' WITH GRANT OPTION;

וואלה, למשתמש יש כבר את ההרשאות במסד הנתונים הזה ... עכשיו נותר רק לרענן את ההרשאות ל- MySQL, כלומר להגיד ל- MySQL לקרוא מחדש את ההרשאות של המשתמשים מכיוון שזה עתה עשינו בהם שינוי:

FLUSH PRIVILEGES ;

אני משאיר צילום מסך:

וזה כבר הכל. על ידי ביצוע פעולה זו עבור כל יישום אינטרנט בו אנו משתמשים, אנו מתחייבים כי במקרה שהם יצליחו להפר את אחת מיישומי האינטרנט הללו, האחרים יהיו בטוחים (לפחות מנקודת המבט של MySQL)

מה זה נוהג טוב? 😉

אני מקווה שזה היה שימושי עבורך כמו שזה היה בשבילי, כי ניסיתי להסביר את זה בפשטות שיכולתי.

לגבי


השאירו את התגובה שלכם

כתובת הדוא"ל שלך לא תפורסם. שדות חובה מסומנים *

*

*

  1. אחראי לנתונים: מיגל אנחל גטון
  2. מטרת הנתונים: בקרת ספאם, ניהול תגובות.
  3. לגיטימציה: הסכמתך
  4. מסירת הנתונים: הנתונים לא יועברו לצדדים שלישיים אלא בהתחייבות חוקית.
  5. אחסון נתונים: מסד נתונים המתארח על ידי Occentus Networks (EU)
  6. זכויות: בכל עת תוכל להגביל, לשחזר ולמחוק את המידע שלך.

  1.   סנונית דיג'ו

    פוסט טוב KZKG, אם זה היה בפורום הייתי מבקש דביק!

    1.    KZKG ^ גאארה דיג'ו

      תודה 😀

      1.    Cuba Red דיג'ו

        הסיסמה שאתה שם לווטשצ'ט היא טובה, דבר נוסף שקשור ל- mysql הוא השימוש בזיכרון שלה

  2.   Hyuuga_Neji דיג'ו

    Hehehe, תודה שהזכרת לי את פקודות MySQL. עכשיו בוא נראה אם ​​"שמתי קצת אבטחה" במאגר השרתים של World of Warcraft שיש לי ברשת LAN שלי.

  3.   sieg84 דיג'ו

    הידע שלי בנושא זה אפסי, אבל זה כמעט אותו דבר כאשר משתמשים ב- MySQL עבור Amarok?
    צור נתונים amarokdb;
    הענק את כל האישורים ב- amarokdb. * ל- 'amarokuser' שזוהה באמצעות 'סיסמה'; שטיפות פרטיות;

    1.    KZKG ^ גאארה דיג'ו

      הרבה זמן לא השתמשתי ב- Amarok, אבל אם אתה משתמש ב- DB שהוא MySQL, בתיאוריה זה צריך לעבוד גם ככה.

  4.   קרלוס אנדרס רסטרפו דיג'ו

    שלום, זה יהיה טוב אם תיצור ערך לאבטחה כנגד שרתי אינטרנט בלינוקס, לרבים מהם אין את האבטחה המתאימה והמנהל של אותו אינו כראוי מומחה, הם רק מקלים על דברים, למשל השימוש ב symlink בשרתים מאפשר קריאה של קבצי התצורה של חשבונות אחרים באותו שרת, מנהלים רבים אינם מודעים לכך ובגלל מתרבים את אתרי ההפחתה באתר.

    לגבי

    1.    KZKG ^ גאארה דיג'ו

      שלום כזה,
      ברוך הבא לאתר 🙂

      אני לא באמת מחשיב את עצמי כמומחה בעניין הזה בהרבה, אבל אנסה לתרום את מעט הידע שרכשתי לאורך השנים 🙂

      דבר נוסף שלא רבים ממנהלי הרשת עושים, הוא לתת הרשאות לאתרים עם אפאצ'י בנפרד, כלומר למשתמש ולקבץ www-data (או דומים), שהם שונים לכל אתר, ובתורם לכלוב כל אחד מהם .

      לגבי

  5.   775. רחוב דיג'ו

    עצה טובה

    לגבי

    1.    KZKG ^ גאארה דיג'ו

      תודה

  6.   ננו דיג'ו

    אני שונא את מראה המסוף שלך, אותיות הרקע מוציאות אותי מהריכוז שלי. אתה פאקינג xD מטורף

    מחוץ לזה, זה מעניין כי ראיתי מקרים פתטיים של הפסקות שירות מאותם דברים.

    עכשיו, לא רק שזה תלוי בזה, האבטחה טמונה באופן בו נבנה מסד הנתונים, הסביר לי מורה, אבל אני עדיין לא שקוע מאוד ב- DB ... אנחנו צריכים להתעסק עם MongoDB = D אחד כזה ימים

  7.   קרלוס קורונל דיג'ו

    בדיוק זה קרה לי היום עם השרת המושכר שלי

    עקבתי אחר צעדיך, נכנסתי ל- cpanel וחיפשתי את מסד הנתונים של MYSQL והוא אומר לי שהוא לא בסדר.

    אני לא יודע איך להיכנס עכשיו תחת משתמש השורש
    אני נאופיט בזה, אבל בקריאה כאן אתה לומד הרבה, אני מקווה שתנחה אותי לגישה

    1.    KZKG ^ גאארה דיג'ו

      שלום 🙂
      מה שיש לך הוא אירוח (SharedHosting) או VPS (שרת וירטואלי)?

      אם יש לך אירוח ולא VPS, אתה צריך לראות אם לאירוח שלך יש גישה SSH (צרו קשר עם התמיכה הטכנית של החברה שמכרה לכם את האירוח ושאלו אותם כיצד לגשת באמצעות SSHברגע שאתה נכנס דרך SSH, המשתמש לא יהיה שורש, אך עליך להשתמש במשתמש שהזנת כשהתקנת את יישום האינטרנט הזה.

      למעשה שלך הוא נושא מסובך, מכיוון שהווריאציות והאפשרויות רבות כל כך, אני ממליץ לך לפתוח נושא חדש בפורום שלנו, שם יהיה יותר נוח לעזור לך - » http://foro.desdelinux.net

      ברכות 😀

  8.   בוסברונדם דיג'ו

    טוב,

    אני מבין שזה נוהג לא לתת את כל ההרשאות לאף משתמש למעט שורש. עם זאת, מאז שהתקנתי את phpmyadmin נוצר משתמש חדש "phpmyadmin" עם כל ההרשאות. נראה הגיוני שזה המקרה, מכיוון שזו גרסה גרפית בלבד לניהול מסדי הנתונים ב- MySQL. בכל מקרה הייתי רוצה לוודא אם זה בסדר כמו שהוא או שעלי לבצע שינוי כלשהו בהרשאות המשתמש "phpmyadmin".

    ברכות ותודה!

  9.   עמנואל דיג'ו

    מְעוּלֶה…
    אני מאלה שעושים הכל עם שורש, אבל פתחת את עיני חבר ..
    תודה רבה…