Podstawowy serwer FTP Ubuntu


33

Chciałbym skonfigurować podstawowy serwer FTP na instalacji Ubuntu Server. Gram z VSFTPD, ale mam problemy z uzyskaniem przez serwer możliwości tworzenia katalogów i kopiowania plików. Ustawiłem system, aby zezwalał lokalnym użytkownikom, ale wydaje się, że to nie znaczy, że dostaję dostęp do tworzenia katalogów. Może to być przypadek, w którym muszę być lepiej uziemiony w konfiguracji serwera Ubuntu, aby odpowiednio skonfigurować ten serwer FTP. Ostatecznym celem jest możliwość przenoszenia plików z mojego lokalnego folderu deweloperskiego do folderu www w celu wdrożenia. Katalogi również muszą być w stanie się przenosić. Każda pomoc byłaby bardzo mile widziana.


Wspomniałeś o przenoszeniu plików i folderów z lokalnego dewelopera do folderu www - czy robisz to wszystko na tym samym komputerze lub na różnych komputerach?
— Marco Ceppi

Czy jesteś także całkowicie sprzedawany z VSFTPD? A może interesują Cię inne typy oprogramowania FTP, takie jak pureftp?
— Marco Ceppi

Lokalne dev jest całkowicie oddzielną maszyną. Znam przenoszenie plików na serwery sieciowe przez FTP, być może jest lepszy sposób.
— JPrescottSanders,

Nie jestem sprzedawany na VSFTPD, był to pierwszy, który znalazłem podczas googlowania, jeśli masz prostsze rozwiązanie, wszyscy słucham.
— JPrescottSanders,

Odpowiedzi:


42

Polecę PureFTPD, ponieważ moim zdaniem jest to najprostszy i najłatwiejszy w użyciu. Najpierw musisz go zainstalować: sudo apt-get install pure-ftpdpo zainstalowaniu uruchomi się. Domyślnie korzysta z uwierzytelniania PAM - co oznacza, że ​​korzysta z kont, które już istnieją w systemie do uwierzytelniania. Wszystko, co musisz zrobić, to utworzyć konto użytkownika z katalogiem domowym będącym ścieżką www i ustawić hasło do tego konta. Powinieneś być w stanie połączyć się z tą kombinacją użytkownik / hasło, aby przesyłać / pobierać pliki.

Coś takiego:

sudo adduser ftpman --home /var/www/ --ingroup www-data

Który stworzy ftpmanużytkownika i umieści go w grupie danych www, z której korzysta Apache i przeprowadzi cię przez resztę skryptu instalacyjnego. Po zdefiniowaniu upewnij się, chmodże folder WWW zawiera błędy, które już istnieją w utworzonej kombinacji użytkowników / grup.

Na koniec, jeśli chcesz zablokować dostęp SSH dla tego konta, uruchom: sudo chsh -s /bin/false ftpmanco spowoduje zmianę powłoki użytkownika na false. (Zamień ftpman na użytkownika ftp)


5
Jeśli chodzi o mnie, PureFTP jest najłatwiejszy do skonfigurowania.
— Nathan Osman,

1
Masz zwyczaj dawania pełnego wyjaśnienia zawsze jak nauczyciel. Niesamowite!!!
— user3215

1
Próbowałem tego, ale nie mogę połączyć się z nowo utworzonym użytkownikiem. Obecni użytkownicy działają dobrze
— wim

1
To wszystko działa dobrze, z wyjątkiem sytuacji, gdy uruchamiam. chshWydaje się, że uniemożliwia to także użytkownikom logowanie się przez FTP. Ustawienie z powrotem /bin/bashumożliwia ponowne uruchomienie.
— DanH

1
Dziękuję i mogę potwierdzić, że spędziłem cały dzień z vsftpd i 5 minut z pureftpd w czasie konfiguracji. Aby uzyskać prostą i bezpieczną konfigurację, użyj pureftpd. Jestem zdezorientowany, dlaczego główny nurt reklamuje vsftpd!
— RyBolt

10

Moim zdaniem SFTP to lepszy sposób. Hej, w nazwie ma słowo „bezpieczne”, musi być lepiej :)

SFTP używa ssh do przesyłania plików (w odróżnieniu od FTPS, który w zasadzie jest FTP + TLS). Oznacza to, że jeśli możesz ssh do komputera docelowego, prawie zawsze możesz do niego SFTP, ponieważ używa on tych samych mechanizmów uwierzytelniania, więc nie musisz wcale instalować i konfigurować różnych demonów serwera (tj. Bez pureftpd lub vsftpd). Tak długo, jak twoje uprawnienia są ustawione poprawnie /var/www- co jest prawdopodobnie kwestią sudo chmod g+w /var/www; sudo usermod -g $USER -G www-data $USER- powinieneś być w stanie natychmiast użyć SFTP.

Obecnie większość oprogramowania klienckiego robi SFTP całkiem szczęśliwie, a także można korzystać scpz powłoki na serwerze deweloperskim, aby kopiować pliki ( scp -Rkopiuje całe foldery i jest to bardzo przydatne). Możesz nawet przejść kolejny krok i zautomatyzować logowanie przy użyciu kluczy publicznych, co oznacza, że ​​nie musisz już wpisywać haseł :)


3
wskazówka wskazówka ... jeśli masz klientów Windows, mogą korzystać z WinSCP winscp.net/eng/index.php w celu uzyskania dostępu do serwera sftp.
— LassePoulsen,

Zgodnie z twoim komentarzem OP powinien oczywiście używać vsftpd, ponieważ vs oznacza bardzo bezpieczne . :-)
— qbi

PureFTPD korzysta z tego samego uwierzytelnienia, co SFTP - moim zdaniem jest to w rzeczywistości bardziej bezpieczne, ponieważ jeśli wyciekną informacje o twoim koncie, nikt nie będzie miał dostępu SSH do twojego komputera. W najgorszym przypadku mają dostęp do plików.
— Marco Ceppi

Jeśli Twoja aplikacja obsługuje tylko FTP i tunelujesz ją przez SSH, jaka jest różnica? :)
— endolith

5

Zdecydowanie polecam użycie vsftpd. Jest to jeden z najbezpieczniejszych demonów FTP w systemie Linux. Wiele innych miało w przeszłości słabości i wydaje się, że FTP jest trudny do wdrożenia w bezpieczny sposób.

vsftpd uruchamia się zaraz po instalacji. Ubuntu umożliwia lokalnym użytkownikom logowanie się. Więc uruchom klienta FTP i zaloguj się jako normalny użytkownik za pomocą hasła systemowego (mój przykład używa lftp):

> lftp 127.0.0.1 ftp
lftp 127.0.0.1:~> user qbi
Password: #typing my password which I also use to log in via GDM
lftp qbi@127.0.0.1:~> ls
drwxr-xr-x 10 1000 1000   4096 2008-07-28 16:32 Desktop
... many more

Teraz używam jakiegoś menedżera plików (Nautilus, Shell itp.), Aby utworzyć nowy katalog fooi wrócić do mojego klienta FTP:

ftp qbi@127.0.0.1:~> ls -l
...
drwxr-xr-x 2 1000 1000   4096 2010-08-09 13:32 foo

Katalog jest już dostępny i mogę z cdniego korzystać i korzystać z niego. To samo dotyczy również specjalnych użytkowników. Tam możesz także tworzyć katalogi, które są natychmiast dostępne. Ważne jest, aby poszukać praw dostępu.


3

Pokornie polecam serwer FTP, który napisałem od zera: JetFTP . Jest niezwykle prosty w instalacji i obsłudze.


Instalacja:

  • Dodaj mój PPA do źródeł oprogramowania i zaktualizuj:

    sudo apt-add-repository ppa:george-edison55/george-edison
    
  • Uruchom następujące polecenie:

    sudo apt-get install jetftp
    
  • To jest to!

Korzystanie z JetFTP jest proste - wystarczy połączyć się z portem 8021za pomocą nazwy logowania i hasła na komputerze, na którym działa JetFTP.


2

Nie używaj ftp , jest to z natury niepewny protokół, ponieważ wysyła nazwę użytkownika i hasło w postaci jawnej do serwera. Wdrożenie sftp jest równie łatwe i zyskujesz ogromną przewagę w bezpieczeństwie swojego połączenia.


wyraźny problem to najlepsza odpowiedź :-)
— Sajad Bahmani

0

Istnieją trzy różne sposoby konfiguracji serwera ftp:

(1) Anonimowy FTP:

Ludzie mogą uzyskiwać dostęp do serwera tylko za pomocą anonimowego konta i bez hasła. Oczywiście administrator serwera ustawi limit przesyłania, aby uniemożliwić użytkownikom umieszczanie nielegalnych plików, takich jak piracka muzyka / filmy / gry.

(2) FTP z anonimowym dostępem i użytkownikami z hasłem konta:

Ta metoda umożliwia zarówno użytkownikom anonimowym, jak i użytkownikom kont dostępu do serwera. Będą mieli dostęp tylko do określonego katalogu, z wyjątkiem użytkownika root, który może przeglądać / modyfikować / usuwać wszystkie pliki i / lub foldery.

(3) FTP z obsługą mysql do uwierzytelniania użytkowników wirtualnych:

Ta metoda umożliwia dostęp do serwera tylko dla niektórych grup użytkowników, którzy nie mają konta powłoki uwierzytelniania użytkowników wirtualnych w systemie. Korzysta z zewnętrznego serwera mysql, który przechowuje informacje o użytkowniku.

Pierwsza opcja: anonimowy FTP

Przed rozpoczęciem tworzenia anonimowego serwera ftp musisz dodać użytkownika o nazwie ftp do swojego systemu, również z katalogiem domowym. Ten krok jest naprawdę łatwy, wystarczy wykonać następujące polecenia:

useradd -d /home/ftp/ftp -s /bin/false ftp

mkdir -p /home/ftp/upload

W ten sposób tylko to konto może zapisywać w tym folderze. Możesz użyć większej liczby zmiennych, aby określić, co zrobi serwer ftp. Oto kilka przykładów:

-e Allow access to the server only by anonymous users
-B Start the server with background demon
-i Anonymous users can't upload files
-M Let anonymous users create folders
-s ftp user files cannot be downloaded

Druga opcja: „Użytkownicy kont anonimowych i z hasłem”

Aby umożliwić użytkownikom anonimowym i hasłem konta na tym samym serwerze, postępuj zgodnie z tym małym przewodnikiem:

-B ,-i ,M, -r, -s same of before
-u <uid> Enable users with a specified user id (uid) to access the server 
-V <Ip address> Only specified IPs will be able to access the server in non-anonymous mode 

Trzecia opcja: „Wirtualni użytkownicy z MySQL” ”

Aby utworzyć serwer z obsługą mysql, wykonaj następujące kroki:

Pobierz i zainstaluj Menedżera użytkowników dla PureFTPd, który można znaleźć tutaj http://machiel.generaal.net/index.php?subject=user_manager_pureftpd

Rozpakuj go i załaduj całą jego zawartość do katalogu www serwera WWW, a następnie napisz w przeglądarce ten link link http: //localhost/ftp/install.php Wykonaj wszystkie kroki, o które prosi instalator Skopiuj i zapisz rge pureftpd-mysql .conf do katalogu menedżera użytkowników pureftpd

Gotowy. Dostęp do panelu administracyjnego za pomocą tego linku http: // localhost / ftp

Więcej opcji do dodania przed uruchomieniem procesu serwera

-c <num> Max client that can connect to the server
-C <num> Max connections for a IP
-T <bandwitdh> Max bandwitdh disponible for each connection
-n <MBytes> Max MB that a user can have into its home folder
-m <Cpu Loading> Stops the anonymous uploads if the cpu loading exceed from this value 

I zobacz to dla niektórych aplikacji serwera ftp:
https://help.ubuntu.com/6.06/ubuntu/serverguide/C/ftp-server.html


4
Kiedy kopiujesz i wklejasz odpowiedź z innego miejsca, zawsze powinieneś podać źródło .
— Dori

0

Domyślna instalacja VSFTPD domyślnie nie pozwala na tworzenie / modyfikowanie zmian . Musisz edytować /etc/vsftpd.confi odkomentować następujący wiersz ...

write_enable=YES

Po drugie, musisz skonfigurować odpowiednie uprawnienia systemu plików dla odpowiednich plików i folderów.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.