अलग उपयोगकर्ता और अनुमतियां बनाकर अपने MySQL डेटाबेस को सुरक्षित रखें

मैं हमेशा अच्छी प्रथाओं का दोस्त रहा हूं, बहुत अधिक अगर वे हमारे सर्वर, सेवाओं, या बस हमारी जानकारी की सुरक्षा बनाए रखने में हमारी मदद करते हैं।

एक आदत (बुरी आदत) जो कई प्रशासकों या उपयोगकर्ताओं के पास पहुँच का उपयोग करने के लिए है जड़ सभी डेटाबेस के लिए, यह है ... वे वर्डप्रेस सीएमएस का उपयोग करके एक साइट स्थापित करते हैं, और डेटाबेस तक डेटा तक पहुंच के लिए (WP के लिए MySQL सर्वर का उपयोग करने और अपने DB का उपयोग करने के लिए) वे MySQL सर्वर प्रशासन उपयोगकर्ता डालते हैं: रूट

इसके अलावा, वे किसी भी अन्य वेब एप्लिकेशन (एक चैट, पेस्ट, फ़ोरम, आदि) को स्थापित करते हैं और ऐसा ही करते हैं, वे हमेशा MySQL के मूल उपयोगकर्ता का उपयोग करते हैं ...

त्रुटि !!!

यह बस एक घातक आदत है।

मान लें कि हमारे पास सर्वर पर निम्नलिखित सेवाएं हैं:

  1. वर्डप्रेस का उपयोग करने वाली साइट या पोर्टल।
  2. हमारा समर्थन मंच, वार्ता, आदि ... एक संपूर्ण समुदाय।
  3. एक एफ़टीपी जो उपयोगकर्ताओं और पासवर्ड को संग्रहीत करने के लिए एक MySQL डेटाबेस का उपयोग करता है।
  4. ईमेल उपयोगकर्ता एक MySQL डेटाबेस में संग्रहीत (उपयोगकर्ता और पासवर्ड) हैं।
  5. एक छोटी सी वेबचैट जिसे हम आपके जानने वाले के साथ चैट करने के लिए इंस्टॉल करते हैं।

और उन सभी में, 5 सेवाओं में हम MySQL रूट उपयोगकर्ता का उपयोग करते हैं ताकि प्रत्येक सेवा अपने संबंधित डेटाबेस में डेटा को एक्सेस और सेव करे।

एक अच्छा दिन, कई में से कोई भी बाहर ट्रोल होता है, लेकिन यह न केवल एक ट्रोल है, बल्कि कुछ कारनामों, कमजोरियों, हैकिंग आदि में भी महारत हासिल करता है ... जो हमारे लिए कुछ हानिकारक करने का फैसला करता है।

WebChat में एक बग ढूंढें, जिसका हम उपयोग कर रहे हैं, इस बग का लाभ उठाते हुए, यह WebChat कॉन्फ़िगरेशन फ़ाइल सहित WebChat फ़ाइलों को एक्सेस करने का प्रबंधन करता है, और ... इस फ़ाइल में, जाहिर है, वह उपयोगकर्ता नाम और पासवर्ड है, जिसे WebChat एक्सेस करने के लिए उपयोग करता है। MySQL सर्वर, और लगता है क्या? ... यह कुछ भी नहीं है और कुछ भी कम नहीं रूट उपयोगकर्ता!

इस जानकारी को प्राप्त करके, एक बहुत ही सरल तरीके से ट्रोल कर सकते हैं:

  1. हमें हटाएं और / या उस साइट या पोर्टल से संबंधित सब कुछ चुरा लें जो हमारे पास है (वर्डप्रेस)।
  2. आप हमसे और हमारे उन उपयोगकर्ताओं से जानकारी को हटा सकते हैं और / या चोरी कर सकते हैं, जो हमारे द्वारा बनाए गए फ़ोरम का उपयोग करते हैं।
  3. आप उन सभी उपयोगकर्ताओं के उपयोगकर्ता नाम और पासवर्ड भी चुरा सकते हैं जिनके पास हमारे सर्वर पर एक ईमेल खाता है, साथ ही साथ उनके ईमेल, प्रतिरूपण आदि से जानकारी भी चुराते हैं।
  4. और अब अंत में, आप हमारे एफ़टीपी सर्वर पर एक खाते का उपयोग कर सकते हैं, और किसी भी फ़ाइल को अपलोड कर सकते हैं जिसमें मैलवेयर होते हैं, जो आपको हमारे सर्वर के TOTAL और ABSOLUTE नियंत्रण को लेने की अनुमति देगा।

अच्छा आप क्या सोचते हैं? … 🙂

क्या आपके पास प्रत्येक डेटाबेस के लिए स्वतंत्र उपयोगकर्ता नहीं बनाने से सब कुछ हो सकता है?

यह एक अतिशयोक्ति नहीं है, यह आश्चर्यजनक आसानी के साथ हो सकता है ... ठीक है, तबाही को दूर करने के लिए आवश्यक सभी वेब अनुप्रयोगों में से एक है जो आपने स्थापित किया है।

अभी…

प्रत्येक वेब एप्लिकेशन के लिए अलग-अलग MySQL उपयोगकर्ता कैसे बनाएं?

पहले हमें रूट उपयोगकर्ता के साथ MySQL सर्वर में प्रवेश करना होगा, क्योंकि वह वह है जिसके पास डेटाबेस बनाने, अनुमतियां स्थापित करने, उपयोगकर्ता बनाने आदि के लिए विशेषाधिकार हैं:

mysql -u root -p

जब वे ऊपर लिखते हैं और दबाते हैं [दर्ज] उनसे MySQL रूट उपयोगकर्ता का पासवर्ड पूछा जाएगा, वे इसे टाइप करते हैं और दबाते हैं [दर्ज] फिर, आपको तुरंत कुछ इस तरह दिखाया जाएगा:

अब हम एक डेटाबेस बनाएंगे जिसका नाम «वेबचैटडीबी":
CREATE DATABASE webchatdb;

अर्धविराम को नोटिस करें «;»पंक्ति के अंत में।

तैयार है, आप पहले से ही डेटाबेस बना चुके हैं, अब चलें उपयोगकर्ता बनाने के लिए «Webchatuser«पासवर्ड के साथ«पासवर्ड":

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

अब जादू ... हम सभी विशेषाधिकार (पढ़ने और लिखने) को दे देंगे Webchatuser केवल डीबी में वेबचैटडीबी:

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

वॉयला, उपयोगकर्ता के पास पहले से ही उस डेटाबेस में अनुमतियाँ हैं ... अब यह केवल MySQL के लिए अनुमतियों को ताज़ा करने के लिए बनी हुई है, अर्थात्, MySQL को उपयोगकर्ताओं के विशेषाधिकारों को फिर से लिखना है क्योंकि हमने अभी उनमें बदलाव किया है:

FLUSH PRIVILEGES ;

मैं आपको एक स्क्रीनशॉट छोड़ता हूं:

और यही सब कुछ रहा है। हमारे द्वारा उपयोग किए जाने वाले प्रत्येक वेब एप्लिकेशन के लिए ऐसा करने से, हम गारंटी देते हैं कि यदि वे उन वेब एप्लिकेशनों में से एक का उल्लंघन करते हैं, तो अन्य सुरक्षित होंगे (कम से कम MySQL के दृष्टिकोण से)

एक अच्छा अभ्यास क्या है? 😉

मुझे आशा है कि यह आपके लिए भी उतना ही उपयोगी है जितना कि यह मेरे लिए है, क्योंकि मैंने इसे केवल समझाने की कोशिश की।

सादर


अपनी टिप्पणी दर्ज करें

आपका ईमेल पता प्रकाशित नहीं किया जाएगा। आवश्यक फ़ील्ड के साथ चिह्नित कर रहे हैं *

*

*

  1. डेटा के लिए जिम्मेदार: मिगुएल elngel Gatón
  2. डेटा का उद्देश्य: नियंत्रण स्पैम, टिप्पणी प्रबंधन।
  3. वैधता: आपकी सहमति
  4. डेटा का संचार: डेटा को कानूनी बाध्यता को छोड़कर तीसरे पक्ष को संचार नहीं किया जाएगा।
  5. डेटा संग्रहण: ऑकेंटस नेटवर्क्स (EU) द्वारा होस्ट किया गया डेटाबेस
  6. अधिकार: किसी भी समय आप अपनी जानकारी को सीमित, पुनर्प्राप्त और हटा सकते हैं।

  1.   मार्टिन कहा

    अच्छा पोस्ट KZKG, अगर यह मंच में था मैं एक चिपचिपा के लिए पूछना होगा!

    1.    KZKG ^ गारा कहा

      धन्यवाद 😀

      1.    क्यूबा कहा

        वेबचैट के लिए आपके द्वारा डाला गया पासवर्ड अच्छा है, एक और चीज जो mysql के साथ है, वह है इसकी मेमोरी का उपयोग

  2.   हियुगा _Nनेजी कहा

    Hehehe, MySQL कमांड की याद दिलाने के लिए धन्यवाद। अब देखते हैं कि क्या मैं अपने LAN पर मौजूद Warcraft सर्वर डेटाबेस की दुनिया में "कुछ सुरक्षा रखता हूँ"।

  3.   घेराबंदी२०९९ कहा

    इस पर मेरा ज्ञान शून्य है, लेकिन एमारोक के लिए MySQL का उपयोग करते समय यह लगभग समान है?
    DATEABASE अमारोडब बनाएँ;
    अमरोद्ब पर सभी PRIVILEGES प्राप्त करें। * 'amarokuser' IDENTIFIED BY "पासवर्ड" के लिए; फ्लश PRIVILEGES;

    1.    KZKG ^ गारा कहा

      मैंने लंबे, लंबे समय के लिए अमारॉक का उपयोग नहीं किया है, लेकिन यदि आप एक डीबी का उपयोग करते हैं जो MySQL है, तो सिद्धांत रूप में इसे उस तरह से भी काम करना चाहिए।

  4.   कार्लोस एंड्रेस रेस्ट्रेपो कहा

    नमस्ते, यह अच्छा होगा यदि आपने लिनक्स में वेब सर्वर के खिलाफ सुरक्षा के लिए एक प्रविष्टि बनाई, उनमें से कई के पास उचित सुरक्षा नहीं है और उसी का व्यवस्थापक ठीक से विशेषज्ञ नहीं है, वे केवल चीजों की सुविधा देते हैं, उदाहरण के लिए उपयोग सर्वर में सिमलिंक एक ही सर्वर पर अन्य खातों की कॉन्फ़िगरेशन फ़ाइलों को पढ़ने की अनुमति देता है कई प्रशासक इस बारे में अनजान हैं और यही कारण है कि वेबसाइट प्रसार को कम करती है

    सादर

    1.    KZKG ^ गारा कहा

      नमस्ते,
      साइट 🙂 में आपका स्वागत है

      वास्तव में मैं इस मामले में अभी तक खुद को एक विशेषज्ञ नहीं मानता हूं, लेकिन मैं उन छोटे ज्ञान का योगदान करने की कोशिश करूंगा जो मैंने वर्षों से अर्जित किए हैं myself

      एक और चीज जो कई नेटवर्क प्रशासक नहीं करते हैं, व्यक्तिगत रूप से एपाचे वाली साइटों को विशेषाधिकार देते हैं, अर्थात्, उपयोगकर्ता और समूह www-data (या समान), जो प्रत्येक साइट के लिए एक अलग है, और बदले में इनमें से प्रत्येक को पिंजरे में रखता है। ।

      सादर

  5.   हैकलॉपर775 कहा

    अच्छा सुझाव

    सादर

    1.    KZKG ^ गारा कहा

      धन्यवाद

  6.   नैनो कहा

    मैं आपके टर्मिनल की उपस्थिति से नफरत करता हूं, पृष्ठभूमि पत्र मुझे अपनी एकाग्रता से बाहर निकालते हैं। आप एक कमबख्त पागल xD हैं

    इसके अलावा, यह दिलचस्प है क्योंकि मैंने उन चीजों से सेवा के दयनीय मामलों को देखा है।

    अब, न केवल यह निर्भर करता है कि, सुरक्षा कैसे डेटाबेस का निर्माण किया गया था, एक शिक्षक ने मुझे समझाया, लेकिन मैं अभी तक डीबी में डूबा नहीं हूं ... हमें MongoDB = डी के साथ गड़बड़ करना चाहिए दिन

  7.   कार्लोस कोरोनेल कहा

    बस आज मेरे साथ मेरे किराए के सर्वर के साथ हुआ

    मैंने आपके कदमों का पालन किया, मैं cpanel में गया और MYSQL डेटाबेस की तलाश की और यह मुझे बताता है कि यह क्रम से बाहर है।

    मुझे नहीं पता कि रूट उपयोगकर्ता के तहत अब कैसे प्रवेश करना है
    मैं इसमें एक नवजात शिशु हूं, लेकिन यहां पढ़ने से आपको बहुत कुछ सीखने को मिलता है, मुझे उम्मीद है कि आप मेरा उपयोग करने के लिए मार्गदर्शन करेंगे

    1.    KZKG ^ गारा कहा

      नमस्कार 🙂
      आपके पास एक होस्टिंग (SharedHosting) या VPS (वर्चुअल सर्वर) क्या है?

      यदि आपके पास एक होस्टिंग है और VPS नहीं है, तो आपको यह देखना चाहिए कि क्या आपके होस्टिंग में SSH है (उस कंपनी के तकनीकी समर्थन से संपर्क करें जिसने आपको होस्टिंग बेची और उनसे पूछा कि एसएसएच के माध्यम से कैसे पहुंचें), एक बार जब आप एसएसएच के माध्यम से प्रवेश करते हैं, तो उपयोगकर्ता रूट नहीं होगा, लेकिन जब आप उस वेब एप्लिकेशन को स्थापित करते हैं, तो आपको उस उपयोगकर्ता का उपयोग करना होगा।

      वास्तव में आपका एक जटिल विषय है, क्योंकि वेरिएंट और संभावनाएं बहुत सारे हैं, इसलिए मैं सुझाव देता हूं कि आप हमारे मंच में एक नया विषय खोलें, वहां यह आपकी मदद करने के लिए अधिक आरामदायक होगा - » http://foro.desdelinux.net

      अभिवादन 😀

  8.   बॉसब्रोनडेम कहा

    अच्छा है,

    मैं समझता हूं कि रूट को छोड़कर किसी भी उपयोगकर्ता को सभी विशेषाधिकार नहीं देना अच्छा है। हालाँकि, जब से मैंने phpmyadmin स्थापित किया है एक नया उपयोगकर्ता "phpmyadmin" सभी विशेषाधिकारों के साथ बनाया गया है। यह तर्कसंगत लगता है कि यह मामला है, क्योंकि यह MySQL में डेटाबेस का प्रबंधन करने के लिए केवल एक ग्राफिकल संस्करण है। वैसे भी, मैं यह सुनिश्चित करना चाहूंगा कि क्या यह ठीक है जैसा कि यह है या अगर मुझे उपयोगकर्ता "phpmyadmin" के विशेषाधिकारों में कुछ संशोधन करना चाहिए।

    बधाई और धन्यवाद!

  9.   Emmanuel कहा

    अति उत्कृष्ट…
    मैं उन लोगों में से एक हूं जो सब कुछ जड़ से करते हैं, लेकिन आपने मेरे दोस्त को खोल दिया है ।।
    बहुत बहुत धन्यवाद…