Pokud pracujete s Databáze MySQL, jste si již vědomi výzev, se kterými se potýkáte při zabezpečení své databáze. Od pokusů o hackování databáze pomocí injekcí SQL až po útoky hrubou silou je obtížné uchovat data v bezpečí, zvláště pokud pracujete s databází na dálku.
Existují způsoby, jak konfigurovat server SQL tak, aby umožňoval vzdálená připojení , ale musíte být opatrní, protože povolení vzdáleného připojení na serveru MySQL může z vaší databáze udělat snadný cíl pro hackery. Pokud chcete povolit zabezpečené vzdálené připojení k databázi MySQL, zde je to, co potřebujete vědět.
Před vámi Začněte
Před provedením jakýchkoli změn ve své databázi MySQL je důležité zálohovat databázi, zvláště pokud pracujete na produkčním serveru (server při aktivním používání). Jakékoli změny, které provedete ve své databázi nebo na serveru, který ji hostuje, mohou mít za následek vážnou ztrátu dat, pokud se něco pokazí.
Můžete také zjistit, že změny připojení vašeho serveru vám mohou zabránit v pozdějším přístupu. Pokud k tomu dojde, možná budete muset další podporu konzultovat se správcem serveru. Doporučujeme vyzkoušet všechny změny na místně spuštěném serveru MySQL a zkontrolovat, zda vaše změny fungují, než je vyzkoušíte na dálku.
Je také pravděpodobné, že pokud provádíte změny na vzdáleném serveru, Potřebuji bezpečný způsob připojení a provádění změn. SSH (Secure Shell)je často nejlepší způsob, jak toho dosáhnout, protože vám umožňuje připojení ke vzdálenému serveru. SSH můžete také použít k připojení k serverům ve vaší místní síti, například k těm hostované na Raspberry Pi.
Tato příručka vás provede kroky k konfiguraci MySQL tak, aby umožňovala vzdálená připojení, ale budete muset nejprve zajistit přímý nebo vzdálený přístup k serveru hostujícímu váš server MySQL.
Předpokládejme, že nemáte vzdálený přístup k vašemu serveru přes SSH (například). V takovém případě nebudete moci svou databázi MySQL konfigurovat tak, aby umožňovala vzdálená připojení přímo, pokud váš kořenový účet mySQL již vzdálená připojení neumožňuje. Toto připojení tedy budete muset nejprve navázat, než budete moci pokračovat.
Úprava konfiguračního souboru MySQL
První krok při konfiguraci MySQL pro povolení vzdáleného connections je upravit konfigurační soubor MySQL. V této fázi bude tato příručka předpokládat, že jste se již připojili k serveru, PC nebo Mac vzdáleně hostujícímu vaši databázi mySQL a máte přístup ke konzole.
Alternativně můžete konfigurovat místní server MySQL pomocí otevřeného terminálu na Macu nebo Linuxu nebo textového editoru ve Windows.
Místa uvedená výše jsou výchozí umístění pro konfigurační soubory MySQL. Pokud tyto příkazy nefungují, budete muset vyhledat příslušné soubory (my.cnf, mysqld.cnfnebo my.ini) ručně vyhledejte příslušnou cestu k souboru.
Nastavení bezpečného rozsahu IP adresy IP vazby
- Uživatelé Linuxu a Mac mohou MySQL restartovat zadáním mysql.server stop && mysql.server startnebo mysql.server restart. Možná budete muset povýšit příkaz pomocí sudo (např. sudo mysql.server restart) a použít příslušnou cestu k souboru mysql.server (např. /usr /local/bin/mysql.server).
Pokud si nejste jisti správným názvem služby v systému Windows, zadejte jej net starta vyhledejte jej. Pokud nemůžete znovu načíst konfiguraci, restartujte server a místo toho znovu načtěte MySQL ručně (je -li to nutné).
Konfigurace firewallů
V této fázi vaše databáze MySQL by měla umožňovat vzdálené připojení ze zařízení pomocí IP adresy, kterou jste nastavili jako hodnotu bind-addressv konfiguračním souboru MySQL (nebo ze všech zařízení, pokud nastavíte tuto hodnotu na 0,0.0.0místo toho). Připojení však bude i nadále blokováno vaším zařízením nebo síťovým firewallem.
Většina serverů a počítačů používá k blokování připojení bránu firewall, pokud není udělen přístup ke konkrétnímu portu. Kroky ke konfiguraci se budou lišit v závislosti na tom, zda používáte MySQL v systému Windows nebo Linux. Brány firewall pro počítače Mac jsou ve výchozím nastavení deaktivovány, takže zde nemusíte provádět žádné další kroky.
Konfigurace bran firewall systému Linux
Mnoho serverů Linux používá iptablesjako výchozí nástroj brány firewall. Můžete jej nakonfigurovat podle následujících kroků.
Pokud iptables není výchozím nástrojem brány firewall pro vaši distribuci Linuxu, budete potřebovat další informace v uživatelské příručce vaší distribuce. Pokud některé balíčky (například netfilter-persistent) nejsou k dispozici, nainstalujte jej pomocí nástroje pro ukládání softwaru vaší distribuce (např. sudo apt install netfilter-persistent).
Konfigurace firewallů Windows
Pokud k hostování databáze používáte počítač nebo server se systémem Windows, můžete bránu firewall nakonfigurovat pomocí těchto kroků:
Pokud máte potíže s připojením, zopakujte výše uvedené kroky , ujistěte se, že v nastavení brány firewall vytvoříte nové odchozí pravidlopomocí stejných podrobností (port 3306 atd.). Také budete možná muset nakonfigurovat směrovač místní sítě na otevřete potřebné zablokované porty, aby umožňoval příchozí i odchozí připojení k vaší databázi.
Připojení ke vzdálenému serveru pomocí MySQL
Po konfiguraci databáze MySQL, aby umožňovala vzdálená připojení, k ní budete muset skutečně navázat připojení. To lze provést pomocí příkazu mysql(mysql.exev systému Windows) z terminálu nebo z okna PowerShell.
Pokud používáte Windows, než začnete, musíte se ujistit, že MySQL je nainstalován lokálně. Uživatelé počítačů Mac mohou nainstalovat MySQL pomocí homebrew z terminálu (brew install mysql), zatímco uživatelé Linuxu mohou použít své místní úložiště aplikací (např. sudo apt install mysql) a nainstalujte potřebné balíčky.
Připojení k MySQL v Linuxu nebo Mac
Připojení k MySQL ve Windows
Pokud to nefunguje, připojte se k serveru nebo počítači hostujícímu váš server MySQL pomocí SSH (nebo k němu přistupujte přímo) pomocí těchto kroků a pomocí argumentu -h localhost. Poté můžete vytvořit vhodný uživatelský účet podle níže uvedených kroků.
Povolení vzdáleného přístupu uživatelů k databázi MySQL
V tomto okamžiku byste měli být možnost vzdáleného připojení k serveru MySQL pomocí kořenového uživatelského účtu vašeho serveru nebo jiného uživatelského účtu se zvýšenými oprávněními. Protože je tato úroveň přístupu nebezpečná, můžete pro přístup k databázi MySQL upřednostnit vytvoření omezenějšího účtu.
Tento účet bude mít omezený přístup k vašemu serveru MySQL, což mu umožní interakci pouze s vybranými databázemi. Nebude moci provádět vážnější změny, jako je přístup k dalším datům databáze, vytváření nových uživatelských účtů atd.
Budete se muset umět vzdáleně přihlásit ke svému serveru MySQL. Pokud nemůžete vzdáleně používat svůj root účet, budete muset vstoupit do shellu vašeho serveru pomocí příkazu mysqlprostřednictvím vzdáleného připojení SSH nebo přímým přístupem k počítači nebo serveru hostujícímu server.
S povoleným přístupem se pomocí kroků v sekci výše můžete vzdáleně připojit k vašemu serveru pomocí nového účtu (např. mysql -u uživatelské jméno -h XXXX: XXXX -p).
Zabezpečení dat vaší databáze
Ať už pracujete s MySQL nebo jiným typem SQL databáze, je důležité udržovat vaše připojení zabezpečená, aby byla zachována bezpečnost vašich dat. Dobrým způsobem, jak to udělat, je obrátit se na server generovat klíče SSH pro vzdálený přístup a nespoléhat se na zastaralá (a snadno uhodnutelná) hesla.
Pokud se obáváte ztráty dat, můžete snadno zálohujte svou databázi online. Většina databází je spuštěna na serverech Linux - můžete snadno automatizujte zálohování souborů Linux. Pokud používáte MySQL v systému Windows, můžete nastavit podobný systém automatického zálohování pro Windows, což vám umožní obnovit data v případě nouze.