Košík je prázdný

Very Secure FTP Daemon (VSFTPD) je oblíbený a vysoce bezpečný FTP server, který podporuje virtuální uživatele. Tento návod vás provede procesem konfigurace VSFTPD s virtuálními uživateli v databázi MySQL na CentOS 7. Virtuální uživatelé jsou užiteční pro izolaci FTP přístupu a pro zvýšení bezpečnosti, protože nevyžadují systémové účty.

Předpoklady

  • Nainstalovaný CentOS 7
  • Přístup k root uživateli nebo uživateli s sudo oprávněními
  • Nainstalovaný a konfigurovaný MySQL nebo MariaDB server

Instalace a základní konfigurace VSFTPD

  1. Instalace VSFTPD Nejprve nainstalujte VSFTPD pomocí YUM:
    sudo yum install vsftpd
    ​
  2. Základní konfigurace Po instalaci otevřete konfigurační soubor VSFTPD (/etc/vsftpd/vsftpd.conf) a proveďte následující úpravy:
    • Vypněte anonymní FTP přístup změnou anonymous_enable=YES na anonymous_enable=NO.
    • Povolte lokální uživatele změnou local_enable=NO na local_enable=YES.
    • Povolte zápis do adresáře změnou write_enable=NO na write_enable=YES.

 

Nastavení MySQL databáze pro virtuální uživatele

  1. Vytvoření databáze a uživatele V MySQL nebo MariaDB vytvořte novou databázi a uživatele pro VSFTPD:
    CREATE DATABASE vsftpd;
    GRANT ALL PRIVILEGES ON vsftpd.* TO 'vsftpd_user'@'localhost' IDENTIFIED BY 'password';
    FLUSH PRIVILEGES;
    ​
  2. Vytvoření tabulky pro virtuální uživatele Vytvořte tabulku pro uchování údajů virtuálních uživatelů:
    USE vsftpd;
    CREATE TABLE accounts (
      id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
      username VARCHAR(30) NOT NULL,
      password VARCHAR(255) NOT NULL
    );
    ​

 

Integrace VSFTPD s MySQL

  1. Instalace PAM modulu Pro autentizaci virtuálních uživatelů přes databázi nainstalujte PAM (Pluggable Authentication Modules) modul pro MySQL:
    sudo yum install pam_mysql
    ​
  2. Konfigurace PAM pro VSFTPD Vytvořte nový PAM konfigurační soubor pro VSFTPD (/etc/pam.d/vsftpd_virtual) s následujícím obsahem:
    auth required pam_mysql.so user=vsftpd_user passwd=password host=localhost db=vsftpd table=accounts usercolumn=username passwdcolumn=password crypt=2
    account required pam_mysql.so user=vsftpd_user passwd=password host=localhost db=vsftpd table=accounts usercolumn=username passwdcolumn=password crypt=2
    
  3. Aktualizace konfigurace VSFTPD pro PAM Upravte soubor /etc/vsftpd/vsftpd.conf a přidejte následující řádky:
    guest_enable=YES
    guest_username=ftp
    pam_service_name=vsftpd_virtual
    virtual_use_local_privs=YES
    user_sub_token=$USER
    local_root=/var/ftp/virtual/$USER
    chroot_local_user=YES
    ​

Po dokončení konfigurace restartujte VSFTPD a povolte službu v systému:

sudo systemctl restart vsftpd
sudo systemctl enable vsftpd

Nyní byste měli být schopni přihlásit se k FTP serveru pomocí virtuálních uživatelských účtů definovaných v databázi. Ujistěte se, že jste nastavili odpovídající oprávnění a existenci domovských adresářů pro virtuální uživatele.

Tento návod poskytuje základní přehled o tom, jak nastavit VSFTPD s virtuálními uživateli v databázi na CentOS 7. Podle potřeby můžete konfiguraci dále přizpůsobit pro zvýšení bezpečnosti nebo pro specifické požadavky vašeho prostředí.