Показать статистику
0 голосов
от (1.6тыс. баллов)
3.4тыс. просмотров 1 ответов

1 Ответ

0 голосов
от (26.4тыс. баллов)

Наша цель состоит в том, чтобы установить и настроить FTP-сервер в Debian 9 Stretch, обеспечивающий доступ как анонимного, так и локального пользователя

Рассмотрим как установить и настроить FTP-сервер с помощью vsFTPd демона.
А также рассмотрим различные конфигурации, чтобы разрешить доступ для записи или только для чтения анонимному пользователю, а также локальным пользователям. 

Установка vsFTPd

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

# apt install vsftpd ftp

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

Как уже упоминалось, указанный выше файл конфигурации предоставит доступ только для чтения любому системному пользователю, указанному в /etc/passwd файле. Используйте ftp команду и попытайтесь подключиться, используя имя пользователя и пароль любого из пользователей локальной системы:

# 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 как указано ниже:

allow_writeable_chroot=YES
...