Установка и настройка vsftpd в linux debian с загрузкой файлов в каталог пользователя

VIRTUAL_USERS_2

Этот пример является дополнением к примеру «VIRTUAL_USERS», и описывает чуть более сложную настройку.

Предположим, что нам нужно два типа виртуальных пользователей. Первый тип — это виртуальные пользователи, которые могут только просматривать и скачивать с vsftpd содержимое, а второй тип — это те виртуальные пользователи, которые помимо закачки с vsftpd существующего содержимого, могут загружать на vsftpd новое содержимое.

Для того, чтобы содержать несколько типов виртуальных пользователей, потребуется использовать возможность гибкой настройки vsftpd для каждого пользователя отдельно (добавлено в v1.1.0).

В предыдущем примере виртуальных пользователей было создано два пользователя — «tom» и «fred».

Предположим, что нам нужно, чтобы «fred» имел доступ на запись, чтобы загружать на vsftpd новые файлы, в то время как «tom» может только качать с vsftpd.

Шаг 1) Включение настроек vsftpd для каждого пользователя отдельно

Для включения в vsftpd этой гибкой функциональной возможности, добавьте следующее в файл «/etc/vsftpd.conf»:

user_config_dir=/etc/vsftpd_user_conf

И затем создайте этот каталог:

mkdir /etc/vsftpd_user_conf

Шаг 2) Дать пользователю «tom» возможность читать все файлы / каталоги.

At the end of the last example, we noted that the virtual users can only see world-readable files and directories. We could make the /home/ftpsite directory world readable, and upload files with world-read permission. But another way of doing this is giving tom the ability to download files which are not world-readable.

В конце последнего примера мы заметили, что виртуальные пользователи могут ТОЛЬКО ВИДЕТЬ общедоступные для чтения файлы и каталоги. Мы могли сделать каталог «/home/ftpsite» не только общедоступным для чтения, но и общедоступным для загрузки файлов на vsftpd. Но другой способ сделать это дает «tom» разрешение скачивать с vsftpd файлы, которые не общедоступны для чтения.

Для пользователя «tom», укажите «NO» в значении параметра настройки «anon_world_readable_only»:

echo "anon_world_readable_only=NO" > /etc/vsftpd_user_conf/tom

Проверим — войдите в систему как tom, и теперь «ls» возвратит список содержимого каталога! Войдите в систему как «fred», и этого не будет. ПРИМЕЧАНИЕ — перезапустите vsftpd, после редактирования файла «/etc/vsftpd.conf», для того чтобы изменённые настройки вступили в силу. (Продвинутые пользователи могут отправить сигнал «SIGHUP» на процесс vsftpd, который слушает входящие соединения).

Шаг 3) Даём пользователю «fred» разрешение на чтение всех файлов / каталогов и создавать новые, но не вмешиваться в существующие файлы.

echo "anon_world_readable_only=NO" > /etc/vsftpd_user_conf/fred
echo "write_enable=YES" >> /etc/vsftpd_user_conf/fred
echo "anon_upload_enable=YES" >> /etc/vsftpd_user_conf/fred

Проверим — войдите в систему как «tom», и вы не сможете загружать на vsftpd файлы. Войдите в систему как «fred», и вы можете! Попытайтесь удалить файл и как «tom» и как «fred» — вы не сможете.

8: Отключение доступа к оболочке

Если ваш клиент не поддерживает TLS, вы можете повысить безопасность сервера, отключив другие методы входа. Одним из относительно простых методов является создание пользовательской оболочки. Она не будет обеспечивать шифрование, но ограничит доступ уязвимой учетной записи к файлам, доступным по FTP.

Откройте файл ftponly:

Добавьте сообщение:

Измените права, чтобы сделать файл исполняемым:

Откройте список валидных оболочек.

Добавьте в конец списка:

Обновите оболочку пользователя:

Попробуйте войти как пользователь 8host:

На экране появится:

Это значит, что пользователь не может подключаться через ssh и ограничен доступом FTP.

Step 7 — Testing TLS with FileZilla

Most modern FTP clients can be configured to use TLS encryption. We will demonstrate how to connect with FileZilla because of its cross-platform support. Consult the documentation for other clients.

When you first open FileZilla, find the Site Manager icon just above the word Host, the left-most icon on the top row. Click it:

A new window will open. Click the New Site button in the bottom right corner:


Under My Sites a new icon with the words New Site will appear. You can name it now or return later and use the Rename button.

Fill out the Host field with your domain name or IP address. Under the Encryption drop down menu, select Require explicit FTP over TLS.

For Logon Type, select Ask for password. Fill in your FTP user in the User field:

Click Connect at the bottom of the interface. You will be asked for the user’s password:

Click OK to connect. You should now be connected with your server with TLS/SSL encryption.

Upon success, you will be presented with a server certificate that looks like this:

When you’ve accepted the certificate, double-click the folder and drag to the left to confirm that you’re able to download files:

When you’ve done that, right-click on the local copy, rename it to and drag it back to the server to confirm that you can upload files:

You’ve now confirmed that you can securely and successfully transfer files with SSL/TLS enabled.

Установка vsFTPd

Начнем с установки сервера vsFPTd и клиента FTP:

# apt install vsftpd ftp

По умолчанию сервер vsFTPd настроен так, чтобы пользователи системы могли обращаться к своим домашним каталогам с доступом только для чтения. Ниже приведен файл конфигурации vsFTPd по умолчанию /etc/vsftpd.conf:

# ftp localhost 

Получите следующее

Если вам нужен доступ только для чтения от ваших локальных пользователей, то все готово.

Разрешить пользователю доступ для записи

Чтобы добавить права на запись для всех пользователей системного локального пользователя, раскомментируйте или добавьте следующий раздел write_enable=YES. Новый файл конфигурации состоит из:

Затем перезапустите ваш vsFTPd:

# systemctl restart vsftpd

Выполните новый тест как показано ниже с ftp командой, чтобы подтвердить доступ на запись:

# ftp localhost

Разрешить только конкретным пользователям

На данный момент наш FTP-сервер разрешает доступ любому пользователю системы, определенному в /etc/passwd файле. Чтобы разрешить вход в систему только определенным пользователям, мы можем включить в наш файл конфигурации следующие строки:

userlist_file=/etc/vsftpd.userlist
userlist_enable=YES

Вышеуказанное позволит включить предварительно определенный список пользователей, в котором любой пользователь, указанный в списке /etc/vsftpd.userlist(одно имя пользователя в строке), будет иметь запрещенный доступ к FTP, в то время как все остальные пользователи системы смогут войти в систему. Давайте создадим новый /etc/vsftpd.userlist список пользователей, состоящий из одного пользователя serg:

# echo serg > /etc/vsftpd.userlist

Перезапустите сервер vsFTPd:

# systemctl restart vsftpd

Выполните новый тест с ftp командой, чтобы подтвердить отказ в доступе к FTP-серверу для serg пользователя:

# ftp localhost 

Однако, если вам нужно иметь возможность входить только с определенными пользователями /etc/vsftpd.userlist, добавьте следующую опцию конфигурации userlist_deny=NOв ваш файл конфигурации vsFTPd /etc/vsftpd.conf. Ниже приведен наш текущий /etc/vsftpd.confфайл конфигурации:

Разрешить доступ анонимным пользователям

На этом этапе мы также собираемся разрешить доступ только для чтения анонимным пользователям. Давайте начнем создавать новый каталог, который будет использоваться в качестве корневого каталога для анонимного пользователя, например. /var/ftp В целях тестирования мы также можем поместить произвольный файл тестирования в /var/ftp каталоге:

# mkdir /var/ftp/
# chmod 555 /var/ftp/
# chown ftp.ftp /var/ftp/
# touch /var/ftp/ANONYMOUS.TXT

Кроме того, включите следующие строки в /etc/vsftpd.conf файл конфигурации, чтобы определить анонимный домашний каталог и анонимный доступ:

anon_root=/var/ftp
anonymous_enable=YES

При желании добавьте no_anon_password=YES строку, чтобы указать vsFTPd, чтобы анонимный пользователь мог автоматически входить без пароля. Поскольку теперь мы определили список пользователей, мы также должны добавить anonymous пользователя в список:

# echo anonymous >> /etc/vsftpd.userlist
# cat /etc/vsftpd.userlist 
имя_пользователя
anonymous

Как обычно, перезагрузите FTP-сервер и выполните проверку текущей конфигурации:

# systemctl restart vsftpd

Проверить анонимный вход:

# ftp localhost
И видим примерно следующее

Ниже вы можете найти наш текущий файл конфигурации vsFTPd:

Включить анонимному пользователю доступ для записи

Далее давайте разрешим анонимному пользователю загружать файлы и создавать новые каталоги и многое другое. Для этого создайте новый каталог upload в /var/ftp каталоге:

# mkdir /var/ftp/upload
# chown ftp.ftp /var/ftp/upload/

Затем добавьте следующие строки в файл конфигурации vsFTPd как указано ниже:

anon_upload_enable=YES
anon_other_write_enable=YES
anon_mkdir_write_enable=YES

Перезагрузите ваш сервер

# systemctl restart vsftp

После перезагрузки анонимный пользователь сможет загружать файлы, создавать каталоги, переименовывать файлы:

# ftp localhost

Вывод примерно такой:

 Вы можете найти наш окончательный файл конфигурации vsFTPd как указано ниже:

Сообщение об ошибке:

# ftp localhost 

Вышестоящее указывает, что ваш anon_root каталог доступен для записи. Решение - сделать его доступным только для чтения. Пример:
# chmod 555 /var/ftp

Или попробуйте добавить следующую строку в файл конфигурации vsFTPd как указано ниже:

Step 7 — Testing TLS with FileZilla

Most modern FTP clients can be configured to use TLS encryption. We will demonstrate how to connect with FileZilla because of its cross-platform support. Consult the documentation for other clients.

When you first open FileZilla, find the Site Manager icon just above the word Host, the left-most icon on the top row. Click it:

A new window will open. Click the New Site button in the bottom right corner:


Under My Sites a new icon with the words New Site will appear. You can name it now or return later and use the Rename button.

Fill out the Host field with the name or IP address. Under the Encryption drop down menu, select Require explicit FTP over TLS.

For Logon Type, select Ask for password. Fill in your FTP user in the User field:

Click Connect at the bottom of the interface. You will be asked for the user’s password:

Click OK to connect. You should now be connected with your server with TLS/SSL encryption.

Upon success, you will be presented with a server certificate that looks like this:

When you’ve accepted the certificate, double-click the folder and drag to the left to confirm that you’re able to download files:

When you’ve done that, right-click on the local copy, rename it to and drag it back to the server to confirm that you can upload files:

You’ve now confirmed that you can securely and successfully transfer files with SSL/TLS enabled.

Установка Debian 11

Для начала я скачал iso-образ Debian 11, затем скачал Rufus и создал загрузочную флешку. Описывать особенно нечего, программа интуитивно понятная: просто выбираем образ для записи, выбираем носитель, но который этот образ писать и нажимаем start.

Загрузочная флешка готова — приступим к установке. Я не стал использовать графическую установку, а выбрал пункт Install.

Первый экран — это выбор языка (я выбрал English), затем предлагается выбрать страну (мой выбор: other — Europe — Russian Federation), далее locale (United States), наконец, раскладка клавиатуры (American English). А вот после этого у меня выпало такое сообщение:

прошу прощения за качество картинки

Сообщение говорит примерно следующее: некоторое из устройств требует не бесплатное (несвободное) микропрограммное обеспечение. Оно может быть загружено с внешнего носителя, например с флешки. В моем случае у материнской платы только два usb-порта: один занят клавиатурой, другой — флешкой, с которой устанавливается система. Но есть еще и кард-ридер!

Я нашел карту SD и, записав на нее требуемый файл (сслыка на rtl8723befw_36.bin), нажал yes. Теперь будет работать wi-fi модуль. После этого выпадает окно с выбором сетевого адаптера, который будет нами использоваться. Я выбрал wi-fi.

Тут многие скажут — СТОП, wi-fi канал уже проводного и будут правы, но я делаю не профессиональный хостинг, это просто проект для саморазвития, к тому же разве не интересно, как это будет работать после того как установщик подхватил прошивку ;) Итак, выбираю wi-fi модуль и в следующем окне вижу доступные беспроводные сети. Выбираю свою nik’s_wireless, ввожу пароль и все подключилось.

Далее задал имя хоста (debian), имя домена (lan), пароль root, полное имя пользователя (Nikolai Kutuzov), имя учетной записи (nikkutuzov), пароль учетной записи, часовой пояс.

Потом работа с разделами (Guided — use entire disk), выбор диска, на который будем устанавливать систему. Схему я выбрал рекомендуемую (All files in one partition). Нажимаю Finish partitioning and write changes to disk — заканчиваю с разметкой и записываю изменения на диск. Настраиваю менеджер пакетов (Russian Federation — proxy (если не используется прокси, оставьте строку пустой) — deb.debian.org — NO). Я почти у финиша и мне предлагают выбрать какое программное обеспечение установить, я оставил звездочки только у web server и ssh server:

На запрос об установке Grub даю положительный ответ, выбираю диск, на который его установить. На следующем экране вижу сообщение об окончании установки, нажимаю continue и после перезагрузки вижу:

Настройка SSL/TLS

TLS позволяет настроить безопасный FTP, передача данных через который осуществляется по шифрованному каналу.

Для данной цели можно использовать самоподписанный сертификат. Чтобы его создать, вводим команду:

openssl req -new -x509 -days 1461 -nodes -out /etc/ssl/certs/vsftpd.pem -keyout /etc/ssl/private/vsftpd.key -subj «/C=RU/ST=SPb/L=SPb/O=Global Security/OU=IT Department/CN=ftp.dmosk.local/CN=ftp»

* в данном примере мы создаем самоподписанный сертификат на 4 года для URL ftp.dmosk.local или ftp. Открытый ключ будет сохранен в файле /etc/ssl/certs/vsftpd.pem, закрытый — /etc/ssl/private/vsftpd.key. При желании, мы можем использовать купленный сертификат или получить его бесплатно у Let’s Encrypt.

Открываем на редактирование конфигурационный файл vsFTPd:

vi /etc/vsftpd.conf

Редактируем строки:

rsa_cert_file=/etc/ssl/certs/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.key
ssl_enable=YES

* где ssl_enable разрешает использование шифрования; rsa_cert_file — путь к открытому ключу; rsa_private_key_file — путь к закрытому ключу.

И дописываем следующие:

allow_anon_ssl=NO
force_local_data_ssl=NO
force_local_logins_ssl=NO
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
ssl_ciphers=HIGH

* где: 

  • allow_anon_ssl разрешает использовать SSL анонимным пользователям; 
  • force_local_data_ssl требует использования шифрования, и если установить YES, клиенты без шифрования не смогут подключиться; 
  • force_local_logins_ssl также требует подключение по SSL; 
  • ssl_tlsv1 — использовать TLS версии 1; 
  • ssl_sslv2 и ssl_sslv3 — использовать SSL версии 1 и 2; 
  • ssl_ciphers — выбор шифра. В данном примере мы говорим использовать максимально безопасный.

Перезапускаем FTP-сервер:

systemctl restart vsftpd

5: Тестирование FTP-доступа

На данный момент FTP-доступ есть только у пользователя 8host. Протестируйте эту настройку.

Анонимным пользователям должно быть отказано в доступе. Анонимный доступ отключен. Чтобы убедиться в этом, попробуйте подключиться анонимно. Если всё работает должным образом, на экране появится:

Закройте это соединение:

Всем пользователям, кроме 8host, должно быть отказано в доступе. Попробуйте создать подключение как другой пользователь.

Закройте это соединение:

Пользователю 8host должен иметь возможность создавать подключения, а также иметь права на чтение и запись. Попробуйте создать соединение как 8host:

Перейдите в каталог files и используйте команду get, чтобы переместить тестовый файл на локальную машину:

Теперь попробуйте выгрузить в этот каталог другой файл:

Закройте это соединение:

Step 6 — Securing Transactions

Since FTP does not encrypt any data in transit, including user credentials, we’ll enable TLS/SSL to provide that encryption. The first step is to create the SSL certificates for use with .

Let’s use to create a new certificate and use the flag to make it valid for one year. In the same command, we’ll add a private 2048-bit RSA key. By setting both the and flags to the same value, the private key and the certificate will be located in the same file:

You’ll be prompted to provide address information for your certificate. Substitute your own information for the highlighted values below:

For more detailed information about the certificate flags, see OpenSSL Essentials: Working with SSL Certificates, Private Keys and CSRs

Once you’ve created the certificates, open the configuration file again:

Toward the bottom of the file, you will see two lines that begin with . Comment them out so they look like this:

/etc/vsftpd.conf

Below them, add the following lines that point to the certificate and private key we just created:

/etc/vsftpd.conf

After that, we will force the use of SSL, which will prevent clients that can’t deal with TLS from connecting. This is necessary to ensure that all traffic is encrypted, but it may force your FTP user to change clients. Change to :

/etc/vsftpd.conf

After that, add the following lines to explicitly deny anonymous connections over SSL and to require SSL for both data transfer and logins:

/etc/vsftpd.conf

After this, configure the server to use TLS, the preferred successor to SSL, by adding the following lines:

/etc/vsftpd.conf

Finally, we will add two more options. First, we will not require SSL reuse because it can break many FTP clients. We will require “high” encryption cipher suites, which currently means key lengths equal to or greater than 128 bits:

/etc/vsftpd.conf

The finished file section should look like this:

/etc/vsftpd.conf

When you’re done, save and close the file.

Restart the server for the changes to take effect:

At this point, we will no longer be able to connect with an insecure command-line client. If we tried, we’d see something like:

Next, let’s verify that we can connect using a client that supports TLS.

Step 8 — Disabling Shell Access (Optional)

If you’re unable to use TLS because of client requirements, you can gain some security by disabling the FTP user’s ability to log in any other way. One relatively straightforward way to prevent it is by creating a custom shell. This will not provide any encryption, but it will limit the access of a compromised account to files accessible by FTP.

First, open a file called in the directory:

Add a message telling the user why they are unable to log in:

/bin/ftponly

Save the file and exit your editor.

Change the permissions to make the file executable:

Open the list of valid shells:

At the bottom add:

/etc/shells

Update the user’s shell with the following command:

Now try logging into your server as sammy:

You should see something like:

This confirms that the user can no longer to the server and is limited to FTP access only.

Настройка mariadb

Следующим этапом была настройка базы данных. Я использую mariadb. Её установка производится простой командой:

После установки нужно выполнить скрипт первоначальной настройки:

Вся предварительная настройка сводится к нескольким ответам:

  1. Ввести пароль root для текущей базы данных (не путать с root’ом системы!). Он пустой, поэтому просто нажимаю enter;

  2. При установке на системы Debian пользователь root MariaDB настроен для аутентификации с помощью плагина unix_socket , а не с помощью пароля. Во многих случаях это обеспечивает более высокую безопасность и удобство, однако это также может осложнить ситуацию, если вам нужно предоставить права администратора внешней программе (например, phpMyAdmin). Поэтому на предложение использовать этот плагин я ответил отрицательно, так как позже планирую поставить phpMyAdmin;

  3. На предложение установить пароль root’а нажимаю n. Дело в том, что в Debian учетная запись root для mariadb тесно связана с автоматизированным обслуживанием системы, так что мы не должны менять этот пароль. Позже я настрою дополнительную учетную запись для доступа через пароль;

  4. На вопрос об удалении анонимных пользователей отвечаю «y»;

  5. На запрет подключения под root’ом удаленно отвечаю «y»;

  6. Удалить тестовую базу данных — «y»;

  7. Наконец, сохраняем изменения, ответив на последний вопрос «y».

Теперь, как я говорил в пункте 3, настраиваю дополнительную учетную запись для входа под паролем:

Проверяю:

Популярные теги

ubuntu
linux
ubuntu_18_04
settings
debian
setup
apt
ubuntu_16_04
error
macos
upgrade
bash
hard-drive
command-line
package-management
wine
android
redhat
windows
dpkg
mint
server
problems
install
python
hardware
wifi
desktop
kernel
ubuntu_18_10
update
ubuntu_20_04
nvidia
network
docker
files
убунту
rhel
drivers
kali
filesystem
mount
windows_10
password
usb
web
security
kde
gnome
manjaro
kubuntu
ustanovka
software
virtualbox
updates
boot
disk
shell
partitioning
django
stretch
apache2
issues
ssd
mysql
keyboard
video_card
partition
sound
games
terminal
program
apt-get
macbook
installation
display
performance
vpn
video
lubuntu
driver
nginx
cron
xubuntu
wi_fi
centos
software-installation
git
disk_space
freebsd
backup
delete
scripting
user

os
dual-boot
dependencies
memory
hotkeys

7: Тестирование TLS с помощью FileZilla

Современные FTP-клиенты могут поддерживать шифрование TLS. Попробуйте подключиться с помощью одного из таких клиентов.

Примечание: В руководстве используется FileZilla. При желании вы можете выбрать другой клиент.

Откройте FileZilla и нажмите Site Manager (слева в верхнем ряду).

В появившемся окне нажмите New Site.

В записях My Sites появится New site. Вы можете выбрать название сейчас или вернуться к этому позже (с помощью кнопки Rename).

В поле Host укажите IP-адрес. В выпадающем меню Encryption выберите Require explicit FTP over TLS. В Logon Type выберите Ask for password. В поле User введите имя пользователя FTP. Нажмите Connect.

Программа запросит пароль пользователя. Введите его и нажмите OK. Теперь соединение с сервером шифруется через TLS/SSL. На экране появятся данные сертификата.

Приняв сертификат, дважды кликните по папке files и перетащите upload.txt в левую часть экрана, чтобы убедиться, что вы можете загружать файлы.

Затем кликните правой кнопкой по локальной копии файла, переименуйте его (например, в upload-tls.txt) и перетащите его обратно в правую часть экрана, чтобы убедиться, что вы можете подгружать файлы на сервер.

Каким лучше протоколом пользоваться в Debian

Многие юзеры Debian предпочитают использовать не FTP сервер, а VSFTPD. По сути, это тот же FTP, только он очень защищенный. Как известно, стандартный протокол FTP имеет слабую защиту: взломщики с легкостью могут перехватить пароли, использовать подбор для взлома аккаунтов, ломать сервер при помощи вирусов и т. д. Во VSFTPD все эти недостатки учтены. Кроме того, данный протокол работает гораздо быстрее, чем FTP, и поддерживает множество опций, включая виртуальных пользователей, регулирование скорости пропускания и прочие. В общем, нет причин отказаться от VSFTPD в сторону FTP для Debian.

Настройка сервера в Debian может проходить по-разному, в зависимости от того, что вы хотите получить в итоге. Рассмотрим различные конфигурации сервера FTP в Debian. Для начала вам необходимо установить пакет VSDFTPD. В Debian удобно работать при помощи консоли, потому в терминале введите команду: aptitude install vsftpd. Вместе с дистрибутивами после выполнения команды создается также пользователь FTP. Хоть в отчетах вы увидите сообщение о том, что домашний каталог не создан, он будет сгенерирован по адресу /home/ftp. Для настройки доступа для отдельных пользователей будет создан файл /etc/ftpusers, в котором вы сможете указать юзеров, вход на сервер для которых воспрещен.

Созданный пользователь FTP после установки VSFTPD вам не понадобится для работы на сервере, но он необходим для корректной работы хоста. Потому вам нужно создать других пользователей, которые смогут вести запись в корневой каталог сервера. Для этого в Debian нужно сначала создать группу пользователей, в которую вы занесете конкретного юзера. К примеру, добавляем группу ftpuser при помощи команды: addgroup ftpuser. Чтобы создать пользователя, который может работать с корневым каталогом сервера в Debian, воспользуйтесь командой вида: useradd -d путь/к/корневой/папке -g имя_группы имя_пользователя. Чтобы назначить пароль для созданного пользователя, используйте строку: passwd имя_пользователя.

Чтобы создать директорию в FTP сервере в ОС Debian вам понадобится команда mkdir, которая нужна как раз для генерации каталогов. К примеру: mkdir /var/ftp — эта команда создаст папку FTP внутри директории Var. После создания папки для сервера вам необходимо задать права доступа для этой папки, чтобы не каждый смог ее свободно редактировать. Настройка уровня прав проводится при помощи команды chmod. После нее нужно прописывать 3 цифры, которые и обозначают уровень доступа. Чем выше цифры (максимум до 7), тем выше доступ к редактированию каталога. Рекомендуется для всех устанавливать уровень доступа, равный трем пятеркам. Например: chmod 555 /var/ftp. А чтобы вы могли редактировать каталог вольно, без ограничений, поменяйте владельца папки, то есть его root-пользователя при помощи команды chown. И вот, как это будет выглядеть для созданной папки FTP и пользователя ftpuser: chown root:ftpuser /var/ftp.

Далее вам понадобится публичный каталог pub внутри директории FTP. Как создать его вы уже знаете — при помощи команды mkdir. Далее снова поменяйте владельца для этого каталога на вашего пользователя, например, на ftpuser, созданного ранее. Основная настройка сервера VSFTPD в Debian проходит при помощи файла конфигураций, расположенного по адресу: /etc/vsftpd.conf. Рекомендуется перед тем, как что-то изменять, сделать его резервную копию на всякий случай. Для этого пропишите: cp /etc/vsftpd.conf /etc/vsftpd.conf_old.

Теперь вы можете приступить к самому главному этапу вашей настройки — изменению файла конфигураций vsftpd.conf. Можете открыть его вручную при помощи мышки, а можете воспользоваться текстовым редактором, не выходя из терминала. Для этого введите команду cat /dev/null > /etc/vsftpd.conf, которая откроет файл конфигураций, как документ с текстом. А сделать это можно будет при помощи любого доступного у вас на компьютере редактора, к примеру, при помощи VIM — тогда вводим такую команду в терминал: vim /etc/vsftpd.conf.

Настройка vsftpd

Настройки сервера vsftpd хранятся в файле конфигурации . Большинство настроек хорошо задокументированы внутри файла. Чтобы узнать обо всех доступных вариантах, посетите официальную страницу vsftpd .

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

Начните с открытия файла конфигурации vsftpd:

1. Доступ по FTP

Мы разрешим доступ к FTP-серверу только локальным пользователям, найдем директивы и и убедимся, что ваша конфигурация соответствует приведенным ниже строкам:

/etc/vsftpd/vsftpd.conf

2. Включение загрузки

параметр чтобы разрешить изменения файловой системы, такие как загрузка и удаление файлов.

/etc/vsftpd/vsftpd.conf

3. Chroot Jail

Предотвратите доступ пользователей FTP к файлам за пределами их домашних каталогов, раскомментировав директиву .

/etc/vsftpd/vsftpd.conf

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

Используйте один из приведенных ниже методов, чтобы разрешить загрузку при включенном chroot.

  • Метод 1. — Рекомендуемый способ разрешить загрузку — оставить включенным chroot и настроить каталоги FTP. В этом руководстве мы создадим каталог внутри дома пользователя, который будет служить каталогом и каталогом загрузки с возможностью записи для загрузки файлов.

    /etc/vsftpd/vsftpd.conf

  • Метод 2. Другой вариант — добавить следующую директиву в файл конфигурации vsftpd. Используйте эту опцию, если вам необходимо предоставить пользователю доступ с правом записи к его домашнему каталогу.

    /etc/vsftpd/vsftpd.conf

4. Пассивные FTP-соединения

vsftpd может использовать любой порт для пассивных FTP-соединений. Мы укажем минимальный и максимальный диапазон портов, а затем откроем диапазон в нашем брандмауэре.

Добавьте в файл конфигурации следующие строки:

/etc/vsftpd/vsftpd.conf

5. Ограничение входа пользователя

Чтобы разрешить вход на FTP-сервер только определенным пользователям, добавьте следующие строки после строки :

/etc/vsftpd/vsftpd.conf

Когда этот параметр включен, вам необходимо явно указать, какие пользователи могут входить в систему, добавив имена пользователей в файл (по одному пользователю на строку).

6. Защита передачи с помощью SSL / TLS

Чтобы зашифровать FTP-передачу с помощью SSL / TLS, вам потребуется сертификат SSL и настроить FTP-сервер для его использования.

Вы можете использовать существующий сертификат SSL, подписанный доверенным центром сертификации, или создать самозаверяющий сертификат.

Если у вас есть домен или субдомен, указывающий на IP-адрес FTP-сервера, вы можете легко создать бесплатный SSL-сертификат Let’s Encrypt .

В этом руководстве мы создадим самоподписанный сертификат SSL с помощью инструмента .

Следующая команда создаст 2048-битный закрытый ключ и самозаверяющий сертификат, действительный в течение 10 лет. И закрытый ключ, и сертификат будут сохранены в одном файле:

После создания SSL-сертификата откройте файл конфигурации vsftpd:

Найти и директивы, изменить их значения на путь к файлу и установите директиву :

/etc/vsftpd/vsftpd.conf

Если не указано иное, FTP-сервер будет использовать только TLS для безопасных соединений.

Перезапустите службу vsftpd

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

/etc/vsftpd/vsftpd.conf

Сохраните файл и перезапустите службу vsftpd, чтобы изменения вступили в силу:

Рейтинг
( Пока оценок нет )
Editor
Editor/ автор статьи

Давно интересуюсь темой. Мне нравится писать о том, в чём разбираюсь.

Понравилась статья? Поделиться с друзьями:
Работатека
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: