Zabezpečení databáze

PanVP

Zabezpečení databáze
« kdy: 23. 10. 2019, 03:03:14 »
Ahoj,

řeším zajímavý problém, potřebuji přistupovat do databáze MySQL na VPSku.

A) můžu vystrčit port MySQL (spíš máničkaDB) ...to nepřijde dobré
B) můžu tam nastavit VPN a nejprve se připojovat VPN klientem ...ale to tam zase bude běžet VPN server a na ten se dá střílet
C) můžu vytáčet VPN připojení domů na Cisco ...to mi zase může čubčit lokální síť na VPSu... asi ne dobrý nápad
D) připojovat se do DB přes SSH tunel? SSH server tam samozřejmě je že.
E) nastavit portknocking a otvírat port pro máňu po zaklepání?

Co jiného?

Zatím mi přijde nejlepší tunelovat přes SSH. Vytočím SSH tunel a připojovat se k přes něj?
https://www.linode.com/docs/databases/mysql/create-an-ssh-tunnel-for-mysql-remote-access/

Něco lepšího? Hm?
« Poslední změna: 23. 10. 2019, 03:06:19 od PanVP »


robac

  • ***
  • 198
    • Zobrazit profil
    • E-mail
Re:Zabezpečení databáze
« Odpověď #1 kdy: 23. 10. 2019, 06:09:02 »
Něco lepšího? Hm?
Nastaveni pristupu (i SSH) pouze z localhostu  :)
Dal bych tam MySQL pres TLS a omezil IP (firewall, MySQL login), ktere mohou pristupovat nebo SSH tunel.

Je nejaky duvod tahat MySQL pres internet?

Re:Zabezpečení databáze
« Odpověď #2 kdy: 23. 10. 2019, 07:24:45 »
Útočit se dá jak na VPN server tak na SSH server. Když už tam SSH server je, je nejjednodušší udělat ten tunel. Někteří SQL klienti (třeba DataGrid) s tím umí rovnou pracovat – v rámci konfigurace spojení zadáte i údaje pro SSH tunel a nepotřebujete nic dalšího.

Vilith

  • *****
  • 660
    • Zobrazit profil
Re:Zabezpečení databáze
« Odpověď #3 kdy: 23. 10. 2019, 07:37:11 »
Nikdy nevolit variantu "připojení z VPSky domů"

Vždy se připojovat z bezpečnějšího (lépe zabezpečeného) prostředí do méně bezpečné zóny (na méně důvěryhodná zařízení)

Pokud je na VPSce otevřená ssh služba pro přístup z firmy, tak je nejsnazší ji využít i pro přístup k DB (tunelovat MySQL port)

Re:Zabezpečení databáze
« Odpověď #4 kdy: 23. 10. 2019, 10:25:49 »
Vsechny ssh tunelare bych poslal nekam.

Pokud nestaci restrikce na IP, tak pouzit vpn.


PanVP

Re:Zabezpečení databáze
« Odpověď #5 kdy: 23. 10. 2019, 11:33:51 »
se připojovat z bezpečnějšího prostředí do méně bezpečné zóny

Zajímavá teorie, ale jak chcete vysvětlit to, že se ve většině případů připojují potenciálně napadnutelní klienti do obvykle bezpečnější firmy? Tj. připojení do VPN z domácího PC. Z počítačů vývojářů (které mohou být napadené přes GIT/NUGET/stažených knihoven) do počítačů zákazníků.

Ještě se nad tím zamyslím, ale nepřijde mi to jako silná argumentace.
Resp. v tomto konkrétním případě to dává smysl, ale fakticky se to tak nikdy neděje.

Skutečně to vidím na ten SSH tunel.

nebo SSH tunel

Rozbíhat TLS pro MySQL...by bylo o poznání pracnější a omezení na IP přináší požadavky na konfiguraci.

Ten SSH tunel je zadarmo.

Vsechny ssh tunelare bych poslal nekam

Proč?

Vilith

  • *****
  • 660
    • Zobrazit profil
Re:Zabezpečení databáze
« Odpověď #6 kdy: 23. 10. 2019, 12:31:18 »
Běžní VPN uživatelé se připojují do speciální interní bezpečnostní zóny určené jen pro tyto uživatele. Tam máte jistotu, kdo se tam přihlásil, a jejich počítače by měly splňovat určité bezpečnostní standardy (třeba člen AD, aktualizovaný aktivní antivir, apod). A mají povoleno využívat jen definované funkce, protokoly a aplikace

Ale to není stav běžné malé firmy, kdy se akceptují určitá (větší) bezpečnostní rizika

Obecně VPN uživatel nemá co v INSIDE dělat. A do interní DMZ se už vůbec nedostane, maximálně na vybrané služby, které tato zóna nabízí

_Jenda

  • *****
  • 1 550
    • Zobrazit profil
    • https://jenda.hrach.eu/
    • E-mail
Re:Zabezpečení databáze
« Odpověď #7 kdy: 23. 10. 2019, 12:41:45 »
A) můžu vystrčit port MySQL (spíš máničkaDB) ...to nepřijde dobré
Ano, to bych raději nedělal. MySQL sice podporuje TLS, ale podpora v klientech je taková všelijaká (řešil jsem třeba nějaký binding pro C# který neumožňoval rozumně kontrolovat certifikáty a šlo tedy udělat MITM) a už byla i jedna díra přímo v mysql serveru.

B) můžu tam nastavit VPN a nejprve se připojovat VPN klientem ...ale to tam zase bude běžet VPN server a na ten se dá střílet
Dá, ale vždycky musí existovat něco, na co se dá střílet. (v případě E se dá třeba střílet na port knocking démon, navíc knocking nebývá kryptograficky zabezpečený)

C) můžu vytáčet VPN připojení domů na Cisco ...to mi zase může čubčit lokální síť na VPSu... asi ne dobrý nápad
Tak na tom Ciscu může být firewall. Jenom bych si vzhledem k historii Cisca dal pozor aby ta VPN fakt byla P :). (e.g. kontrola certifikátů, nepoužití MSCHAPv2)

Co jiného?
Můžeš dát před MySQL server socat/stunnel a autentizaci klientským certifikátem.

Re:Zabezpečení databáze
« Odpověď #8 kdy: 23. 10. 2019, 15:02:30 »
Schází zásadní údaj: Co od toho očekáváte a jaký je typický scénář použití. Pro příležitostné připojení je ssh tunel jednoduchostí a bezpečností nepřekonatelný. Pro jiný způsob použití bude ale situace jiná.

Jose D

  • *****
  • 850
    • Zobrazit profil
Re:Zabezpečení databáze
« Odpověď #9 kdy: 23. 10. 2019, 15:16:55 »
řeším zajímavý problém, potřebuji přistupovat do databáze MySQL na VPSku.

mě to přijde jako standardní usecase pro site-to-site VPN.

PanVP

Re:Zabezpečení databáze
« Odpověď #10 kdy: 23. 10. 2019, 17:10:53 »
ro příležitostné připojení je ssh tunel jednoduchostí a bezpečností nepřekonatelný

Jedná se o úlohu, která se provádí 1x za hodinu, kontrolér se připojí do databáze, během minuty provede kontroly hodnot, naplánované úkoly (aktualizace, posbírá logy (ty do DB ukládá místní klient)) a spojení se ukončí.
Počet takových VPS nebude vysoký, nižší desítky.

SSH tam stejně běží, musí tam být tak jako tak pro správu.

Přes noc se mi to rozleželo v hlavě. Přístup přes SSH tunel nevyžaduje žádnou dodatečnou konfiguraci ani změnu image VPS.