Vsftpd
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