|
|
|
|
|
VSFTPDVirtuální uživatelé
Podpora virtuálních uživatelů je v serveru VSFTPD realizována za pomoci
PAM (Pluggable Authentication Modules) modulů. Jména virtuálních uživatelů a
jejich hesla lze ukládat buď do textových souborů podobných
pam_pwdfile
Modul pam_pwdfile využívá pro ukládání virtuálních uživatelů a jejich hesel stejný formát souboru
jako server Apache ( 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í: username:password_crypt Pro někoho může být jednou z nevýhod tohoto řešení to, že modul pam_pwdfile není standardní součástí distribuce CentOS a nenalezl jsem jej ani v žádném z neoficiálních repozitářů pro CentOS. Zdrojový balíček pro modul pam_pwdfile však lze stáhnout například z těchto stránek: http://www.invoca.ch/pub/packages/pam_pwdfile/. Při základní znalosti vytváření binárních balíčků z balíčků zdrojových nebo po přečtení článku o Buildování RPM balíčků asi nebude pro nikoho problém si případně upravit SPEC soubor a daný binární RPM balíček si vytvořit.
Jak jsem již předeslal výše, virtuální uživatelé musí být mapováni přes
nějakého konkrétního systémového uživatele, který nemusí mít validní shell.
Tohoto uživatele si založím následujícím způsobem (více informací
o jednotlivých volbách příkazu useradd virtualftp -m -c "Virtual FTP user" -d /data/virtualftp -s /sbin/nologin
Defaultně je v konfiguračním souboru
Obsah souboru auth required pam_pwdfile.so pwdfile /etc/vsftpd/passwd account required pam_permit.so
Pro autentizaci uživatelů použijeme modul pam_pwdfile a ten bude uživatelské
účty hledat v souboru
Teď si již můžeme do souboru htpasswd -c /etc/vsftpd/passwd tachec htpasswd /etc/vsftpd/passwd ondra
Pozor, pokud budeme chtít hesla šifrovat pomocí MD5, tak jsem zjistil, že modul pam_pwdfile neakceptuje Apache variantu MD5, takže pak je zapotřebí využít jiný program než Nezapomeneme na bezpečně nastavená práva na souboru s hesly: chmod 600 /etc/vsftpd/passwd
Zbývá nám poslední krok konfigurace a tím je nadefinování virtuálních
uživatelů v konfiguračním souboru serveru VSFTPD, tedy v souboru
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
Volbou
Volba
Volbou
Volba 500 OOPS: cannot change directory:/data/virtualftp/ondra Adresář pro daného virtuálního uživatele vytvoříme například takto: mkdir /data/virtualftp/ondra chown virtualftp:virtualftp /data/virtualftp/ondra chmod 750 /data/virtualftp/ondra
Poslední volba 500 OOPS: cannot change directory:/data/virtualftp/$USER
Pokud chceme virtuálním uživatelům povolit zápis do jejich adresáře,
tak povolíme volbu pam_userdb
Tento PAM modul slouží k autentizování uživatelů a hesel uložených v
Berkeley databázi a je standardní součástí balíčku pam.
Knihovny Berkeley databáze nalezneme v balíčku
Nejprve si vytvoříme klasický textový soubor do kterého uložíme uživatelská
jména a hesla. Textovým editorem vytvořím soubor, např. s názvem
tachec dsjkJHDS83 ondra OfdjIUJeqrei6
Liché řádky v souboru obsahují uživatelská jména a sudé řádky potom jejich
hesla, takže uživatel Z výše uvedeného souboru vytvoříme databázi pomocí následujícího příkazu: db_load -T -t hash -f db.txt /etc/vsftpd/passwd.db Hesla v tomto souboru nejsou nijak zašifrována, tak nesmíme zapomenout na nastavení přístupových práv tak, aby tento soubor mohl číst pouze uživatel root. chmod 600 /etc/vsftpd/passwd.db
Dalším krokem bude vytvoření PAM souboru díky kterému bude zajištěna
autentizace uživatele. Využijeme PAM modul pam_userdb, který bude číst data
o uživatelích (jméno a heslo) z námi dříve vytvořeného DB souboru
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/passwd account required /lib/security/pam_userdb.so db=/etc/vsftpd/passwd Stejně jako v předchozí konfiguraci (modul pam_pwdfile), tak i při použití modulu pam_userdb jsou virtuální uživatelé mapováni na systémového uživatele. Tzn. pokud tohoto uživatele ještě nemáme vytvořeného, tak jej vytvoříme následujícím příkazem: useradd virtualftp -m -c "Virtual FTP user" -d /data/virtualftp -s /sbin/nologin
Ve finále zbývá už jen upravit konfigurační soubor VSFTPD démona 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
Naposledy změněno: 8.2.2008 16:54
|
|
|
© 2006-2008 o.k.
|
|