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/

Zostaw komentarz