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.

JPrescottSanders
źródło
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)

Marco Ceppi
źródło
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ł :)

Ben Williams
źródło
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 [email protected]:~> 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 [email protected]:~> 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.

qbi
źródło
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.

Nathan Osman
źródło
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.

Stuart
źródło
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

Sajad Bahmani
źródło
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.

Simon East
źródło