Práce na dálku kvůli pandemii Covid-19 znamená nárůst významu izolovaných infrastruktur; konkrétněji takové, ke kterým lze přistupovat pouze prostřednictvím vnitřní sítě, ale způsobem, aby do systému mohli kdykoli a odkudkoli přistupovat oprávněné osoby z vnějšího světa.
V tomto článku se podělíme o několik základních kroků, které musíte implementovat s MongoDB, abyste zajistili bezpečný přístup při správě databáze.
Zabezpečení MongoDB
Před vzdáleným přístupem k databázi MongoDB musíte provést „zpevnění“ prostředí. Na straně infrastruktury nastavte následující:
Povolte ověřování MongoDB
Povolení této funkce je povinné bez ohledu na to, zda chceme přistupovat k databázi MongoDB z interní sítě nebo z externí sítě. Před povolením autorizace musíte nejprve vytvořit administrátora v MongoDB. Můžete spustit níže uvedený příkaz a vytvořit administrátora na vašem serveru mongoDB:
$ mongo
> use admin
> db.createUser(
{
user: "admin",
pwd: "youdontknowmyp4ssw0rd",
roles: [ "root" ]
}
);
Výše uvedený příkaz vytvoří nového uživatele s názvem admin s právy root. Funkci MongoDB Auth můžete povolit otevřením souboru /etc/mongod.conf a přidáním následujícího řádku:
security:
authorization: 'enabled'
Nezapomeňte restartovat službu mongoDB, aby se změny projevily. Výše uvedený příkaz omezí přístup k databázi, pouze ten, kdo má přístupové údaje, je oprávněn se přihlásit.
Nastavení rolí a oprávnění
Abychom zabránili zneužití přístupu k MongoDB, můžeme implementovat přístup na základě rolí vytvořením několika rolí a jejich oprávnění.
Ujistěte se, že máte seznam uživatelů, kteří potřebují přístup k databázi, a porozuměli potřebám a povinnostem každého jednotlivce. Vytvořte role a těmto vytvořeným rolím přiřaďte oprávnění. Poté můžete svému uživateli přiřadit roli na základě odpovědností.
Tento přístup nám pomáhá minimalizovat zneužití pravomocí a okamžitě identifikovat roli a uživatele, když se stane něco nechtěného.
Nakonfigurujte připojení SSL / TLS
MongoDB podporuje připojení SSL / TLS pro zabezpečení dat při přenosu. Chcete-li to implementovat, musíte si vygenerovat svůj vlastní klíč SSL, můžete jej vygenerovat pomocí openssl. Chcete-li povolit podporu SSL / TLS, můžete upravit soubor /etc/mongod.conf a přidat následující parametr:
net:
tls:
mode: requireTLS
certificateKeyFile: /etc/mongo/ssl/mongodb.pem
Po přidání těchto parametrů je třeba restartovat službu MongoDB. Pokud máte architekturu replik MongoDB, musíte je použít na každý uzel. SSL je také potřeba, když klient bude přistupovat k MongoDB, ať už ze strany aplikace nebo přímo od klienta.
Pro produkční použití byste měli používat platné certifikáty vygenerované a podepsané jednou certifikační autoritou. Vy nebo vaše organizace můžete generovat a udržovat certifikáty jako nezávislá certifikační autorita nebo používat certifikáty generované dodavateli TLS/SSL třetích stran. Zabránit použití certifikátu s vlastním podpisem, pokud se nejedná o důvěryhodnou síť.
Omezit port databáze
Musíte se ujistit, že na serveru brány firewall nebo zařízení brány firewall je otevřen pouze port MongoDB, a ujistěte se, že nejsou otevřené žádné další porty.
Zabezpečení připojení MongoDB
Vzdálené připojení přes veřejný internet představuje riziko přenosu dat od místních uživatelů na databázový server a naopak. Útočníci mohou přerušit propojení, což je v tomto případě známé jako MITM (Min-in-The-Middle) útok. Zabezpečení připojení je velmi nutné, když spravujeme/spravuje databázi na dálku, některé věci, které můžeme použít k ochraně našeho přístupu k databázi, jsou následující:
Přístup k soukromé síti
VPN (Virtual Private Network) je jednou ze základních věcí, když chceme bezpečně přistupovat k naší infrastruktuře zvenčí. VPN je soukromá síť, která využívá veřejné sítě pro přístup ke vzdáleným webům. Nastavení VPN vyžaduje hardware, který musí být připraven na straně privátní sítě, kromě toho klient potřebuje také software VPN, který podporuje přístup do privátní sítě.
Kromě použití VPN je dalším způsobem přístupu k serveru MongoDB přes port přesměrování portů přes SSH nebo lépe známý jako SSH Tunneling.
Použití SSL / TLS z klienta do databázového serveru
Kromě implementace zabezpečeného přístupu pomocí VPN nebo SSH tunelování můžeme použít SSL / TLS, které bylo dříve nakonfigurováno na straně MongoDB. Potřebujete pouze klíč SSL, který máte, a zkuste se připojit k databázi pomocí klíče SSL.
Povolit monitorování databáze
Je nezbytné, aby služba monitorování porozuměla aktuálnímu stavu databází. Monitorovací server lze nainstalovat pod veřejnou doménu, která má povoleno SSL / TLS, takže automatický přístup k prohlížeči může používat HTTPs.
Závěr
Je opravdu zábavné pracovat z domova, můžete komunikovat se svými dětmi a zároveň sledovat svou databázi. Musíte dodržovat výše uvedené pokyny, abyste se ujistili, že nebudete napadeni nebo vám nebudou odcizena data při vzdáleném přístupu k vaší databázi.