Instalacja FTP (ProFTPd) na serwerze VPS (Debian).
Aby łatwo przesyłać pliki za pomocą protokołu FTP na serwerze musimy zainstalować odpowiednie oprogramowanie serwera FTP. Istnieje kilka wartych uwagi serwerów FTP m.in proFTPd, vsFTPd czy pureFTP każdy ma swoje plusy i minusy niemniej jednak zajmiemy się instalacją proFTPd.
Dystrybucja: Debian 10
- W pierwszej kolejności logujemy się do swojego VPS po SSH np. za pomocą puTTy, na domyślny port
22
- Następnie po zalogowaniu na konto
root
wydajemy polecenie aktualizacji listy pakietów poleceniem:
apt-get update
root@adamhitme:~# apt-get update
Hit:1 http://ftp.debian.org/debian buster InRelease
Hit:2 http://security.debian.org buster/updates InRelease
Hit:3 http://ftp.debian.org/debian buster-updates InRelease
Reading package lists... Done
Instalacja proFTPd.
- Następnie instalujemy pakiet oprogramowania serwera FTP poleceniem:
apt-get install proftpd -y
Przełącznik -y
oznacza odpowiedź TAK na wszelkie pytania instalatora pakietów.
root@adamhitme:~# apt-get install proftpd -y
Reading package lists... Done
Building dependency tree... Done
Note, selecting 'proftpd-basic' instead of 'proftpd'
The following additional packages will be installed:
libhiredis0.14 libmemcached11 libmemcachedutil2 proftpd-doc
Suggested packages:
proftpd-mod-ldap proftpd-mod-mysql proftpd-mod-odbc proftpd-mod-pgsql proftpd-mod-sqlite
proftpd-mod-geoip proftpd-mod-snmp
The following NEW packages will be installed:
libhiredis0.14 libmemcached11 libmemcachedutil2 proftpd-basic proftpd-doc
0 upgraded, 5 newly installed, 0 to remove and 139 not upgraded.
Need to get 4498 kB of archives.
After this operation, 9616 kB of additional disk space will be used.
Get:1 http://ftp.debian.org/debian buster/main amd64 libhiredis0.14 amd64 0.14.0-3 [33.8 kB]
Get:2 http://ftp.debian.org/debian buster/main amd64 libmemcached11 amd64 1.0.18-4.2 [94.5 kB]
Get:3 http://ftp.debian.org/debian buster/main amd64 libmemcachedutil2 amd64 1.0.18-4.2 [22.3 kB]
Get:4 http://ftp.debian.org/debian buster/main amd64 proftpd-basic amd64 1.3.6-4+deb10u5 [2652 kB]
Get:5 http://ftp.debian.org/debian buster/main amd64 proftpd-doc all 1.3.6-4+deb10u5 [1696 kB]
Fetched 4498 kB in 1s (8456 kB/s)
Selecting previously unselected package libhiredis0.14:amd64.
(Reading database ... 27718 files and directories currently installed.)
Preparing to unpack .../libhiredis0.14_0.14.0-3_amd64.deb ...
Unpacking libhiredis0.14:amd64 (0.14.0-3) ...
Selecting previously unselected package libmemcached11:amd64.
Preparing to unpack .../libmemcached11_1.0.18-4.2_amd64.deb ...
Unpacking libmemcached11:amd64 (1.0.18-4.2) ...
Selecting previously unselected package libmemcachedutil2:amd64.
Preparing to unpack .../libmemcachedutil2_1.0.18-4.2_amd64.deb ...
Unpacking libmemcachedutil2:amd64 (1.0.18-4.2) ...
Selecting previously unselected package proftpd-basic.
Preparing to unpack .../proftpd-basic_1.3.6-4+deb10u5_amd64.deb ...
Unpacking proftpd-basic (1.3.6-4+deb10u5) ...
Selecting previously unselected package proftpd-doc.
Preparing to unpack .../proftpd-doc_1.3.6-4+deb10u5_all.deb ...
Unpacking proftpd-doc (1.3.6-4+deb10u5) ...
Setting up proftpd-doc (1.3.6-4+deb10u5) ...
Setting up libmemcached11:amd64 (1.0.18-4.2) ...
Setting up libhiredis0.14:amd64 (0.14.0-3) ...
Setting up libmemcachedutil2:amd64 (1.0.18-4.2) ...
Setting up proftpd-basic (1.3.6-4+deb10u5) ...
Adding system user `proftpd' (UID 107) ...
Adding new user `proftpd' (UID 107) with group `nogroup' ...
Not creating home directory `/run/proftpd'.
Adding system user `ftp' (UID 108) ...
Adding new user `ftp' (UID 108) with group `nogroup' ...
Creating home directory `/srv/ftp' ...
'/usr/share/proftpd/templates/welcome.msg' -> '/srv/ftp/welcome.msg.proftpd-new'
Processing triggers for systemd (241-5) ...
Processing triggers for man-db (2.8.5-2) ...
Processing triggers for libc-bin (2.28-10) ...
root@adamhitme:~#
Jeśli w czasie instalacji nie pojawiły się żadne błędy, oznacza to, że serwer FTP został zainstalowany poprawnie. W kolejnym kroku przejdziemy do podstawowej konfiguracji serwera.
Konfiguracja proFTPd.
Aby dostęp użytkowników w trakcie połączenia FTP był ograniczony do ich własnego katalogu domowego (domyślnie /home/nazwa_uzytkownika) musimy dokonać kilka drobnych poprawek w postaci edycji pliku konfiguracyjnego.
W tym celu możemy użyć albo edytora vi
lub zainstalować edytor nano
.
- Następnie wydajemy komendę edycji pliku konfiguracyjnego proFTPd
nano /etc/proftpd/proftpd.conf
Odszukujemy linijkę # DefaultRoot ~
, a następnie usuwamy przed nią znak hash #
oraz spację.
Wprowadzone zmiany muszą zostać jeszcze zapisane poprzez wciśnięcia klawisza F2, a następnie Y i [Enter].
- Teraz wystarczy jeszcze zrestartować usługę, aby wprowadzone zmiany weszły w życie:
service proftpd restart
Jeśli używamy jakiejkolwiek zapory (firewall) należy pamiętać o odblokowaniu portów TCP: 20
, 21
Dodanie użytkownika w systemie.
Aby móc połączyć się z serwerem FTP utworzeni muszą zostać jeszcze użytkownicy ze względów bezpieczeństwa dostęp dla root jest zablokowany.
W tym celu musimy utworzyć utworzyć użytkownika w systemie.
Ważne! Jeśli tworzymy użytkownika tylko w celu logowania się po FTP najlepiej byłoby wpierw zdefiniować powłokę /bin/false
w systemie, aby nowy użytkownik miał dostęp tylko do serwera FTP, a nie do całego systemu.
W celu zdefiniowania powłoki, wydajemy polecenie:
echo "/bin/false" >> /etc/shells
- Następnie dodajemy użytkownika
adduser <nazwa użytkownika> --shell /bin/false
dwukrotnie podajemy hasło użytkownika, natomiast pola z pytaniami o dane osobowe ignorujemy klawiszem [enter]. Na koniec, w celu potwierdzenia wpisujemy Y
+ [enter].
root@adamhitme:~# adduser janek --shell /bin/false
Adding user `janek' ...
Adding new group `janek' (1000) ...
Adding new user `janek' (1000) with group `janek' ...
Creating home directory `/home/janek' ...
Copying files from `/etc/skel' ...
New password:
Retype new password:
passwd: password updated successfully
Changing the user information for janek
Enter the new value, or press ENTER for the default
Full Name []:
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n] y
root@adamhitme:~#
Powyższy krok należy przeprowadzić dla każdego użytkownika, któremu chcemy dać dostęp przez FTP.
Aby połączyć się z sererem FTP w Windows, pobieramy program FileZilla i po jego uruchomieniu uzupełniamy pola w poziomym menu następująco: host-adres ip naszego VPS, nazwa użytkownika-dodany przed chwilą użytkownik, hasło-jak w przypadku użytkownika, pole port pozostawiamy puste i klikamy myszką na Szybkie łączenie.