Távoli kapcsolatok engedélyezése a MySQL-hez

Ha MySQL adatbázissal(MySQL database) dolgozik , akkor már tisztában van azokkal a kihívásokkal, amelyekkel az adatbázis biztonságban tartása során szembe kell néznie. Az SQL(SQL) -befecskendezést használó adatbázis-hackelési kísérletektől a brutális erőszakos támadásokig nehéz megőrizni adatait, különösen, ha távolról dolgozik adatbázissal.

Vannak módok az SQL -kiszolgálók konfigurálására, hogy lehetővé tegye a távoli kapcsolatokat, de óvatosnak kell lennie, mivel a távoli kapcsolatok engedélyezése egy MySQL - kiszolgálón az adatbázis könnyű célpontjává válhat a hackerek számára. Ha biztonságos távoli kapcsolatokat szeretne engedélyezni egy MySQL -adatbázishoz, a következőket kell tudnia.

Mielőtt elkezded(Before You Begin)

Mielőtt bármilyen módosítást hajtana végre a MySQL -adatbázison, fontos, hogy biztonsági másolatot készítsen az adatbázisról(backup your database) , különösen, ha éles kiszolgálón dolgozik (aktívan használt kiszolgáló). Bármilyen változtatást hajt végre az adatbázison vagy az azt tároló kiszolgálón, súlyos adatvesztéshez vezethet, ha valami elromlik.

Azt is tapasztalhatja, hogy a szerver kapcsolatainak módosítása megakadályozhatja, hogy később hozzáférjen. Ha ez megtörténik, további támogatásért konzultálnia kell a kiszolgáló rendszergazdájával. Jó ötlet, ha a módosításokat egy helyileg futtatott MySQL - kiszolgálón próbálja ki, hogy ellenőrizze, működnek-e a módosítások, mielőtt távolról kipróbálná őket.

Valószínű az is, hogy ha távoli kiszolgálón hajt végre módosításokat, biztonságos módra lesz szüksége a csatlakozáshoz és a módosításokhoz. Az SSH (Secure Shell)(SSH (Secure Shell)) gyakran a legjobb módja ennek, mivel lehetővé teszi a távoli szerverhez való csatlakozást. Az SSH segítségével a helyi hálózaton lévő kiszolgálókhoz is csatlakozhat, például a Raspberry Pi-n(hosted on a Raspberry Pi) .

Ez az útmutató végigvezeti a MySQL beállításának lépésein, hogy engedélyezze a távoli kapcsolatokat, de először gondoskodnia kell arról, hogy közvetlen vagy távoli hozzáféréssel rendelkezzen a MySQL -kiszolgálót tároló kiszolgálóhoz.

Tegyük fel(Suppose) , hogy nincs távoli hozzáférése a szerverhez SSH -n keresztül (például). Ebben az esetben nem tudja beállítani a MySQL -adatbázist úgy, hogy közvetlenül engedélyezze a távoli kapcsolatokat, kivéve, ha a root mySQL-fiókja már lehetővé teszi a távoli kapcsolatokat. Tehát a folytatáshoz először létre kell hoznia ezt a kapcsolatot.

A MySQL konfigurációs fájl szerkesztése(Editing Your MySQL Configuration File)

A MySQL(MySQL) távoli kapcsolatok engedélyezéséhez való konfigurálásának első lépése a MySQL konfigurációs fájl szerkesztése. Ebben a szakaszban ez az útmutató feltételezi, hogy már csatlakozott a szerverhez, PC-hez vagy Mac -hez, amely távolról tárolja mySQL-adatbázisát, és rendelkezik konzol-hozzáféréssel. 

Alternatív megoldásként beállíthat egy helyi MySQL -kiszolgálót nyílt terminál segítségével Mac vagy Linux rendszeren , vagy szövegszerkesztővel Windows rendszeren(Windows) .

  1. Kezdésként használja a kívánt konzolszövegszerkesztőt a MySQL(MySQL) adatbázisfájl szerkesztéséhez . Linuxon(Linux) írja be a sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf egy terminál- vagy SSH -ablakba a fájl szerkesztéséhez a nano - szerkesztővel (feltéve, hogy a MySQL -adatbázis az alapértelmezett helyen van)

  1. Ha Windows rendszert(Windows) futtat , nyissa meg a File Explorer programot, és nyissa meg a (File Explorer)MySQL -telepítést tartalmazó mappát (pl. C:/Program Files/MySQL/MySQL Server 8.0 ). Nyissa meg a my.ini fájlt az alapértelmezett szövegszerkesztővel (pl. Jegyzettömb(Notepad) ) a bejegyzésre duplán kattintva. Ha nincs ott, először hozza létre a fájlt(create the file first) .

  1. Mac rendszeren nyisson meg egy terminálablakot, és írja be a sudo sudo nano /usr/local/etc/my.cnf . Ez a MySQL alapértelmezett konfigurációs fájlja, ha a MySQL - t (MySQL) homebrew segítségével(using homebrew) telepítette .

A fent hivatkozott helyek a MySQL konfigurációs fájlok alapértelmezett helyei. Ha ezek a parancsok nem működnek, manuálisan kell megkeresnie a megfelelő fájlokat ( my.cnf , mysqld.cnf vagy my.ini ) a megfelelő fájl elérési útjának megkereséséhez.(my.ini)

Biztonságos kötési cím IP-tartományának beállítása(Setting a Safe Bind-Address IP Range)

  1. Miután megnyitotta a MySQL konfigurációs fájlt a kiszolgálóhoz, használja a billentyűzet nyílbillentyűjét a fájl kötési cím(bind-address) szakaszának eléréséhez. Ez az IP-tartomány korlátozza az adatbázishoz fűződő kapcsolatokat, amelyek általában úgy vannak beállítva, hogy csak a 127.0.0.1 -et használó helyi gépről vagy kiszolgálóról csatlakozzanak .

  1. Ha úgy szeretné konfigurálni MySQL -adatbázisát, hogy engedélyezze a kapcsolatokat a jelenlegi internetkapcsolatot használó eszközökről, először keresse meg nyilvános IP-címét(find your public IP address) , majd cserélje le a 127.0.0.1 -et ezzel az IP-címmel. Alternatív megoldásként cserélje ki annak az eszköznek vagy kiszolgálónak az IP-címére, amelyről engedélyezni kívánja a kapcsolatokat.

  1. Bizonyos esetekben érdemes engedélyezni az összes(all) távoli kapcsolatot egy MySQL - adatbázishoz. Ez rendkívüli kockázattal jár(extreme risk) , és nem használható éles szerveren. Ha azonban engedélyezni szeretné ezt, cserélje ki a 127.0.0.1 -et 0.0.0.0 -ra .

  1. Jegyezze fel a port értékét az Alapbeállítások(Basic Settings) részben. Erre a következő részben lesz szükség. Ha nem látható, a rendszer az alapértelmezett értéket használja, amely a 3306 -os port . Hozzáadhatja saját portját, ha egy új sorba beírja a port = xxxxxxxx helyére egy megfelelő portértéket ír.

  1. Miután konfigurálta a kötési címet(bind-address ) a MySQL konfigurációs fájljában, mentse a fájlt. Ha Linuxot használ(Linux) , válassza a Ctrl + O és a Ctrl + X ehhez. Mac rendszeren válassza a Command + O és a Command + X . A Windows-felhasználók a Fájl(File ) > Mentés(Save) menüpont kiválasztásával menthetnek .

  1. Ezután a Linux és Mac felhasználók újraindíthatják a MySQL -t a (MySQL)mysql.server stop && mysql.server start vagy a mysql.server restart beírásával . Előfordulhat, hogy a sudo segítségével(using sudo) emelni kell a parancsot (pl. sudo mysql.server restart ), és a mysql.server fájl megfelelő elérési útját kell használnia (pl. /usr/local/bin/mysql.server ).

  1.  Ha a fenti parancs nem működik, próbálja meg helyette a sudo service mysql restartot(sudo service mysql restart ) .

  1. A MySQL(MySQL) újraindításához Windows rendszeren(Windows) nyisson meg egy új PowerShell -ablakot úgy, hogy jobb gombbal kattintson a Start menüre, és válassza a Windows PowerShell (Rendszergazda)(Windows PowerShell (Admin)) lehetőséget . A PowerShell ablakba írja be a net stop mysql80 , majd a net start mysql80 szót , és a (net start mysql80)mysql80 helyére a számítógépen található megfelelő szolgáltatásnév kerüljön.

Ha nem biztos a megfelelő szolgáltatásnévben Windows rendszeren(Windows) , írja be a net start szót(net start) a megtalálásához. Ha nem tudja újra betölteni a konfigurációt, indítsa újra a kiszolgálót, és töltse be újra a MySQL -t manuálisan (ha szükséges).

A tűzfalak konfigurálása(Configuring Your Firewalls)

Ebben a szakaszban a MySQL -adatbázisnak lehetővé kell tennie a távoli kapcsolatokat a MySQL konfigurációs fájljában (MySQL)kötési címként(bind-address) beállított IP-címet használó eszközökről (vagy minden eszközről, ha ezt az értéket 0.0.0.0 -ra állítja helyette). A kapcsolatokat azonban továbbra is blokkolja az eszköz vagy a hálózati tűzfal(device or network firewall) .

A legtöbb kiszolgáló és számítógép tűzfalat használ a kapcsolatok blokkolására, hacsak nincs hozzáférés egy adott porthoz. A konfigurálás lépései attól függően változnak, hogy a MySQL -t Windows vagy Linux rendszeren futtatja . A Mac(Mac) tűzfalai alapértelmezés szerint le vannak tiltva, így nem kell további lépéseket itt végrehajtania.

Konfigurálja a Linux tűzfalakat(Configure Linux Firewalls)

Sok Linux-kiszolgáló az iptables -t használja alapértelmezett tűzfal-segédprogramként. Az alábbi lépések végrehajtásával konfigurálhatja.

  1. Nyisson meg egy terminál- vagy SSH -kapcsolatot, és írja be a sudo iptables -A INPUT -p tcp -s XXXX -dport YYYY -j ELFOGADÁS parancsot(sudo iptables -A INPUT -p tcp -s X.X.X.X –dport YYYY -j ACCEPT) . Cserélje ki az XXXX -et annak az eszköznek az IP-címével, amelyről engedélyezni kívánja a MySQL - kapcsolatokat ,(from) és cserélje ki az YYYY -t a MySQL konfigurációs fájljában található megfelelő portértékre (pl. 3306 ).

  1. Ez ideiglenesen konfigurálja a tűzfalat. Ha Debian- vagy Ubuntu-alapú Linux -kiszolgálót használ, tegye véglegessé ezt a módosítást a (Linux)sudo netfilter-persistent save és a sudo netfilter-persistent reload parancs beírásával a terminálba vagy az SSH-ablakba.

Ha az iptables nem az alapértelmezett tűzfaleszköz a Linux -disztribúcióhoz, további információért olvassa el a disztribúció felhasználói kézikönyvét. Ha bizonyos csomagok (például a netfilter-persistent ) nem érhetők el, használja a disztribúció szoftvertár eszközét a telepítéshez (pl. sudo apt install netfilter-persistent ).

Konfigurálja a Windows tűzfalakat(Configure Windows Firewalls)

Ha Windows rendszerű számítógépet vagy kiszolgálót használ az adatbázis tárolására, a tűzfalat az alábbi lépésekkel konfigurálhatja:

  1. Kattintson a jobb gombbal(Right-click) a Start menüre, és válassza a Futtatás lehetőséget(Run) .

  1. A Futtatás(Run) mezőbe írja be a wf.msc parancsot(wf.msc) , és kattintson az OK gombra(OK) .

  1. A Windows Defender ablakában válassza a Bejövő szabályok(Inbound Rules ) > Új szabály lehetőséget(New Rule) .

  1. Az Új bejövő szabály varázsló(New Inbound Rule Wizard) ablakban válassza a Port > Tovább lehetőséget(Next) .

  1. A következő menüben válassza ki a TCP -t a lehetőségek közül, írja be a 3306 -ot (vagy a (3306 )MySQL konfigurációs fájljában felsorolt ​​portértéket ), majd válassza a Tovább(Next) lehetőséget .

  1. A Művelet(Action) menüben hagyja meg az alapértelmezett beállítást a Kapcsolat(Allow the connection) engedélyezése beállításnál, majd válassza a Tovább(Next) lehetőséget .

  1. Erősítse meg, hogy a szabályt minden hálózattípusra alkalmazni szeretné, majd válassza a Tovább(Next) lehetőséget . 

  1. Írjon be egy leíró nevet a szabálynak (pl. MySQL ) a megadott portba, majd válassza a Befejezés(Finish) lehetőséget, hogy hozzáadja a tűzfalszabályok listájához.

Ha problémái vannak a csatlakozással, ismételje meg a fenti lépéseket, és ügyeljen arra, hogy a tűzfal beállításaiban hozzon létre egy új kimenő szabályt ugyanazokkal az adatokkal (3306-os port stb.). (outbound rule )Előfordulhat, hogy be kell állítania a helyi hálózati útválasztót a szükséges blokkolt portok megnyitásához(open the necessary blocked ports) , hogy lehetővé tegye a bejövő és kimenő kapcsolatokat az adatbázishoz. 

Csatlakozás távoli kiszolgálóhoz MySQL használatával(Connecting to a Remote Server Using MySQL)

Miután a MySQL(MySQL) -adatbázist úgy konfigurálta , hogy lehetővé tegye a távoli kapcsolatokat, ténylegesen kapcsolatot kell létesítenie vele. Ezt megteheti a mysql paranccsal(mysql) ( Windows rendszeren (Windows)mysql.exe ) terminálból vagy PowerShell ablakból.

Ha Windows rendszert használ(Windows) , akkor a kezdés előtt meg kell győződnie arról, hogy a MySQL helyileg telepítve(MySQL is installed locally) van. A Mac felhasználók (Mac)a Homebrew(using homebrew) segítségével telepíthetik a MySQL -t a terminálról ( brew install mysql ), míg a Linux felhasználók a helyi alkalmazástárolójukat (pl. sudo apt install mysql ) használhatják a szükséges csomagok telepítéséhez.

Csatlakozás a MySQL-hez Linuxon vagy Macen(Connecting to MySQL on Linux or Mac)

  1. A távoli MySQL -kiszolgálóhoz való csatlakozáshoz Mac vagy Linux rendszeren nyisson meg egy új terminálablakot, és írja be a mysql -u felhasználónév -h XXXX:XXXX -p parancsot(mysql -u username -h X.X.X.X:XXXX -p) . Cserélje le az XXXX:XXXX értéket a távoli szerver IP-címére és portszámára (pl. 100.200.100.200:3306 ), valamint a felhasználónévre(username) a MySQL felhasználónevére.

  1. Amikor a rendszer kéri, erősítse meg jelszavát. Ha a csatlakozás sikeres, a terminálban megjelenik egy sikeres üzenet.

Csatlakozás a MySQL-hez Windows rendszeren(Connecting to MySQL on Windows)

  1. Ha egy távoli MySQL -kiszolgálóhoz szeretne csatlakozni Windows rendszeren(Windows) , nyisson meg egy új PowerShell -ablakot úgy, hogy jobb gombbal kattintson a Start menüre, és válassza a Windows PowerShell (Rendszergazda)(Windows PowerShell (Admin)) lehetőséget .

  1. Az új PowerShell ablakban írja be a cd “C:\Program Files\MySQL\MySQL Workbench 8.0\ ” parancsot a megfelelő mappa megadásához, és cserélje ki ezt a könyvtárat a megfelelő telepítési könyvtárra a számítógépen. Például, ha a MySQL verziója 8.0.1, használja helyette a MySQL Workbench 8.0.1 mappát.

  1. Innen írja .\mysql.exe -u username -h X.X.X.X:XXXX -p . Cserélje le az XXXX:XXXX értéket a távoli szerver IP-címére és portszámára (pl. 100.200.100.200:3306 ) és a felhasználónévre(username) egy távoli hozzáférést lehetővé tevő MySQL felhasználónévre (például root ). Kövesse(Follow) a képernyőn megjelenő további utasításokat.
  2. Amikor a rendszer kéri, adja meg jelszavát a bejelentkezési folyamat befejezéséhez és a MySQL - adatbázis távoli eléréséhez.

Ha ez nem működik, csatlakozzon a MySQL - kiszolgálót futtató kiszolgálóhoz vagy számítógéphez SSH használatával (vagy közvetlenül érje el) az alábbi lépésekkel és a -h localhost argumentum használatával. Ezután az alábbi lépések végrehajtásával létrehozhat egy megfelelő felhasználói fiókot.

Távoli felhasználói hozzáférés engedélyezése egy MySQL-adatbázishoz(Allowing Remote User Access to a MySQL Database)

Ekkorra már képesnek kell lennie arra, hogy távolról csatlakozzon a MySQL -kiszolgálóhoz a kiszolgáló root felhasználói fiókjával vagy egy másik, emelt szintű jogosultságokkal rendelkező felhasználói fiókkal. Mivel ez a hozzáférési szint nem biztonságos, érdemes lehet egy korlátozottabb fiókot létrehozni a MySQL - adatbázis eléréséhez.

Ennek a fióknak korlátozott hozzáférése lesz a MySQL -kiszolgálóhoz, így csak a kiválasztott adatbázisokkal tud együttműködni. Komolyabb változtatásokat nem tud majd végrehajtani, mint például más adatbázis-adatok elérése, új felhasználói fiókok létrehozása stb. 

Lehetővé kell tennie, hogy távolról bejelentkezzen a MySQL -kiszolgálóra. (MySQL)Ha nem tudja távolról használni root fiókját, akkor a mysql paranccsal távoli SSH - kapcsolaton keresztül, vagy közvetlenül a kiszolgálót üzemeltető számítógépen vagy kiszolgálón keresztül kell elérnie a szerver shelljét.

  1. A távoli MySQL shellben (a mysql eszközzel) írja be a CREATE USER “username”@”x.x.x.x” IDENTIFIED BY “password”; és válassza az Enter billentyűt(Enter) . Cserélje le a felhasználónevet(username ) a létrehozni kívánt felhasználónévvel, az xxxx helyére azt az IP-címet, amelyről csatlakozni kíván, a jelszót(password) pedig egy megfelelő jelszóra.

  1. Meg kell adnia új fiókját a szükséges engedélyekkel. Ehhez írja be: GRANT ALL ON databasename.* TO username@”x.x.x.x”; és cserélje ki az adatbázisnevet, a felhasználónevet(databasename, username, ) és az xxxx  -et a megfelelő adatokra. Ha szeretné, cserélje le az adatbázisnevet * (databasename)* , hogy hozzáférést biztosítson az összes adatbázishoz. 

Ha a hozzáférést megadta, a fenti szakaszban leírt lépésekkel távolról csatlakozhat a szerverhez az új fiókjával (pl. mysql -u felhasználónév -h XXXX:XXXX -p(mysql -u username -h X.X.X.X:XXXX -p) ).

Az adatbázis adatainak védelme(Securing Your Database Data)

Akár MySQL -lel, akár más típusú SQL -adatbázissal dolgozik, az adatbiztonság megőrzése érdekében fontos, hogy biztonságosan tartsa kapcsolatait. Ennek jó módja az, hogy SSH-kulcsokat generál a szerver távoli eléréséhez(generate SSH keys for remote access) , ahelyett, hogy elavult (és könnyen kitalálható) jelszavakra hagyatkozna.

Ha aggódik az adatvesztés miatt, könnyedén készíthet biztonsági másolatot adatbázisáról(back up your database) online. A legtöbb adatbázis Linux -kiszolgálókon fut – könnyedén automatizálhatja a Linux-fájlok biztonsági mentését(automate a Linux file backup easily) . Ha a MySQL -t Windows rendszeren(Windows) futtatja , beállíthat egy hasonló automatikus biztonsági mentési rendszert a Windows rendszerhez(automatic backup system for Windows) , amely lehetővé teszi az adatok vészhelyzetben történő visszaállítását.



About the author

Számítógép-programozó vagyok, és több mint 15 éve. Szakértelmem szoftveralkalmazások fejlesztésében és karbantartásában, valamint ezen alkalmazások technikai támogatásában rejlik. Számítógép-programozást is tanítottam középiskolásoknak, jelenleg pedig profi oktató vagyok.



Related posts