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
- Instalace VSFTPD Nejprve nainstalujte VSFTPD pomocí YUM:
sudo yum install vsftpd
- 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
- 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;
- 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
- 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
- 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
- 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í.