Jak: FTP služba využívající databázi MySQL

Navzdory určité nejistotě, která může obklopovat MySQL, osobně stále dávám přednost práci s touto databází před použitím jiné. Nemám nic proti Postgre, jednoduše jsem používal MySQL po celý život a doposud jsem neměl důvod přehodnotit jeho použití.

Tentokrát vás naučím, jak nainstalovat FTP server, ale nejen to, naučím vás ne tak složitým způsobem, jak zajistit, aby uživatelé, hesla a další uživatelská data byla ukládána v databázi MySQL, a ne v účtech místní.

Proč to takhle?

Jednoduché, protože při zálohování, přeinstalování serveru nebo jakékoli jiné významné změně by přesun služby byl stejně jednoduchý jako kopírování konfiguračního souboru a export databáze MySQL na FTP.

K dosažení tohoto cíle použijeme Čistý FTPd, no ... pojďme začít 🙂

Instalace služby FTP pomocí Pure-FTPd

1. Nejprve je třeba nainstalovat balíček: čistý-ftpd-mysql

V distribucích jako Debian nebo deriváty: aptitude install pure-ftpd-mysql

2. Po instalaci jsme službu spustili, ale musíme ji zastavit, zastavit ji v systémech, jako je Debian nebo deriváty, stačí:

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

Nechám vám však linku, která zastaví službu bez ohledu na distro, které používáte:

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

Pokud chcete tomuto řádku porozumět podrobně, přečtěte si tento článek

Příprava podmínek na serveru MySQL

Už jsem nedávno vysvětlil, jak vytvořit databázi, uživatele a dát tomuto uživateli oprávnění v databázi: Uživatelé a oprávnění v MySQL

Pojďme k tomu, co zde budeme dělat? ...

1. Vytvoříme databázi ano, ale nejdříve přistupujeme k MySQL:

mysql -u root -p

Sem vloží heslo uživatele root a vstoupí do terminálu MySQL.

2. Jakmile jsme uvnitř MySQL, pokračujeme v tvorbě databáze myftpdb:

CREATE DATABASE myftpdb;

Všimněte si středníku «;»Na konci řádku.

3. Nyní vytvoříme uživatele myftpuser a udělíme oprávnění k použití uživatele v databázi, kterou jsme právě vytvořili, tento uživatel bude mít jako heslo moje heslo:

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

4. Připraveno, vytvořili jsme databázi, uživatele a nastavili jsme oprávnění. Abychom to dokončili, musíme nyní importovat výchozí (nebo čistou) databázi. Nejprve ukončíme MySQL:

exit;

Nyní si stáhněte výchozí databázi, kterou vám nabízím:

Ve výchozím nastavení stáhnout DB

Nebo na serveru použijte následující řádek:

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

Připraveno, již je na našem serveru, nyní zbývá pouze importovat vaše data:

mysql -u root -p myftpdb < myftpdb.sql

A připraven!

Mohou také použít nějakou webovou aplikaci jako Správce o PhpMyAdmin importovat databázi, nechám na vkusu.

5. A to je vše, abychom měli připraveny podmínky našeho MySQL.

Propojení FTP s MySQL

Službu FTP již máme nainstalovanou, službu MySQL nainstalovanou a s naší databázovou sadou ... teď už jen potřebujeme, připojte se ke službě FTP s MySQL.

1. Nejprve si musíme stáhnout konfigurační soubor, který pro výše uvedené použijeme. V terminálu serveru položme následující řádek:

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

2. Nyní spustíme službu FTP a řekneme jí, aby použila k ověření uživatelů MySQL, a také označíme, který konfigurační soubor se má použít k připojení k MySQL:

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

A voila 😀

To stačí k instalaci vlastního FTP serveru, který se autentizuje pomocí databáze MySQL.

Pokud chcete, aby při každém automatickém spuštění serveru byla spuštěna služba FTP, musíte do souboru vložit /etc/rc.local řádek, který používáme k provádění FTP, tj. vložili jsme jej /etc/rc.local tento:

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

Mimochodem, můžete přistupovat k FTP pomocí libovolného prohlížeče, stejně jako FTP klientům, jako je Filezilla ... a nejen to, pomocí prohlížečů souborů, jako je Nautilus, Dolphin nebo PCManFM, můžete také stahovat a nahrávat soubory 😀

Otestujte uživatele, který je v databázi

Uživatelské jméno: testuser

heslo: testovací heslo

Jak spravovat uživatele FTP?

Vzhledem k tomu, že se jedná o databázi MySQL, jak jsem řekl výše ... použití PHPMyAdmin nebo Adminer bude stačit. Ke správě databáze, která obsahuje jednu tabulku, použijte svou oblíbenou aplikaci: uživatelé ... a v něm jsou uživatelé, zde je snímek obrazovky:

Pokud chcete vytvořit nového uživatele, můžete duplikovat nebo klonovat stávající řádek a změnit data, která by se mezi oběma uživateli lišila, zde vám ukážu snímek obrazovky:

No ... nic víc přidat 🙂

Doufám, že je to pro vás užitečné a víte, jakékoli dotazy nebo návrhy mi dejte vědět.

pozdravy

PD: V tomto tutoriálu používáme hesla uložená v databázi ve formátu prostého textu, pokud chcete větší zabezpečení, doporučuji zkusit md5 😉


Zanechte svůj komentář

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *

*

*

  1. Odpovědný za údaje: Miguel Ángel Gatón
  2. Účel údajů: Ovládací SPAM, správa komentářů.
  3. Legitimace: Váš souhlas
  4. Sdělování údajů: Údaje nebudou sděleny třetím osobám, s výjimkou zákonných povinností.
  5. Úložiště dat: Databáze hostovaná společností Occentus Networks (EU)
  6. Práva: Vaše údaje můžete kdykoli omezit, obnovit a odstranit.

  1.   LiGNUxer řekl

    VELMI DOBŘE!!! Před pár týdny jsem to instaloval, ale s vsftpd a nejsem přesvědčen, takže to zkusím zjistit, jak to je. Děkuji

    1.    KZKG ^ Gaara řekl

      Děkuji příteli.
      vsftpd Nepamatuji si, kdy jsem to použil naposledy ... bude to už pár let, ... pokud jsem to někdy použil HAHA. V tuto chvíli jsem s PureFTPd více než šťastný 😀

  2.   řádný řekl

    Velmi dobrý příspěvek!

    1.    KZKG ^ Gaara řekl

      Díky compa 😀
      Děláte, co můžete ...

  3.   Počítačový strážce řekl

    Uuumm, zajímavé ... podejte mi IP databáze, kterou chci mít po ruce tuto sbírku uživatelů a hesel 😉

    Nebuď zlý, člověče

    1.    KZKG ^ Gaara řekl

      Nechápal jsem hehehe ... o čem IP a DB mluvíš?
      Pokud máte na mysli, že tato data, která jsem vložil do tutoriálu, mohou být také na serveru, ano, máte pravdu ... jsou ve službě FTP na virtuálním počítači na mém notebooku, má VELMI dobrý firewall (iptables), takže … HAHAHAHAHA samozřejmě nejsou zlí LOL !!!

  4.   Počítačový strážce řekl

    Joroña, co je joroña…. Bude to komplikovanější, než se zdá, využít určitou zranitelnost a zachytit tato data 😉

  5.   Algave řekl

    Velmi zajímavé!! 🙂

    1.    KZKG ^ Gaara řekl

      Děkuji
      To je to, co se snažím odlišit od ostatních stránek ... že se snažíme dát ne tolik novinek, ale spíše technické články 😀

  6.   giskard řekl

    Jak rychlé je to ve srovnání se Sambou? (pouze místní síť)

    1.    LiGNUxer řekl

      že samba a ftp jsou 2 různé věci, ftp je seriózní protokol a smb jen pro usnadnění sdílení mezi win a linuxem.
      Pokud hledáte výkon v síti, použijte službu FTP, jinak bez problémů používejte sambu

      1.    KZKG ^ Gaara řekl

        Přesný.
        Řekněme, že FTP je trochu vážnější než Samba, alespoň podle mého názoru je.

        Neudělal jsem vůbec žádné měřítka, ale možná je FTP o něco rychlejší.

        1.    giskard řekl

          Děkuji. Používám Sambu, abych z konzoly Wii (pomocí wiimc) mohl sledovat filmy a seriály, které stáhnu do svého počítače. Ale wiimc se může také připojit k ftp serveru. Použil jsem Sambu, protože to bylo nejjednodušší, ale vždy mě zajímalo, jestli to bude s ftp rychlejší. Budu to muset zkusit.

          1.    KZKG ^ Gaara řekl

            Můžete také jednoduše připojit Apache k počítači, a tak by se Wii připojilo, musí to být rychlejší než samba ... a mnohem jednodušší konfigurace než FTP 😀

          2.    giskard řekl

            Wiimc (přehrávač Wii Media Player) přijímá pouze připojení Samba a FTP.

  7.   Max ocel řekl

    Vynikající. K těmto typům článků (a obecně k webu) potřebujete něco, aby bylo vše dokonalé; šablonu CSS, která umožňuje tisk článků do formátu PDF nebo na papír.

  8.   LiGNUxer řekl

    Nevím, jestli to bude moje vlastní, ale velký problém s tím je, že uživatelé mohou procházet všechny adresáře, i když jim poskytnu konkrétní adresář jako „/ var / www / user_site“, pokud se připojí pomocí ftp, mají přístup kdekoli z mého počítače ¬¬
    to není moc bezpečné haha

  9.   LiGNUxer řekl

    TADY TO JE!!!
    Abychom zabránili uživatelům, které vytváříme, v procházení celého našeho systému, musíme při spuštění čistého ... přidat parametr "-A"

    Takže to, co přidáme do /etc/rc.local, který jste vložili do tutoriálu, je toto
    pure-ftpd-mysql -l mysql: /etc/pure-ftpd/pure-ftpd-mysql.conf

    a musíte jej nahradit tímto jiným:
    pure-ftpd-mysql -A -l mysql: /etc/pure-ftpd/pure-ftpd-mysql.conf

    Je to oceněno? ... Tento nový řádek má parametr -A, který omezuje adresář pouze na který jej přiřadíme a nic jiného, ​​může vytvářet, ale nemůže se o úroveň výš.

    D: tento roztomilý čistý-fptd

    1.    KZKG ^ Gaara řekl

      Díky za tip 😀

  10.   Roberto řekl

    Dobrý den, je možné implementovat kvóty v této implementaci MySQL a FTP, v současné době mám server ftp s vsftpd a nemám problém s kvótami, ale být virtuálním uživatelem (vytvořeným v mysql) budou kvóty platné? a druhá je místo, kde jsou uloženy soubory nahrané uživateli, tj. které jsou adresáři každého uživatele.

    1.    KZKG ^ Gaara řekl

      Teoreticky můžete implementovat kvóty, ve skutečnosti má databáze pro ni vytvořená pole a konfigurační soubor služby FTP má nastavené dotazy, což jsem ve skutečnosti netestoval

      Informace o tom, kam by uživatelé soubory umístili, definujete v 5. poli, viz screenshot: https://blog.desdelinux.net/wp-content/uploads/2012/09/phpmyadmin-screenshot-nuevo-usuario.jpg

  11.   Roberto řekl

    Mockrát vám děkuji za komentář, chystám se otestovat tento systém na testovacím serveru a komentovat výsledky, doufám, že můžu, protože je to skvělá metoda, mít vše v pořádku a s RAID máte stabilní systém zálohování: D.

    1.    KZKG ^ Gaara řekl

      Děkuji za komentář 🙂

  12.   Roberto řekl

    Mám otázku, již se mi podařilo nainstalovat pure-ftp s mysql a kvótami, problémem nyní je, jak mohu pozastavit účet ze samotné tabulky mysql, aniž bych změnil jeho uživatelské heslo nebo nahrané soubory.

    1.    KZKG ^ Gaara řekl

      Napadají mě dva způsoby, nejjednodušší je změnit hodnotu Status od 1 do 0, teoreticky, pokud je na 0, účet je deaktivován, zkuste to a řekněte mi 🙂

  13.   Birkhoff řekl

    Roberto, jak se ti podařilo pomocí tohoto zařízení nastavit poplatky? Sdílejte prosím informace.
    Velmi dobrý vstup !!

    1.    Roberto Sotelo řekl

      Birkhoff, právě na svém osobním blogu jsem o tom vytvořil téma, odkaz nechávám na kontrolu:

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

  14.   klaus řekl

    Zdravím:

    Snažím se sledovat všechno, ale dostanu chybu 501 a hlavně se budu odvolávat na skutečnost, že heslo je nesprávné, když vím, že je v pořádku