Vsftpd

Z Wikiknih

Vsftpd je FTP démon s otevřeným zdrojovým kódem. Je často využíván jako základní a bezpečný FTP server v distribucích Linuxu.

Instalace[editovat | editovat zdroj]

  • typicky z balíčku určeného pro danou distribuci (příklad pro Fedoru)
yum install  vsftpd
  • nastavení pro spuštění démona při startu systému( příklad pro Fedoru)
chkconfig vsftpd on

Příklady nastavení[editovat | editovat zdroj]

anonymous_enable=YES
Nastavení povoluje přihlašování anonymním uživatelům. Implicitně je přihlašování anonymních uživatelů povoleno, lze zakázat zakomentováním volby nebo změny YES na NO.
local_enable=YES
Volba povoluje přihlášení všem systémovým uživatelům. Implicitní hodnota je NO.
local_umask=022
Volba nastavuje masku pro lokální uživatele. Maska 022 znamená, že vytvořený soubor/adresář bude moci číst a editovat pouze vlastník a skupina a ostatní mají pouze právo čtení.
listen=YES
Démon vsftpd bude spuštěn jako samostatný server.
listen_ipv6=YES
Volba zapíná podporu IPv6.

SSL a TLS[editovat | editovat zdroj]

  • vsftpd vyžaduje, aby byl soukromý klíč a certifikát v jednom souboru.
  • certifikát s klíčem nakopírovat například do adresáře /etc/vsftpd/vsftpd-cert-key.pem a nastavit příslušná práva( chmod 600).
  • co konfiguračního souboru přidáme následující direktivy (podpora SSL a TLS):
ssl_enable=YES
ssl_tlsv1=YES
rsa_cert_file=/etc/vsftpd/vsftpd.pem
force_local_logins_ssl=YES
force_local_data_ssl=YES

Virtuální uživatelé[editovat | editovat zdroj]

  • Podpora virtuálních uživatelů je v serveru vsftpd realizována za pomoci PAM. Jména a hesla uživatelů lze ukládat:
    • textový soubor (PAM modul pam_pwdfile)
    • .htaccess souborům serveru Apache, PAM modul (pam_pwdfile)
    • databáze (Berkeley DB, MySQL, PostgreSQL, ...), PAM modul (pam_userdb)

Využití modulu pam_pwdfile[editovat | editovat zdroj]

  • Výhodou tohoto řešení je snadná správa souboru s virtuálními uživateli a hesly (při malém počtu těchto uživatelů) a možnost sdílet tyto uživatele s uživateli Apache. Formát tohoto souboru je následující:
jmeno:zašifrované_heslo
  • virtuální uživatelé musí být mapováni přes konkrétního systémového uživatele:
useradd virtualftp -m  -d /data/virtualftp -s /sbin/nologin
  • Obsah souboru /etc/pam.d/ftp:
auth      required pam_pwdfile.so   pwdfile /etc/vsftpd/passwd 
account   required pam_permit.so
  • Přidání uživatele pomocí utility htpasswd:
htpasswd -c /etc/vsftpd/passwd ondra
  • Direktivy pro konfigurační soubor:
anonymous_enable=NO
local_enable=YES

guest_enable=YES
guest_username=virtualftp
chroot_local_user=YES

pam_service_name=ftp

local_root=/data/virtualftp/$USER
user_sub_token=$USER
  • Adresář pro daného virtuálního uživatele vytvoříme
mkdir /data/virtualftp/ondra
chown virtualftp:virtualftp /data/virtualftp/ondra
chmod 750 /data/virtualftp/ondra

Využití modulu pam_userdb[editovat | editovat zdroj]

  • Nejprve je nutné vytvořit textový soubor který obsahuje:
ondra
Ofddhrtt54A?
    • Liché řádky obsahují uživatelská jména, sudé řádky hesla.
  • Nahrajeme uživatele do databáze:
db_load -T -t hash -f db.txt /etc/vsftpd/passwd.db
  • Obsah souboru /etc/pam.d/ftp:
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/passwd
account required /lib/security/pam_userdb.so db=/etc/vsftpd/passwd
  • Directivy pro konfigurační soubor:
anonymous_enable=NO
local_enable=YES

guest_enable=YES
guest_username=virtualftp
chroot_local_user=YES

pam_service_name=ftp

write_enable=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO

Externí odkazy[editovat | editovat zdroj]