Wirtualni userzy ftp w Ubuntu
Poniżej znajduje się instrukcja opisująca jak skonfigurować krok po kroku bardzo prosty i bezpieczny serwer ftp obsługujący wirtualne konta – użytkowników, których fizycznie nie ma zdefinowanych w systemie. Jako serwer ftp wykorzystany zostanie vsftpd (very secure ftp daemon).
Założenia: potrzebujemy prostego serwera ftp do którego możemy zdefiniować kilku użytkowników, gdzie każdy ma dostęp do tego samego katalogu (opis jak należy to skonfigurować, aby każdy użytkownik miał swój własny katalog znajduje się we wpisie źródłowym, którego adres zamieściłem na końcu wpisu).
Najpierw instalujemy serwer ftp oraz narzędzie do obsługi bazy użytkowników:
aptitude install vsftpd db4.2-util
Tworzymy katalog ftp:
mkdir /home/ftp chown ftp:ftp /home/ftp
(aplikacja domyślnie podczas instalacji zakłada katalog /srv/ftp)
Podmieniamy plik /etc/vsftpd.conf na następujący:
# /etc/vsftpd.conf listen=YES listen_ipv6=NO #listen_port=2121 anonymous_enable=NO local_enable=YES guest_enable=YES virtual_use_local_privs=YES pam_service_name=vsftpd-virtual guest_username=ftp local_root=/home/ftp local_umask=022 write_enable=YES hide_ids=YES dirmessage_enable=YES use_localtime=YES xferlog_enable=YES log_ftp_protocol=YES setproctitle_enable=YES connect_from_port_20=YES chroot_local_user=YES chroot_list_enable=NO secure_chroot_dir=/var/run/vsftpd/empty
W razie potrzeb – zmieniamy ustawienia – np. jeśli chcemy zmienić port na którym aplikacja ma nasłuchiwać – usuwamy znak komentarza z linii listen_port i zmieniamy numer portu.
Przygotowujemy plik /etc/pam.d/vsftpd-virtual:
auth required pam_userdb.so db=/etc/vsftpd-virtual account required pam_userdb.so db=/etc/vsftpd-virtual
Przygotowujemy plik z użytkownikami i hasłami /etc/vsftpd-konta:
uzytkownik1 haslo1 uzytkownik2 haslo2
umieszczamy hasła w bazie:
db4.2_load -T -t hash -f /etc/vsftpd-konta /etc/vsftpd-virtual.db
a następnie restartujemy usługę:
service vsftpd restart
Możemy już zalogować się do serwera, przykładowo:
lftp -p 2121 -u uzytkownik1,haslo1 localhost lftp test1@localhost:~> ls lftp test1@localhost:/>
Źródło: http://linuxforfun.net/2008/04/05/vsftpd-virtual-users/
