Instalacja serwera FTP (vsftpd) na Ubuntu 18.04 / 18.10 / 19.04 / 19.10

wpis w: Articles | 0

zanim zaczniesz…

zaskakujące jest to, jak wielu web developerów wciąż nie wie o SFTP i zaletach nad FTP / FTPS. SFTP jest dostarczany z preinstalowanym serwerem Linux i działa tak jak zwykły FTP, ale jest bezpieczniejszy i mniej kłopotów z konfiguracją. Jeśli twój klient FTP obsługuje SFTP, powinieneś go użyć!

  • Jak skonfigurować SFTP dla katalogu głównego serwera www

zainstaluj vsftpd

zacznijmy od aktualizacji list pakietów i instalacji vsftpd na Ubuntu 18.04 / 18.10 / 19.04 / 19.10.,

poniżej mamy dwie komendy oddzielone &&. Pierwsze polecenie zaktualizuje listę pakietów, aby upewnić się, że otrzymasz najnowszą wersję i zależności dla vsftpd. Drugie polecenie pobierze i zainstaluje vsftpd. Naciśnij y I ENTER, gdy chcesz kontynuować.

sudo apt update && sudo apt install vsftpd

Po zainstalowaniu sprawdź status vsftpd

sudo service vsftpd status

powyżej widzimy, że nasz serwer FTP jest już uruchomiony.,

Skonfiguruj Firewall

Jeśli jeszcze tego nie zrobiłeś, zaleca się włączenie Firewallaufw Dla Ubuntu 18.04 / 18.10 / 19.04 / 19.10. Przed włączeniem ufw firewall, upewnij się, że dodałeś regułę dla SSH, w przeciwnym razie możesz zostać zablokowany z serwera, jeśli jesteś połączony zdalnie. Jeśli nie chcesz konfigurować zapory, przejdź do kroku 3.

sudo ufw allow OpenSSH

otwórzmy porty 20 i 21 dla FTP oraz porty 40000-50000 dla pasywnego FTP. Otworzymy również port 990 dla TLS, który skonfigurujemy później.,

sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw allow 40000:50000/tcp
sudo ufw allow 990/tcp

teraz Włącz zaporę, jeśli jeszcze jej nie ma. Naciśnij y I ENTER jeśli zostanie ostrzeżony o zakłóceniu połączenia SSH.

sudo ufw enable

aby sprawdzić stan zapory, Uruchom:

sudo ufw status

jeśli zapora jest uruchomiona, powinieneś zobaczyćStatus: active I reguły zapory, które właśnie dodaliśmy.

Utwórz użytkownika FTP

teraz utworzymy nowego użytkownika, którego będziemy używać do logowania się do FTP., W tym przykładzie utworzymy nowego Użytkownika o nazwie ftpuser.

sudo adduser ftpuser

Wygeneruj silne hasło i zachowaj je bezpiecznie.

Możesz również zostać poproszony o podanie niektórych danych kontaktowych. Możesz po prostu nacisnąć ENTER do każdego z nich.

Jeśli chcesz, abyftpuser logować się przez FTP, powinieneś wyłączyć dostęp SSH, wpisując na czarno ich nazwę użytkownika w pliku konfiguracyjnym SSH. W przeciwnym razie przejdź do kroku 4.

otwórz konfigurację SSH w nano.,

sudo nano /etc/ssh/sshd_config

dodaj poniższy tekst na dole pliku, zastępującftpuser użytkownikiem, któremu chcesz odmówić dostępu SSH i SFTP. Możesz dodać tu wielu użytkowników oddzielonych pojedynczą spacją. (Aby wkleić w nano, naciśnij prawy przycisk myszy).

/etc/ssh/sshd_config
DenyUsers ftpuser

aby zapisać plik i zakończyć, naciśnij CTRL + X, naciśnij Y a następnie naciśnij ENTER.

Uruchom ponownie usługę SSH.,

sudo service sshd restart

uprawnienia katalogowe

musisz teraz zdecydować, gdzie ten nowy użytkownik FTP może przeglądać i przesyłać pliki.

vsftpd używa plików chroot, aby ograniczyć użytkowników do swoich katalogów domowych i wymaga, aby Katalog domowy nie był zapisywalny. Z tego powodu musimy skonfigurować niektóre katalogi i uprawnienia.

jeśli planujesz użyć tego konta użytkownika FTP do przesyłania plików na serwer WWW, przejdź do kroku 4.1. Jeśli chcesz tylko przesłać do folderu domowego, przejdź do kroku 4.2.

4.1., Prześlij na serwer WWW

w wielu przypadkach chcesz mieć możliwość przesyłania plików do katalogu głównego dokumentu na serwerze WWW.

Jeśli skorzystałeś z poprzedniego przewodnika, aby skonfigurować wiele domen, Twój katalog główny dokumentu może znajdować się w jakimś miejscu, takim jak /var/www/test1.com/public_html – w takim przypadku musisz ustawić folder domowy dla ftpuser do folderu powyżej katalogu głównego dokumentu: /var/www/test1.com (podmieniając test1.com dla własnej domeny).,

Jeśli nie używasz wielu domen, Zakładamy, że używasz domyślnego katalogu głównego/var/www/html zarówno dla Apache, jak i Nginx w Ubuntu 18.04 / 18.10 / 19.04 / 19.10. W tym scenariuszu musimy zrobić /var/www/ katalog domowy dla naszego użytkownika ftpuser.

ustawmy folder nad głównym katalogiem dokumentu jako katalog domowy dlaftpuser.

sudo usermod -d /var/www ftpuser

pozwoli to naszemu użytkownikowi FTP na zapisywanie i modyfikowanie plików w katalogu głównym dokumentu.,

sudo chown ftpuser:ftpuser /var/www/html

przejdź teraz do kroku 5, aby skonfigurować vsftpd.

4.2 Upload to a Home Folder

Jeśli zamiast tego chcesz, aby ten użytkownik przesłał pliki do katalogu domowego, utwórz nowy katalog o nazwie ftpw katalogu domowym użytkownika i inny w nim o nazwie files. W poniższym przykładzie nasz użytkownik nazywa się ftpuser.

sudo mkdir /home/ftpuser/ftp

Ustaw własność kataloguftp na numernobody:nogroup.,

sudo chown nobody:nogroup /home/ftpuser/ftp

Ustaw uprawnienia kataloguftp używającchmod tak, aby nie był zapisywalny przez nikogo, w przeciwnym razie vsftpd nie pozwoli Ci się zalogować. a-w oznacza a = wszyscy/wszyscy- = Usuńw = uprawnienia do zapisu, więc usuń uprawnienia do zapisu dla wszystkich.

sudo chmod a-w /home/ftpuser/ftp

następnie utworzymy nowy katalog w obrębie/ftp, w którym użytkownik może przeglądać i przesyłać pliki.,

sudo mkdir /home/ftpuser/ftp/files

Przypisz prawa własności do tego katalogu naszemu nowemu użytkownikowi FTP, w przeciwnym razie nie będzie mógł do niego pisać.

sudo chown ftpuser:ftpuser /home/ftpuser/ftp/files

Konfiguracja vsftpd

przed rozpoczęciem korzystania z FTP na Ubuntu musimy wprowadzić kilka zmian w pliku konfiguracyjnym vsftpd 18.04 / 18.10 / 19.04 / 19.10.

przed edycją pliku konfiguracyjnego Utwórz kopię zapasową.

sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak

teraz otwórz plik konfiguracyjny w edytorzenano.,

sudo nano /etc/vsftpd.conf

jest to dość duży plik, ale w większości jest wypełniony komentarzami, które pomogą Ci w tym.

musisz przejść w dół pliku i upewnić się, że ustawienia są zgodne z poniższymi. Uwaga: Możesz wyszukiwać w nano używając CTRL + W

wyszukaj#write_enable=YES I odkomentuj go, usuwając znak#. Umożliwi to użytkownikom FTP zapisywanie plików na serwer.

etc/vsftpd.,conf
write_enable=YES

poszukaj #chroot_local_user=YES I odkomentuj go usuwając znak#. Uniemożliwi to użytkownikom FTP przeglądanie poza własnym katalogiem.

etc/vsftpd.conf
chroot_local_user=YES

poszukaj#local_umask=022 I odkomentuj go, usuwając znak#. Dzięki temu przesłane pliki i foldery będą miały odpowiednie uprawnienia.

etc/vsftpd.conf
local_umask=022

musimy teraz dodać kilka dyrektyw, które nie istnieją w pliku.,

ponieważ Linux nie wyświetla plików zaczynających się od kropki, pliki takie jak .htaccess nie będą widoczne w FTP. Może to być problem, jeśli zamierzasz używać Apache i chcesz pracować z .htaccess.

aby wymusić wyświetlanie przez vsftpd nazw plików zaczynających się od kropki, wklej poniższy tekst na dole pliku. (Aby wkleić w nano, naciśnij prawy przycisk myszy)

etc/vsftpd.conf
force_dot_files=YES

na koniec dodajmy kilka zakresów portów dla pasywnego FTP, aby upewnić się, że dostępna jest wystarczająca liczba połączeń. Wklej następujące elementy na dole pliku., (Aby wkleić w nano, naciśnij prawy przycisk myszy)

etc/vsftpd.conf
pasv_min_port=40000pasv_max_port=50000

Jeśli wcześniej wykonałeś krok 4.2 i chcesz, aby ten użytkownik przesłał pliki do folderu domowego, musimy poinformować vsftpd, żelocal_root jest folderem/ftp utworzonym wcześniej.

nie dodawaj tych dwóch linii, jeśli chcesz, aby użytkownik przesłał do katalogu głównego dokumentu sieciowego!

etc/vsftpd.conf
user_sub_token=$USERlocal_root=/home/$USER/ftp

koniec z vsftpd.conf na chwilę, ale powróci w późniejszych krokach, aby skonfigurować zabezpieczenia i SSL.,

aby zapisać plik i zakończyć, naciśnijCTRL + X, naciśnijY, a następnie naciśnijENTER.

Uruchom ponownie vsftpd.

sudo systemctl restart vsftpd

Test FTP

możemy teraz przetestować vsftpd, aby sprawdzić, czy możemy zalogować się jako użytkownik, który stworzyliśmy wcześniej. Polecamy FileZilla, która działa na systemach Windows, Mac i Linux.

wprowadź adres IP serwera, nazwę użytkownika FTP i hasło utworzone wcześniej, a następnie kliknij Quickconnect.,

powyżej widzimy, że połączyliśmy się pomyślnie i wyświetla się Katalog główny html, chociaż może to być inne na twoim serwerze.

spróbuj przesłać, utworzyć i edytować foldery i pliki w katalogu głównym, aby upewnić się, że uprawnienia działają poprawnie.

zauważysz, że w Filezilli jest Ostrzeżenie „Status: niezabezpieczony serwer, nie obsługuje FTP przez TLS.”Zaleca się teraz skonfigurowanie protokołu TLS, aby poświadczenia logowania i ruch były szyfrowane przez połączenie FTP.,

Jeśli masz problemy z zalogowaniem się na serwer FTP, spróbuj sprawdzić dziennik vsftpd. Aby wyświetlić ostatnie 200 wpisów za pomocą tail:

sudo tail /var/log/vsftpd.log -n 200

Secure FTP with TLS (opcjonalnie)

ważne jest, aby pamiętać o kilku rzeczach podczas korzystania z FTP – domyślnie nie jest on szyfrowany, co oznacza, że Twoje poświadczenia i wysyłane pliki są podatne na przechwycenie. Aby temu zaradzić należy połączyć się z vsftpd za pomocą FTPS (FTP over SSL / TLS).

zacznijmy od utworzenia nowego certyfikatu za pomocą narzędzia openssl.,

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem

zostaniesz poproszony o podanie niektórych danych, takich jak kraj itp. Nie musisz tego wypełniać. Możesz po prostu nacisnąć ENTER dla ustawień domyślnych.

teraz, gdy twój klucz prywatny został utworzony, musimy wprowadzić kilka zmian w pliku konfiguracyjnym vsftpd.

Otwórz plik konfiguracyjny w edytorzenano.

sudo nano /etc/vsftpd.conf

Znajdź następującą linię: (Uwaga: Możesz wyszukiwać wnano używającCTRL + W)

etc / vsftpd.,conf
ssl_enable=NO

zmień go na:

etc/vsftpd.conf
ssl_enable=YES

wklej poniżej poniższy tekst.

etc/vsftpd.conf

Zapisz plik i wyjdź (naciśnij CTRL + X, naciśnij Y a następnie naciśnij ENTER).

Uruchom ponownie vsftpd.

sudo systemctl restart vsftpd

testowanie TLS za pomocą FileZilla

możemy teraz przetestować TLS. Polecamy FileZilla, która działa na systemach Windows, Mac i Linux.,

wprowadź adres IP serwera, nazwę użytkownika FTP i hasło utworzone wcześniej, a następnie kliknij Quickconnect.

może pojawić się ostrzeżenie o nieznanym certyfikacie. Kliknij zawsze ufaj temu certyfikatowi w przyszłych sesjach i kliknij OK.

Jeśli jesteś połączony przez TLS, poinformuje Cię o tym w dzienniku połączeń. Zobaczysz również kłódkę w prawym dolnym rogu.

gotowe!,

4.79 (42 głosów)

daj znać, jeśli to pomogło. Śledź mnie na Twitterze, Facebook i YouTube, lub buy Kup mi koktajl.

p. s.zwiększyłem przychody z AdSense o 68% za pomocą AI. Przeczytaj moją recenzję Ezoic, aby dowiedzieć się, jak.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *