Wirtualni użytkownicy FTP na vsftpd
Jakiś czas temu otrzymałem zadanie postawienia serwera FTP, który miał umożliwić pobieranie (bez możliwości zapisywania) plików ze wspólnego zasobu przez pracowników firmy. Logowanie anonimowe odpadało ze względów bezpieczeństwa. Korzystanie przez kilka osób z jednego konta wydało mi się mało wygodne, a z pewnością nieeleganckie. Idealnym rozwiązaniem byłoby stworzenie wirtualnych kont, które logowałyby się do tego samego chrootowanego zasobu z takimi samymi uprawnieniami. Niestety, w opcjach vsftpd nie znalazłem takiej możliwości — trzeba by wykorzystać użytkowników systemowych, a i tak pewnie wymagałoby to jakiejś ekwilibrystyki, żeby każdy z nich uzyskiwał dostęp do tego samego katalogu.
Można jednak obejść ograniczenia vsftpd korzystając z możliwości mechanizmu uwierzytelniania PAM. Do tego będzie nam potrzebna biblioteka pam_userdb.so i programik db_load, który w CentOS-ie jest udostępniany przez pakiet db4-utils.
Aby zmodyfikować politykę uwierzytelniania dopisujemy na początku pliku /etc/pam.d/vsftpd:
auth sufficient pam_userdb.so db=/etc/vsftpd/vsftpd_login
account sufficient pam_userdb.so db=/etc/vsftpd/vsftpd_login unknown_ok debug crypt=none
Przygotowujemy plik uzytkownicy_ftp, który wypełniamy parami użytkownik-hasło zapisywanymi w kolejnych wierszach, np:
testuser1
testpasw1
testuser2
testpasw2
Generujemy bazę loginów i haseł (uwaga: jeżeli vsftpd_login.db istnieje, zostaną do niego dopisane nowe hasła):
# db_load -T -t hash -f uzytkownicy_ftp vsftpd_login.db
# cp vsftpd_login.db /etc/vsftpd/vsftpd_login.db
Pozostaje dokonfigurować /etc/vsftpd/vsftpd.conf i zrestartować demona vsftpd:
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
userlist_enable=YES
pam_service_name=vsftpd
tcp_wrappers=YES
guest_enable=YES
hide_ids=yes
virtual_use_local_privs=no
local_root=/var/wspolnyftp
Pozostaje ustawić odpowiednie uprawnienia dla /var/wspolnyftp i, w razie potrzeby, zmodyfikować konfigurację SELinuksa.
Oczywiście, podana konfiguracja to tylko przykład, możliwe jest ustawienie innej polityki uwierzytelniania, wedle bieżących potrzeb.

wtorek, 23 września 2008 @ 14:42
W koncu trafiłem na to czego szukałem, wielkie dzieki transformatory