GNU/Linux >> Znalost Linux >  >> Linux

Jak převzít kontrolu nad zabezpečením MongoDB

Hackeři jsou stále sofistikovanější a vědí, jak zneužít zranitelnosti. Pokud máte ve své databázi MongoDB citlivá data, je důležité brát zabezpečení vážně. Ale jak? Nebojte se! Tento tutoriál vám pomůže!

V tomto tutoriálu se naučíte chránit své databáze MongoDB a odrazit hackery nastavením bezpečnostních opatření.

Čtěte dále a začněte přebírat kontrolu nad zabezpečením MongoDB!

Předpoklady

  • Tento výukový program bude praktickou ukázkou. Chcete-li pokračovat, ujistěte se, že máte následující:
  • Na vašem počítači se systémem Linux je nainstalován MongoDB.
  • Uživatel bez oprávnění root s sudo privilegia.

Vytvoření vyhrazeného administrativního uživatele

MongoDB nemá žádný vestavěný autentizační systém. Ve výchozím nastavení má kdokoli s přístupem k databázi úplná administrátorská oprávnění – příliš nebezpečné! Jak zabezpečit databázi? Vytvoříte uživatele s administrátorskými právy a uzamknete databáze pro tohoto administrátora.

Toto nastavení vám umožňuje poskytnout jednomu uživateli přístup s oprávněními správce a zároveň omezit, co může každý uživatel v databázi dělat. Například vývojáři by měli mít přístup pouze pro čtení k databázím, zatímco administrátoři mohou vytvářet a upravovat data.

1. Otevřete svůj terminál a spusťte mongo níže uvedený příkaz bez jakýchkoli argumentů. Tento příkaz vám umožní připojit se k vašemu prostředí MongoDB jako výchozí uživatel správce.

Tento uživatel správce je výkonný, protože má plný přístup pro čtení i zápis do všech databází na serveru a je nejlepší se tomuto uživateli vyhnout pro každodenní práci.

mongo

Zobrazí se varování, že Řízení přístupu není povoleno …., Jak je ukázáno níže.

Toto varování znamená, že kdokoli, kdo má přístup k serveru MongoDB, může s databázemi provádět požadované akce. Tyto akce zahrnují, ale nejsou omezeny na smazání, zrušení a aktualizaci databází.

Toto varování se zobrazuje proto, že jste ještě nepovolili řízení přístupu. Zatím si s tím nedělejte starosti. V následující části se dozvíte, jak povolit řízení přístupu.

2. Dále spusťte show dbs příkaz k zobrazení všech databází na serveru, včetně admin databáze, které by běžný uživatel neměl vidět.

show dbs

3. Spusťte use admin příkaz níže pro přepnutí do databáze správce, protože se zaměřujete na vytvoření vyhrazeného administrativního uživatele. Tento příkaz změní kontext vaší aktuální databáze tak, aby používal databázi správce, jak je uvedeno níže.

MongoDB používá administrátorskou databázi k ukládání pravidel řízení přístupu a poskytuje vestavěné ověřování, uživatelská jména a hesla pro uživatele a jejich role. Správcovskou databázi nemůžete smazat ani přejmenovat, protože je to nezbytné pro funkčnost databáze.

use admin

4. Nyní zkopírujte a vložte níže uvedený kód do shellu mongo a stiskněte Enter. Tento kód vytvoří uživatele s názvem AdminATA , s heslem LDWbPf6Fy9Ezs3Mv , ale můžete použít různé přihlašovací údaje, jak chcete.

Tento nový uživatel má čtení/zápis (readWriteAnyDatabase ) přístup do všech databází a administrátorský přístup ke všem sbírkám. Tento uživatel však nemá žádná oprávnění k odstranění/odstranění databáze a nemůže zrušit ani změnit oprávnění jiných uživatelů.

Po spuštění příkazu a zobrazí se chyba, znovu zkontrolujte kód a zkuste to znovu.

# The db.createUser() method creates a new user on the current database, with the privileges specified by roles.
db.createUser(
{
# Specifying the username AdminATA, but you can enter whatever username you like
user: "AdminATA",
# The passwordPrompt() method is a universal helper function 
# that tells the MongoDB shell to prompt you for a password for the AdminATA user.
pwd: passwordPrompt(),
# Specifying  the roles you want your AdminATA user to have.
roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ]
}
)

5. Po zobrazení výzvy zadejte bezpečné heslo, jak je znázorněno níže, a stiskněte klávesu Enter.

Níže vidíte Úspěšně přidaného uživatele zpráva. Tento výstup potvrzuje, že jste úspěšně vytvořili uživatele s oprávněními správce a omezili je na nejmenší požadovaná oprávnění.

V tomto okamžiku již máte administrativního uživatele s názvem AdminATA, který může dělat vše, co potřebujete, v databázi, aniž by dal přístup všem.

6. Nakonec spusťte příkaz exit a opusťte mongo shell.

exit

Přidání zabezpečení povolením ověřování

Nyní, když máte administrátora, přidáte další vrstvu zabezpečení povolením ověřování. Tím umožníte přístup k databázi pouze uživatelům se správnými přihlašovacími údaji.

Autentizace se týká procesu ověřování připojení, obvykle poskytnutím uživatelského jména a hesla nebo použitím ověřovacího tokenu. Autentizace zajišťuje, že jste tím, za koho se vydáváte, a ne podvodníkem, který se snaží získat přístup ke zdrojům.

1. Povolte ověřování úpravou konfiguračního souboru MongoDB následujícím způsobem a uložte změny:

  • Otevřete /etc/mongod.conf soubor ve vašem oblíbeném textovém editoru. Soubor /etc/mongod.conf obsahuje konfiguraci vašeho clusteru MongoDB.
  • Vyhledejte #security a zrušte jeho komentář odstraněním # symbol před směrnicí, jak je uvedeno níže. Tato direktiva říká MongoDB, aby hledala nastavení zabezpečení v konfiguračním souboru.
  • Přidejte nový řádek pod zabezpečení direktiva, která říká autorizace:povoleno . Upozorňujeme, že autorizace:povolena řádek je odsazený (má na začátku dvě mezery), jak je znázorněno níže.

2. Dále spusťte následující systemctl příkaz k restartování serveru MongoDB, aby se změny projevily.

sudo systemctl restart mongod

3. Nakonec spusťte níže uvedený příkaz a zobrazte stav vaší služby MongoDB.

sudo systemctl status mongod

Níže vidíte řádek, který říká Aktivní:aktivní (běžící) zeleným textem, což znamená, že váš server MongoDB běží a je připraven přijímat připojení.

Testování, zda autentizace funguje

Právě jste povolili ověřování, ale jak víte, že funguje? Přihlásíte se k administrativnímu uživateli, abyste otestovali a zajistili, že vaše ověřování funguje zobrazením databází.

1. Spusťte následující příkazy pro přístup k mongo shell, jak jste to udělali v části „Vytvoření vyhrazeného administrativního uživatele“ (krok jedna).

mongo

Jak můžete vidět níže, již se vám nezobrazuje Řízení přístupu není povoleno… upozornění na povolení ověřování. Místo toho dostanete zprávu, která vám sdělí verzi vašeho serveru MongoDB a prostředí MongoDB.

2. Poté znovu spusťte show dbs příkaz ke kontrole, zda máte stále přístup k databázi.

show dbs

Příkaz by vám měl zobrazit všechny databáze, dokonce i databázi správce. Ale jak vidíte níže, nic se nezobrazuje. Proč? Zobrazení seznamu databází je oprávnění vyhrazené pouze pro administrativní uživatele.

Neověřili jste svůj mongo shell pro použití role správce, takže nemáte oprávnění prohlížet seznam databází.

S povoleným ověřováním se připojení nezdaří, pokud se někdo pokusí o přístup k databázi pomocí připojovacího řetězce, který neobsahuje správná pověření.

Ověřování připojovacích řetězců je základní součástí zabezpečení MongoDB a měli byste implementovat ověřování na všech vrstvách aplikace. Všechna připojení k MongoDB musí používat ověřovací řetězec skládající se z přihlašovacích údajů. Tyto přihlašovací údaje zahrnují správné uživatelské jméno a heslo.

3. Spusťte exit příkaz k ukončení prostředí MongoDB.

exit

4. Nyní spusťte níže uvedený příkaz a přihlaste se do prostředí MongoDB pomocí svého nově vytvořeného administrátorského uživatelského jména (-u ) a heslo (-p ). Nahraďte AdminATA s uživatelským jménem, ​​které jste vytvořili v části „Vytvoření vyhrazeného administrativního uživatele“ (krok čtyři).

--authenticationDatabase parametr říká shellu MongoDB, aby se autentizoval proti admin databáze.

mongo -u AdminATA -p --authenticationDatabase admin

5. Po zobrazení výzvy zadejte své heslo pro administrátora.

6. Nakonec znovu spusťte show dbs příkaz a zkuste zjistit, zda můžete zobrazit všechny databáze.

show dbs

Tentokrát, jak vidíte níže, se zobrazí seznam databází, protože jste administrátor.

Závěr

V tomto kurzu jste se naučili, jak se připojit, abyste vytvořili administrativního uživatele a povolili ověřování. Naučili jste se převzít kontrolu nad zabezpečením MongoDB a omezit, kdo může přistupovat k databázím na vašem serveru.

V tomto okamžiku se musíte rozhodnout, kdo má k čemu přístup. Co vás tedy čeká dál? Možná se dozvíte, jak bezpečně používat kontejner MongoDB?


Linux
  1. Jak můžete chránit svůj počítač?

  2. Jak vytvořit zálohu databáze prostřednictvím ovládacího panelu Plesk

  3. Ovladač jasu – převezměte úplnou kontrolu nad jasem monitoru

  1. Jak přidat uživatele na plochu Linuxu

  2. Jak vytvořit databázi a kolekci v MongoDB

  3. Jak vytvořit novou databázi nebo databázového uživatele v ovládacím panelu Plesk

  1. Zabezpečení CI/CD – Jak zabezpečit kanál CI/CD

  2. Jak přiřadit uživatele k databázi MySQL v cPanel

  3. Jak vytvořit uživatele databáze MySQL v cPanel