Linux

Как да настроите FTP сървър с VSFTPD на Ubuntu 20.04

Как да настроите FTP сървър с VSFTPD на Ubuntu 20.04

Тази статия описва как да инсталирате и конфигурирате FTP сървър на Ubuntu 20.04, който използвате за споделяне на файлове между вашите устройства.

FTP (File Transfer Protocol) е стандартен мрежов протокол, използван за прехвърляне на файлове към и от отдалечена мрежа. За Linux има няколко FTP сървъра с отворен код. Най-известните и широко използвани са PureFTPd, ProFTPD и vsftpd . Ще инсталираме vsftpd (Very Secure Ftp Daemon), стабилен, сигурен и бърз FTP сървър. Също така ще ви покажем как да конфигурирате сървъра да ограничава потребителите до тяхната домашна директория и да шифрова цялото предаване с SSL / TLS.

Въпреки че FTP е много популярен протокол, за по-сигурен и по-бърз трансфер на данни, трябва да използвате SCP или SFTP .

Инсталиране на vsftpd на Ubuntu 20.04 #

Пакетът vsftpd се предлага в хранилищата на Ubuntu. За да го инсталирате, изпълнете следните команди:

sudo apt актуализацияsudo apt install vsftpd

FTP услугата автоматично ще стартира, след като процесът на инсталиране приключи. За да го проверите, отпечатайте състоянието на услугата:

sudo systemctl статус vsftpd

Резултатът трябва да покаже, че услугата vsftpd е активна и работи:

● vsftpd.услуга - vsftpd FTP сървър Заредено: заредено (/ lib / systemd / system / vsftpd.обслужване; активиран; предварително зададен от доставчика: активиран) Активен: активен (работи) от вторник 2021-03-02 15:17:22 UTC; Преди 3 секунди .. 

Конфигуриране на vsftpd #

Конфигурацията на vsftpd сървър се съхранява в / etc / vsftpd.конф файл.

Повечето от настройките на сървъра са добре документирани във файла. За всички налични опции посетете страницата с документация vsftpd.

В следващите раздели ще разгледаме някои важни настройки, необходими за конфигуриране на сигурна инсталация vsftpd.

Започнете с отваряне на конфигурационния файл vsftpd:

sudo nano / etc / vsftpd.конф

1. FTP достъп #

Ще разрешим достъп до FTP сървъра само на локалните потребители. Потърсете anonymous_enable и local_enable директиви и проверете дали вашата конфигурация съвпада с редовете по-долу:

/ etc / vsftpd.конф
anonymous_enable = НЯМА local_enable = ДА 

2. Активиране на качвания #

Намерете и коментирайте write_enable директива за разрешаване на промени във файловата система, като качване и премахване на файлове:

/ etc / vsftpd.конф
write_enable = ДА 

3. Chroot Jail #

За да попречите на местните FTP потребители да имат достъп до файлове извън домашните си директории, коментирайте lne, започвайки с chroot_local_user:

/ etc / vsftpd.конф
chroot_local_user = ДА 

По подразбиране, от съображения за сигурност, когато chroot е активиран, vsftpd ще откаже да качва файлове, ако в директорията, в която са заключени потребителите, може да се пише.

Използвайте едно от решенията по-долу, за да разрешите качванията, когато е активиран chroot:

4. Пасивни FTP връзки #

По подразбиране vsftpd използва активен режим. За да използвате пасивен режим, задайте минималния и максималния обхват на портовете:

/ etc / vsftpd.конф
pasv_min_port = 30000 pasv_max_port = 31000 

Можете да използвате всеки порт за пасивни FTP връзки. Когато е активиран пасивният режим, FTP клиентът отваря връзка със сървъра на произволен порт в избрания от вас диапазон.

5. Ограничаване на потребителския вход #

Можете да конфигурирате vsftpd да позволява само на определени потребители да влизат. За целта добавете следните редове в края на файла:

/ etc / vsftpd.конф
userlist_enable = ДА userlist_file = / etc / vsftpd.user_list userlist_deny = НЕ 

Когато тази опция е активирана, трябва изрично да посочите кои потребители могат да влязат, като добавите потребителските имена към / etc / vsftpd.user_list файл (по един потребител на ред).

6. Осигуряване на предавания с SSL / TLS #

За да шифровате FTP предаванията със SSL / TLS, ще трябва да имате SSL сертификат и да конфигурирате FTP сървъра да го използва.

Можете да използвате съществуващ SSL сертификат, подписан от доверен сертифициращ орган, или да създадете самоподписан сертификат.

Ако имате домейн или поддомейн, сочещ към IP адреса на FTP сървъра, можете бързо да генерирате безплатен сертификат Let's Encrypt SSL.

Ще генерираме 2048-битов частен ключ и самоподписан SSL сертификат, който ще бъде валиден десет години:

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

И частният ключ, и сертификатът ще бъдат записани в един и същ файл.

След като SSL сертификатът е създаден, отворете конфигурационния файл vsftpd:

sudo nano / etc / vsftpd.конф

Намери rsa_cert_file и rsa_private_key_file директиви, променете техните стойности на пам път на файла и задайте ssl_enable директива към ДА:

/ etc / vsftpd.конф
rsa_cert_file = / etc / ssl / private / vsftpd.pem rsa_private_key_file = / etc / ssl / private / vsftpd.pem ssl_enable = ДА 

Ако не е посочено друго, FTP сървърът ще използва само TLS за осъществяване на сигурни връзки.

Рестартирайте услугата vsftpd #

След като приключите с редактирането, конфигурационният файл vsftpd (с изключение на коментарите) трябва да изглежда по следния начин:

/ etc / vsftpd.конф
Listen = НЕ listen_ipv6 = ДА anonim_nable = НЕ local_enable = ДА write_enable = ДА dirmessage_enable = ДА use_localtime = ДА xferlog_enable = ДА connect_from_port_20 = ДА chroot_local_user = ДА secure_chroot_dir = / var / име / vs_ft / private / vsftpd.pem rsa_private_key_file = / etc / ssl / private / vsftpd.pem ssl_enable = ДА user_sub_token = $ ПОТРЕБИТЕЛ local_root = / home / $ USER / ftp pasv_min_port = 30000 pasv_max_port = 31000 userlist_enable = ДА userlist_file = / etc / vsftpd.user_list userlist_deny = НЕ 

Запазете файла и рестартирайте услугата vsftpd, за да влязат в сила промените:

sudo systemctl рестартирайте vsftpd

Отваряне на защитната стена #

Ако използвате защитна стена на UFW, ще трябва да разрешите FTP трафик.

За да отворите порта 21 (FTP команден порт), порт 20 (FTP порт за данни) и 30000-31000 (Обхват на пасивните портове), изпълнете следните команди:

sudo ufw позволяват 20: 21 / tcpsudo ufw позволяват 30000: 31000 / tcp

За да избегнете заключване, уверете се, че сте пристанище 22 е отворено:

sudo ufw позволяват OpenSSH

Презаредете правилата на UFW, като деактивирате и активирате отново UFW:

sudo ufw забраниsudo ufw разреши

За да проверите изпълнението на промените:

sudo ufw статус
Състояние: активен Към действие от - ------ ---- 20: 21 / tcp ALLOW Anywhere 30000: 31000 / tcp ALLOW Anywhere OpenSSH ALLOW Anywhere 20: 21 / tcp (v6) ALLOW Anywhere (v6) 30000: 31000 / tcp (v6) ALLOW Anywhere (v6) OpenSSH (v6) ALLOW Anywhere (v6) 

Създаване на FTP потребителски номер

За да тестваме FTP сървъра, ще създадем нов потребител.

  1. Създайте нов потребител с име newftpuser:

    sudo adduser newftpuser
  2. Добавете потребителя към списъка с разрешени FTP потребители:

    echo "newftpuser" | sudo tee -a / etc / vsftpd.user_list
  3. Създайте дървото на FTP директории и задайте правилните разрешения:

    sudo mkdir -p / home / newftpuser / ftp / uploadsudo chmod 550 / home / newftpuser / ftpsudo chmod 750 / home / newftpuser / ftp / uploadsudo chown -R newftpuser: / home / newftpuser / ftp

    Както беше обсъдено в предишния раздел, потребителят ще може да качва своите файлове в ftp / качване директория.

Към този момент вашият FTP сървър е напълно функционален. Трябва да можете да се свързвате със сървъра с помощта на всеки FTP клиент, който може да бъде конфигуриран да използва TLS криптиране, като FileZilla .

Деактивиране на Shell Access #

По подразбиране при създаването на потребител, ако не е изрично посочено, потребителят ще има SSH достъп до сървъра. За да деактивирате достъпа до черупки, създайте нова обвивка, която ще отпечата съобщение, казващо на потребителя, че акаунтът му е ограничен само до FTP достъп.

Изпълнете следните команди, за да създадете / bin / ftponly файл и го направете изпълним:

echo -e '#!/ bin / sh \ necho "Този акаунт е ограничен само до FTP достъп."'| sudo tee -a / bin / ftponlysudo chmod a + x / bin / ftponly

Добавете новата обвивка към списъка с валидни черупки в / и т.н. / черупки файл:

echo "/ bin / ftponly" | sudo tee -a / и т.н. / черупки

Променете потребителската обвивка на / bin / ftponly:

sudo usermod newftpuser -s / bin / ftponly

Можете да използвате същата команда, за да промените черупката на всички потребители, на които искате да дадете само FTP достъп.

Заключение №

Показахме ви как да инсталирате и конфигурирате сигурен и бърз FTP сървър на вашия Ubuntu 20.04 система.

Ако имате въпроси или отзиви, не се колебайте да оставите коментар.

Контролирайте и управлявайте движението на мишката между множество монитори в Windows 10
Двоен дисплей на мишката ви позволява да контролирате и конфигурирате движението на мишката между множество монитори, като забавя движенията му близо ...
WinMouse ви позволява да персонализирате и подобрите движението на показалеца на мишката на компютър с Windows
Ако искате да подобрите функциите по подразбиране на показалеца на мишката, използвайте безплатна програма WinMouse. Той добавя още функции, за да ви ...
Бутонът на левия бутон на мишката не работи в Windows 10
Ако използвате специална мишка с вашия лаптоп или настолен компютър, но бутонът на левия бутон на мишката не работи на Windows 10/8/7 по някаква причи...