Serwer FTP (PROFTPD) cz. 3 - Użytkownicy...
Cyk artykółów "Serwer FTP (PROFTPD)" przedstawi spoób instalacji, konfiguraci oraz zarządzanie serwerem FTP.
W podstawowej konfiguracji serwer Proftpd wykorzystuje do autentykacji i autoryzacji użytkowników plik /etc/passwd, więc użytkownicy FTP są jednocześnie użytkownikami serwera (więcej tutaj). Proftpd tak naprawde niedba gdzie i jak użytkownicy FTP są zdefiniowani, użytkowników FTP można zdefinjować w innym pliku niż /etc/passwd, bazie danych SQL, na serwerze LDAP. Jest to możlwe gdyż jądro systemu unix nie obsługuje użytkowników po ich nazwach a po UID i GID.
Dla bezpieczeństwa zróbmy kpie pliku konfiguracyjnego:
cp /etc/proftpd/proftpd.conf /etc/proftpd/proftpd.conf.old
Edytujemi plik /etc/proftpd/proftpd.conf:
gedit /etc/proftpd/proftpd.conf
odnajdujemy linie "AuthOrder"
AuthOrder
dyrektywa ta konfiguruje nazwy modułów uwierzytelniania oraz kolejność, w jakiej będą sprawdzane podczas uwierzytelniania użytkownika. Należy podać co najmniej jeden moduł, nie ma maksymalnej liczyb modułów. Wymienione nazwy muszą zawierać pełną nazwę pliku źródłowego.
Dla użytkoników systemowych (z /etc/passwd):
AuthOrder mod_auth_pam.c* mod_auth_unix.c
usuwamy komentarz oraz dodajemy moduł autentykacji użytkoników wirtualnych: mod_auth_file.c
AuthOrder
proftd wspiera autentykacje z wielu modułów jednocześnie. Kolejność odpytywania modułów jest określonow konfiguracji w dyrektywnie AuthOrder
następnie trzeba wskazać proftpd plik alternatywny do /etc/passwd, gdzie przechowywani są informacje o użytkownikach (dyrektywa AuthUserFile wskazuje proftpd ścieżkę do plku z danymi o użytkownikach), oraz wskazać plik alternatywny do /etc/group (dyrektywa AuthGroupFile wskazuje proftpd ścieżkę do plku o grupach użytkownikach). Dodajemy do naszego plku konfiguracyjnego następującą linie:
AuthUserFile /etc/proftpd/ftpd.passwd
AuthGroupFile /etc/proftpd/ftpd.group
Użytkowników/grup wirtualnych tworzymy za pomocą skrytu ftpasswd.
ftpasswd
ftpasswd jest skryptem który utworzy lub uaktualnia informacje o użytkownikach, grupach zawartych w plkach wskazanych w dyrektywie AuthUserFile oraz AuthGropuFile, oraz dba o poprawność wprowadzonych danych. Gdy jest użyty pierwszy raz, program tworzy odpowiedni plik, jeśli plik istnieje uaktualnia informacje
Aby utworzyć użytkownika wpisujemy:
ftpasswd --passwd --file=/etc/proftpd/ftpd.passwd --name=test --uid=60 --gid=60 --home=/home/ftp/test --shell=/bin/false
--passwd (wymagane)
skrypt utworzy lub zmodyfikuje plik w formacie /etc/passwd odpowiedni do użycia z dytektywą AuthUserFile. Po wykonaiu polecenia zosanie wyświetlona pośba o podanie hasła, a hasło zostanie zaszyfrowane i zapisane jako zaszyfrowany ciąg znaków.
--file=filename (opcjonalne)
ścieżka do pliku gdzie mają być zapisane dane wyjściowe, jeśli nie użyjemy opcji --file=path_to_file dane wyjściowe zostaną zapisane w ./ftpd.passwd.
--name=username (wymagane)
nazwa konta użytkownika. Jeśli nazwa nie istnieje w określonym pliku wyjściowym, zostanie utworzony wpis dla niej. W przeciwnym razie wpis zostanie zaktualizowany.
--uid=uid (wymagane)
numeryczyny identyfikator użytkownika.
--gid=gid (opcjonalne)
identyfikator grupy podstawowej dla użytkownika.
Jaki uid i gid wybra?
Nie ma to znaczenia jaki UID i GID podamy, należy pamietać żę UID=0 i GID=0 jest zarezerwowane dla root. Można tworzyć użytkowników o tym samym UID i GID i o róznych katalogach domowych z zachowanie uprawnień do plików i katalogów.
--home=path_to_file (wymagane)
katalog domowy użytkownika.
--shell=/bin/false(wymagane)
powłoka dla użytkownika. Zalecena: /bin/false.
Nastepnie tworzymy plik ftpd.group:
ftpasswd --group --name=nogroup --file=/etc/proftpd/ftpd.group --gid=60 --member test
--group (wymagane)
w połaczeniu z --group, ftpasswd tworzy plik w formacie /etc/grouo, odpowiedni do użycia z dyrektywą AuthGroupFile.
--name=group_name (wymagane)
nazwa grupy.
--file=path_to_file (opcjonalne)
ścieżka do pliku gdzie mają być zapisane dane wyjściowe, jeśli nie użyjemy opcji --file=path_to_file dane wyjściowe zostaną zapisane w ./ftpd.group.
--gid=gid (opcjonalne)
identyfikator grupy podstawowej dla użytkownika.
--member=username (opcjonalne)
przypisanie użytkownika do grupy.
http://www.proftpd.org/docs/howto/VirtualUsers.html
http://www.proftpd.org/docs/howto/AuthFiles.html
http://www.proftpd.org/docs/contrib/ftpasswd.html
http://www.proftpd.org/docs/contrib/ftpasswd.html
http://www.proftpd.org/docs/modules/mod_auth_file.html
https://www.mybluelinux.com/proftpd-server-with-virtual-users-and-in-sftp-mode/
https://ixnfo.com/en/configuring-proftpd-with-virtual-users-in-a-file.html
https://bobcares.com/blog/proftpd-create-user/
Dodaj komentarz