vsftpd

Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledání


vsftpd (anglicky Very Secure FTP Daemon) je v informatice název pro FTP server používaný v unixových systémech. Program je chráněn GPL licencí, jeho cílem je poskytnutí stability, výkonu a flexibility nastavení.

Vlastnosti vsftpd[editovat | editovat zdroj]

  • podpora IPv6
  • pasivní i aktivní mód přenosu
  • podpora SSL
  • podpora lokálních i anonymních uživatelů
  • virtuální IP adresy
  • nastavení pro každého uživatele zvlášť
  • datové limity pro IP adresy nebo uživatele

Používání vsftpd[editovat | editovat zdroj]

Balíček vsftpd je standardní součástí většiny linuxových distribucí. Konfigurační soubor je umístěn v souboru /etc/vsftpd/vsftpd.conf. Server lze konfigurovat pomocí odkomentování/zakomentování jednotlivých voleb.

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é_heslo456456456
  • 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]