Należę do tych, którzy lubią wprowadzać innowacje i uczyć się nowych rzeczy, niedawno musiałem zainstalować i skonfigurować serwer FTP i postanowiłem zrobić to inaczej niż zawsze.
W tym przypadku zdecydowałem się na usługę FTP z użytkownikami wirtualnymi. Dane użytkowników będą przechowywane w zaszyfrowanym pliku (nazwa użytkownika, hasło, ustawienia itp.), wszystko za pomocą Pure FTPd.
Tutaj pokażę Ci, jak to zrobić… cóż, zaczynajmy
Przede wszystkim określ, że polecenia w tym samouczku są przeznaczone dla dystrybucji takich jak Debian lub na nich opartych, jednak jeśli ktoś używa innej dystrybucji na swoim serwerze, musi zainstalować te same pakiety i użyć ustawień określonych poniżej, jedyną rzeczą, którą należy zmienić to polecenie instalacji.
1. Najpierw musimy zainstalować Pure FTPd:
apt-get install pure-ftpd
Wynik zakończy się mniej więcej tak:
2. Usługa jest już aktywowana, ale jest bezużyteczna, jeśli nie została poprawnie skonfigurowana. Załóżmy, że mamy długi, ale niemal standardowy plik konfiguracyjny; zawiera on standardowe elementy, takie jak zakaz dostępu anonimowych użytkowników itp.
cd /etc/pure-ftpd/ && wget http://ftp.desdelinux.net/pure-ftpd.conf
3. Załóżmy, że nasz folder FTP to /var/www/ftp/ i chcemy utworzyć użytkownika, który będzie mógł przesyłać informacje do folderu /var/www/ftp/sysadmin/. Wpiszmy w terminalu:
pure-pw useradd sysadmin -u 2001 -g 2001 -d /var/www/ftp/sysadmin/
Oznacza to, co następuje:
pure-pw: Polecenie używane do manipulowania użytkownikami Pure-FTPd
useradd: Wskazujemy, że dodamy użytkownika
sysadmin: użytkownik, którego chcę utworzyć
-u 2001: ID użytkownika tego użytkownika
-g 2001: GroupID tego użytkownika
-d / var / www / ftp / sysadmin /: Folder, który będzie domem tego użytkownika, czyli do którego będą przesyłać rzeczy
Kiedy wejdziesz do poprzedniej linii, zapyta Cię o hasło tego użytkownika.
4. Teraz musisz odświeżyć plik bazy danych użytkowników. Aby to zrobić, przejdź do folderu /etc/pure-ftpd/ (cd /etc/pure-ftpd) i wpisz w terminalu następujące polecenie:
pure-pw mkdb
5. Teraz musimy uruchomić Pure-FTPd, ale z zaznaczeniem, że będziemy korzystać z pliku użytkowników wirtualnych. Najpierw zatrzymajmy usługę:
/etc/init.d/pure-ftpd stop
Wtedy upewnimy się, że domyślnie nie rozpocznie się normalnie:
chmod -x /etc/init.d/pure-ftpd
A teraz zaczynamy usługę po swojemu:
/usr/sbin/pure-ftpd -j -lpuredb:/etc/pure-ftpd/pureftpd.pdb
6. Jeśli spróbujesz użyć aplikacji takiej jak FileZilla, zobaczysz, że możesz połączyć się bez problemów z utworzonym użytkownikiem; jednak nie będziesz mógł niczego kopiować ani tworzyć katalogów. Dzieje się tak, ponieważ folder /var/www/ftp/sysadmin/ (katalog domowy użytkownika w tym przykładzie) nie ma odpowiednich uprawnień. Można to naprawić za pomocą:
chown -R 2001:2001 /var/www/ftp/sysadmin/
Pamiętaj, że Uid i Gid 2001 są identyfikatorami utworzonego przez nas użytkownika, utworzyliśmy je za pomocą polecenia w poprzednim kroku 3
7. Aby zatrzymać usługę, wystarczy nacisnąć [Ctrl]+[C] na tym samym terminalu lub na innym terminalu wykonać następujące czynności:
killall pure-ftpd
Teraz wskażemy, że usługa uruchomi się automatycznie wraz z systemem przy starcie serwera, w tym celu modyfikujemy plik /etc/rc.local i przed ostatnią linią z napisem „exit 0” umieszczamy polecenie, którym uruchamiamy Usługa FTP:
/usr/sbin/pure-ftpd -j -lpuredb:/etc/pure-ftpd/pureftpd.pdb
Innymi słowy, wyglądałoby to tak:
Możesz edytować plik za pomocą nano, vi lub preferowanego edytora, lub jeśli wolisz, skopiuj i wklej to polecenie, które ułatwi Ci pracę:
perl -pi -e "s[exit 0][/usr/sbin/pure-ftpd -j -lpuredb:/etc/pure-ftpd/pureftpd.pdb]g" /etc/rc.local && echo "exit 0" >> /etc/rc.local
…tak tak… podczas czytania „ułatwiaj” jest to obszerne polecenie, tak, ale polega po prostu na zastąpieniu tekstu perlem i nieszkodliwym echem
8. Po wykonaniu tej czynności uruchom ponownie serwer, a zobaczysz, że usługa pure-ftpd jest teraz uruchomiona i gotowa do działania.
Jak usunąć użytkowników?
Jak wspomniałem wcześniej, polecenie pure-pw jest nam potrzebne do manipulowania użytkownikami. Aby usunąć użytkownika (na przykład sysadmin), użyjemy następującego polecenia:
cd /etc/pure-ftpd/
pure-pw userdel sysadmin
pure-pw mkdb
Pamiętaj, że za każdym razem, gdy dokonujesz zmiany u dowolnego użytkownika, musisz ponownie wygenerować plik wirtualnej bazy danych użytkowników, znajduje się on w / etc / pure-ftpd / i jest generowany / aktualizowany przez pure-pw mkdb
W każdym razie przyjaciele myślę, że nie ma nic więcej do dodania, zapraszam do lektury pomocy pure-pw, ponieważ pozwala nam to na znacznie więcej niż to, co wam tutaj pokazałem (to tylko krótki i prawie podstawowy tutorial).
Rok czy dwa lata temu byłem jednym z tych, którzy łączyli wszystko z OpenLDAP lub MySQL, ale z biegiem czasu zdałem sobie sprawę, że tak wiele połączeń z bazami danych, które są serwerami jako takimi, generuje zużycie, na które często nas nie stać. Dlatego też korzystanie z całkowicie realne alternatywy, takie jak wykorzystanie baz danych we własnych plikach aplikacji, jak w przypadku Pure-FTPd .pdb
Wszelkie wątpliwości lub pytania postaram się pomóc, jak tylko będę mógł.
Pozdrowienia i… miłego hakowania!