HowTo: FTP-service met behulp van MySQL-database

Ondanks enige onzekerheid die MySQL kan omringen, werk ik persoonlijk nog steeds liever met deze DB dan met een andere. Ik heb niets tegen Postgre, ik heb MySQL gewoon een leven lang gebruikt en tot nu toe heb ik geen reden gehad om het gebruik ervan te heroverwegen.

Deze keer zal ik je leren hoe je een FTP-server moet installeren, maar niet alleen dat, ik zal je op een niet zo complexe manier leren hoe je gebruikers, wachtwoorden en andere gebruikersgegevens in een MySQL-database kunt laten opslaan en niet in accounts. lokaal.

Waarom doe je dit zo?

Simpel, want bij het maken van een back-up, het opnieuw installeren van een server of een andere belangrijke wijziging, zou het verplaatsen van de service net zo eenvoudig zijn als het kopiëren van een configuratiebestand en het exporteren van de MySQL-database naar FTP.

Om dit te bereiken zullen we gebruiken Puur FTPd, nou ... laten we beginnen 🙂

De FTP-service installeren met Pure-FTPd

1. Het eerste dat u moet doen, is het pakket installeren: pure-ftpd-mysql

In distro's zoals Debian of afgeleiden: aptitude installeert pure-ftpd-mysql

2. Eenmaal geïnstalleerd, hebben we de service gestart, maar we moeten hem stoppen, om hem te stoppen op systemen zoals Debian of afgeleide producten is het voldoende om:

/etc/init.d/pure-ftpd-mysql stop

Ik laat je echter een regel achter die de service zal stoppen, ongeacht de distro die je gebruikt:

ps ax | grep pure | grep -v grep | awk '{print $1}' | xargs kill

Als u deze regel in detail wilt begrijpen, lees dan Dit artikel

Voorwaarden voorbereiden op de MySQL-server

Ik heb niet lang geleden al uitgelegd hoe je een database en een gebruiker aanmaakt en die gebruiker machtigingen geeft in de database: Gebruikers en machtigingen in MySQL

Laten we verder gaan met wat gaan we hier doen? ...

1. We zullen een database maken, ja, maar eerst openen we MySQL:

mysql -u root -p

Hier plaatsen ze het root-wachtwoord en krijgen ze toegang tot de MySQL-terminal.

2. Eenmaal binnen MySQL gaan we door met het maken van de database mijnftpdb:

CREATE DATABASE myftpdb;

Let op de puntkomma «;»Aan het einde van de lijn.

3. Nu gaan we de gebruiker aanmaken mijnftpuser en we zullen toestemming geven om de gebruiker te gebruiken in de database die we zojuist hebben gemaakt, deze gebruiker zal als wachtwoord hebben mijnftpwachtwoord:

CREATE USER 'myftpuser'@'localhost' IDENTIFIED BY 'myftppassword';
GRANT ALL PRIVILEGES ON myftpdb.* TO 'myftpuser'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES ;

4. Klaar, we hebben de database gemaakt, de gebruiker en de rechten ingesteld. Nu moeten we de standaard (of schone) database importeren om dit compleet te maken. Om dit te doen, verlaten we eerst MySQL:

exit;

Laten we nu de standaarddatabase downloaden die ik u aanbied:

Download DB standaard

Of gebruik op de server de volgende regel:

wget http://ftp.desdelinux.net/myftpdb.sql

Klaar, we hebben het al op onze server, nu hoeft u alleen nog uw gegevens te importeren:

mysql -u root -p myftpdb < myftpdb.sql

En klaar!

Ze kunnen ook een webapplicatie gebruiken, zoals beheerder o PHPMyAdmin om de database te importeren, laat ik het proeven.

5. En dit alles om de voorwaarden van onze MySQL gereed te hebben.

FTP koppelen aan MySQL

Welnu, we hebben de FTP-service al geïnstalleerd, de MySQL-service geïnstalleerd en met onze databaseset ... nu hebben we alleen nodig, sluit u aan bij FTP-service met MySQL.

1. Eerst moeten we het configuratiebestand downloaden dat we voor het bovengenoemde zullen gebruiken. Laten we in de serverterminal de volgende regel plaatsen:

cd /etc/pure-ftpd/ && wget http://ftp.desdelinux.net/pure-ftpd-mysql.conf

2. Nu starten we de FTP-service die aangeeft dat deze moet worden gebruikt om MySQL-gebruikers te authenticeren, en we zullen ook aangeven welk configuratiebestand we moeten gebruiken om verbinding te maken met MySQL:

pure-ftpd-mysql -l mysql:/etc/pure-ftpd/pure-ftpd-mysql.conf

En voila 😀

Dit is voldoende om onze eigen FTP-server te installeren die authenticeert met een MySQL-database.

Als u wilt dat wanneer de server automatisch start, deze de FTP-service start, moet u het bestand invoeren /etc/rc.local de regel die we gebruiken om de FTP uit te voeren, dat wil zeggen, we plaatsen /etc/rc.local dit:

pure-ftpd-mysql -l mysql:/etc/pure-ftpd/pure-ftpd-mysql.conf

Trouwens, je hebt toegang tot FTP via elke browser, evenals FTP-clients zoals Filezilla ... en niet alleen dat, met bestandsbrowsers zoals Nautilus, Dolphin of PCManFM kun je ook bestanden downloaden en uploaden 😀

Test de gebruiker die in de database staat

Gebruikersnaam: testuser

Wachtwoord: testwachtwoord

Hoe FTP-gebruikers te beheren?

Als je bedenkt dat het een MySQL-database is, zoals ik hierboven al zei, volstaat het om PHPMyAdmin of Adminer te gebruiken. Gebruik gewoon uw favoriete applicatie om de database te beheren, die een enkele tabel bevat: gebruikers ... en daarin zijn de gebruikers, hier is een screenshot:

Als u een nieuwe gebruiker wilt maken, kunt u de bestaande regel dupliceren of klonen en de gegevens wijzigen die tussen beide gebruikers anders zouden zijn, hier laat ik u een screenshot zien:

Nou ... niets meer toe te voegen 🙂

Ik hoop dat dit nuttig voor je is en dat je weet, eventuele vragen of suggesties laat het me weten.

groeten

PD: In deze tutorial gebruiken we wachtwoorden die in de database zijn opgeslagen in platte tekst, als je meer beveiliging wilt, raad ik je aan om md5 te proberen 😉


Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: Miguel Ángel Gatón
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.

  1.   LiGNUXero zei

    ZEER GOED!!! Een paar weken geleden was ik dit aan het installeren, maar met vsftpd en ik ben niet overtuigd, dus ik ga dit proberen om te zien hoe het is. Dank je

    1.    KZKG ^ Gaara zei

      Dank je vriend.
      vsftpd Ik kan me niet herinneren wanneer ik het voor het laatst heb gebruikt ... een paar jaar geleden, ... of ik het ooit HAHA heb gebruikt. Op dit moment ben ik met PureFTPd meer dan tevreden 😀

  2.   gepast zei

    Zeer goede bijdrage!

    1.    KZKG ^ Gaara zei

      Bedankt compa 😀
      Je doet wat je kunt lol….

  3.   Computer Guardian zei

    Uuumm, interessant ... geef me het IP-adres van de DB dat ik die verzameling gebruikers en wachtwoorden bij de hand wil hebben 😉

    Wees niet slecht, man

    1.    KZKG ^ Gaara zei

      Ik begreep het niet hehehe ... over welke IP en DB heb je het?
      Als je bedoelt dat deze gegevens die ik in de tutorial heb ook op een server kunnen staan, ja daar heb je gelijk ... ze staan ​​in een FTP-service op een virtuele pc op mijn laptop, deze heeft een ZEER goede firewall (iptables) dus… HAHAHAHAHA natuurlijk zijn ze niet slecht LOL !!!

  4.   Computer Guardian zei

    Joroña wat een joroña…. Het zal ingewikkelder zijn dan het lijkt om te profiteren van een bepaalde kwetsbaarheid en die gegevens vast te leggen 😉

  5.   algabe zei

    Heel interessant!! 🙂

    1.    KZKG ^ Gaara zei

      Bedankt
      Dit is wat ik probeer ons te onderscheiden van de rest van de sites ... dat we proberen niet zo veel nieuws te plaatsen, maar als technische artikelen 😀

  6.   giskard zei

    Hoe snel is dit vergeleken met Samba? (alleen lokaal netwerk)

    1.    LiGNUXero zei

      dat samba en ftp 2 verschillende dingen zijn, ftp is een serieus protocol en smb alleen om het delen tussen win en linux te vergemakkelijken.
      Als u prestaties op het netwerk zoekt, gebruik dan een FTP-service, anders gebruik samba gewoon zonder problemen

      1.    KZKG ^ Gaara zei

        Precies.
        Laten we zeggen dat FTP een beetje serieuzer is dan Samba, althans naar mijn mening.

        Ik heb helemaal geen benchmarks gedaan, maar misschien is FTP iets sneller.

        1.    giskard zei

          Dank je. Ik gebruik Samba zodat ik vanaf mijn Wii-systeem (met wiimc) films en series kan kijken die ik download naar mijn computer. Maar wiimc kan ook verbinding maken met een ftp-server. Ik gebruikte Samba omdat het het gemakkelijkst was, maar ik was altijd geïntrigeerd als het sneller zou zijn met ftp. Ik zal het moeten proberen.

          1.    KZKG ^ Gaara zei

            Nou, je zou Apache ook gewoon op je pc kunnen mounten, en zodat de Wii verbinding zou maken, moet het sneller zijn dan samba ... en veel eenvoudiger te configureren dan FTP 😀

          2.    giskard zei

            De wiimc (een Wii-mediaspeler) accepteert alleen Samba- en FTP-verbindingen.

  7.   Max staal zei

    Uitstekend. Je hebt gewoon iets nodig aan dit soort artikelen (en de site in het algemeen) om alles perfect te maken; een CSS-sjabloon om de artikelen naar PDF of op papier te kunnen afdrukken.

  8.   LiGNUXero zei

    Ik weet niet of het de mijne zal zijn, maar het grote probleem hiermee is dat gebruikers alle mappen kunnen doorlopen, zelfs als ik ze een specifieke map geef zoals "/ var / www / user_site" als ze verbinding maken via ftp. overal toegang hebben vanaf mijn pc ¬¬
    dat is niet erg veilig haha

  9.   LiGNUXero zei

    HIER IS HET!!!
    Om te voorkomen dat de gebruikers die we maken door ons hele systeem kunnen navigeren, moeten we de parameter "-A" toevoegen bij het starten van de pure ...

    Dus wat we toevoegen aan de /etc/rc.local die je in de tutorial hebt geplaatst, is dit
    pure-ftpd-mysql -l mysql: /etc/pure-ftpd/pure-ftpd-mysql.conf

    en je moet het vervangen door deze andere:
    pure-ftpd-mysql -A -l mysql: /etc/pure-ftpd/pure-ftpd-mysql.conf

    Wordt het gewaardeerd? ... Deze nieuwe regel heeft de parameter -A om de directory te beperken waaraan we het toewijzen en niets anders, het kan maken, maar het kan geen niveau omhoog gaan.

    D: deze schattige pure-fptd

    1.    KZKG ^ Gaara zei

      Dank voor het topje 😀

  10.   Roberto zei

    Hallo, het is mogelijk om quota te implementeren in deze MySQL- en FTP-implementatie, ik heb momenteel een ftp-server met vsftpd en ik heb geen probleem met de quota, maar als virtuele gebruiker (aangemaakt in mysql) zijn de quota geldig? en de tweede is waar de bestanden die door gebruikers zijn geüpload, worden opgeslagen, dat wil zeggen, de mappen van elke gebruiker.

    1.    KZKG ^ Gaara zei

      In theorie kun je quota implementeren, in feite heeft de database de velden die ervoor zijn aangemaakt, en het configuratiebestand van de FTP-service heeft de queries hiervoor ingesteld, die ik in feite niet heb getest 😉

      Over waar de gebruikers de bestanden zouden plaatsen, definieer je het in het 5e veld, zie de screenshot: https://blog.desdelinux.net/wp-content/uploads/2012/09/phpmyadmin-screenshot-nuevo-usuario.jpg

  11.   Roberto zei

    Heel erg bedankt voor je reactie, ik ga dit systeem testen op een testserver en commentaar geven op de resultaten, hopelijk kan ik dat omdat het een geweldige methode is om alles op orde te hebben, en met een RAID heb je een stabiel back-upsysteem : D.

    1.    KZKG ^ Gaara zei

      Bedankt voor de reactie 🙂

  12.   Roberto zei

    Ik heb een vraag, ik ben er al in geslaagd om pure-ftp te installeren met mysql en quota, het probleem is nu hoe ik een account kan opschorten in de mysql-tabel zelf, zonder het gebruikerswachtwoord of geüploade bestanden te wijzigen.

    1.    KZKG ^ Gaara zei

      Ik kan twee manieren bedenken, de eenvoudigste is om de waarde van te veranderen Status van 1 tot 0, in theorie als het op 0 staat, is het account gedeactiveerd, probeer dit en vertel het me 🙂

  13.   birkhoff zei

    Roberto, hoe ben je erin geslaagd om de vergoedingen vast te stellen met deze faciliteit? Deel de informatie.
    Zeer goede toegang !!

    1.    Roberto Sotelo zei

      Birkhoff, net in mijn persoonlijke blog heb ik daar een onderwerp over gemaakt, ik laat de link voor je achter om te beoordelen:

      http://aprendelinux.net/instalar-servidor-ftp-pure-ftp-con-cuentas-virtuales-en-mysql/

  14.   klaus zei

    Groeten:

    Ik probeer alles te volgen, maar ik krijg fout 501 en vooral om te verwijzen naar het feit dat het wachtwoord onjuist is als ik weet dat het in orde is