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).
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 ftp
w 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.
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.
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.
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)
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)
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!
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
)
ssl_enable=NO
zmień go na:
ssl_enable=YES
wklej poniżej poniższy tekst.
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!,
Dodaj komentarz