- Configure vsftpd for anonymous write access in /var/ftp/pub
- 1. Prerequisites
- 2. Configure vsftpd
- 3. Configure iptables
- 4. Configure SELinux
- 5. Configure permissions
- Настройка анонимного доступа к серверу Ubuntu 16.04 с помощью vsftp
- Требования
- 1: Установка vsftp
- 2: Настройка брандмауэра
- 3: Подготовка места для файлов
- 4: Настройка анонимного доступа
- 5: Тестирование анонимного доступа
- 6: Авторизованное подключение
- Заключение
- Установка сервера vsFTPd на Ubuntu 18.04. Часть первая
- Установка FTP сервера
- Настройка анонимного доступа
- Доступ на чтение
- Доступ на запись
- Настройка авторизованного доступа
- Доступ на чтение
- Доступ на запись
- Защита FTP-сервера
- Сервер FTP
- Содержание
- Сервер FTP
- vsftpd — установка FTP сервера
- Настройка анонимного доступа по FTP
- Настройка авторизованного доступа по FTP
- Защита FTP
- Ограничение пользователей
- Шифрование
Configure vsftpd for anonymous write access in /var/ftp/pub
Today we’ll see how to simply configure write access to anonymous user in /var/ftp/pub on a Red Hat based system via FTP using the vsftpd daemon.
1. Prerequisites
First of all, you need to install vsftpd:
2. Configure vsftpd
Edit youd vsftpd configuration file ( /etc/vsftpd/vsftpd.conf ) and ensure the following lines are uncommented and with these values:
And if you want your anonymous users to create directories, you will need:
Don’t forget to restart the service after any modification:
3. Configure iptables
To be able to use passive mode in FTP, you will need to make iptables load the ip_conntrack_ftp module. To do this, edit the IPTABLES_MODULES in the /etc/sysconfig/iptables-config file. If no other modules were already loaded, the line should finally look like:
Then enable the correct ports (you will certainly limit the sources here for security. This example is the simplest):
4. Configure SELinux
Ensure your SELinux is set to Enforcing ( getenforce ). If not, you should consider set it to Enforcing for more security ( setenforce 1 ).
You need to set the SELinux allow_ftpd_anon_write boolean set to on :
5. Configure permissions
The directory we want the anonymous user to put files in is /var/ftp/pub so we will ensure that this folder is writable by the ftp user:
And you should ensure that your dirctory has the correct SELinux context:
Now test from any client that should be able to connect and put a dummy_file (I’m using lftp here but you could test with any other client).
Источник
Настройка анонимного доступа к серверу Ubuntu 16.04 с помощью vsftp
FTP (File Transfer Protocol) – это сетевой протокол для обмена файлами между сервером и клиентом. Поскольку FTP передаёт данные в незашифрованном виде, он считается крайне опасным; вместо него рекомендуется использовать vsftp – версию протокола, которая поддерживает шифрование данных.
Многие пользователи сети Интернет предпочитают загружать данные с помощью браузера с помощью https; пользователи, имеющие навыки работы с командной строкой, обычно используют безопасные протоколы вроде scp или sFTP.
FTP часто используется для поддержки приложений и рабочих процессов со специфическими потребностями. Если ваше приложение позволяет вам выбирать протокол, выберите более современное решение, например, vsftp. Оптимизированный и высокопроизводительный протокол vsftp обеспечивает надежную защиту от уязвимостей, обнаруженных в других версиях FTP. Кроме того, он является протоколом по умолчанию для многих дистрибутивов Linux.
Данное руководство поможет установить и настроить vsftp для поддержки анонимных загрузок с сайта, предназначенного для широкого распространения публичных файлов.
Примечание: Вместо FTP для управления файлами рекомендуется использовать scp, sFTP или любой другой защищенный протокол.
Требования
- Сервер Ubuntu 16.04 (о начальной настройке сервера можно узнать здесь).
- Пользователь с правами sudo.
1: Установка vsftp
Обновите индекс пакетов и установите демон vsftp:
sudo apt update
sudo apt install vsftpd
После завершения установки создайте копию конфигурационного файла (так в случае ошибки вы сможете вернуться к оригинальному файлу):
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.orig
2: Настройка брандмауэра
Для начала проверьте состояние брандмауэра и узнайте, какие сервисы он поддерживает на данный момент.
sudo ufw status
Status: active
To Action From
— —— —-
OpenSSH ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Примечание: Вывод команды может отличаться.
Как видите, в данном случае брандмауэр не блокирует только трафик ssh. Значит, нужно разблокировать трафик FTP.
Брандмауэр ufw поддерживает список приложений, которые можно разблокировать по имени; список доступен по команде:
sudo ufw app list
Однако FTP не входит в этот список.
Кроме того, ufw проверяет файл /etc/services, чтобы узнать порт и протокол сервисов. В этот файл нужно добавить данные FTP. Откройте порт 20 для ftp-data и порт 21 для команд ftp.
sudo ufw allow ftp-data
sudo ufw allow ftp
sudo ufw status
Проверьте состояние брандмауэра. Теперь правила выглядят так:
Status: active
To Action From
— —— —-
OpenSSH ALLOW Anywhere
21/tcp ALLOW Anywhere
20/tcp ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
21/tcp (v6)ALLOW Anywhere (v6)
20/tcp (v6)ALLOW Anywhere (v6)
3: Подготовка места для файлов
Создайте каталог для хранения загруженных файлов. Флаг -p создаст все несуществующие вышележащие каталоги. Структура каталогов FTP позволяет систематизировать файлы; позже вы сможете расширить её, добавив каталоги для зарегистрированных пользователей.
sudo mkdir -p /var/ftp/pub
Установите на каталог права nobody:nogroup. Позже нужно будет передать все права на файлы пользователю и группе ftp.
sudo chown nobody:nogroup /var/ftp/pub
Создайте в каталоге тестовый файл:
echo «vsftp test file» | sudo tee /var/ftp/pub/test.txt
Теперь можно протестировать работу vsftp.
4: Настройка анонимного доступа
В конфигурационном файле хранятся опции vsftp. Некоторые из них нужно отредактировать.
sudo nano /etc/vsftpd.conf
Найдите в файле следующие строки и отредактируйте их, как показано ниже:
. . .
# Allow anonymous FTP? (Disabled by default).
anonymous_enable= YES
#
We’ll set the local_enable setting to “NO” because we’re not going to allow users with local accounts to upload files via FTP. The comment in the configuration file can be a little confusing, too, because the line is uncommented by default.
# Uncomment this to allow local users to log in.
local_enable= NO
. . .
Кроме того, нужно добавить в файл новые параметры.
Примечание: Полный список опций можно найти с помощью команды:
Добавьте в конфигурационный файл следующие параметры. Файл не имеет чёткой структуры, потому неважно, в какой части файла будут находиться новые опции.
#
# Point users at the directory we created earlier.
anon_root=/var/ftp/
#
# Stop prompting for a password on the command line.
no_anon_password=YES
#
# Show the user and group as ftp:ftp, regardless of the owner.
hide_ids=YES
#
# Limit the range of ports that can be used for passive FTP
pasv_min_port=40000
pasv_max_port=50000
Примечание: Если вы используете Iptables вместо UFW, разблокируйте все необходимые порты между pasv_min_port и pasv_max_port самостоятельно.
Сохраните и закройте файл.
sudo systemctl restart vsftpd
Команда systemctl не отображает вывод некоторых команд. Чтобы убедиться, что всё прошло успешно, введите:
sudo systemctl status vsftpd
Команда должна вернуть:
Aug 17 17:49:10 vsftp systemd[1]: Starting vsftpd FTP server.
Aug 17 17:49:10 vsftp systemd[1]: Started vsftpd FTP server.
5: Тестирование анонимного доступа
Откройте в браузере такую ссылку:
Если всё работает должным образом, вы увидите каталог pub:
Index of /
Name Size Date Modified
Pub/ 8/24/16, 7:58:00 PM
Теперь можете открыть каталог pub. В нем должен находиться файл test.txt. щёлкните правой кнопкой и сохраните файл.
Index of /pub/
Name Size Date Modified
[parent directory] test.txt 16 B 8/24/16, 7:58:00 PM
Также вы можете выполнить эти операции с помощью командной строки. Подключитесь к серверу в пассивном режиме (на многих клиентах в командной строке для этого используется флаг –p). Пассивный режим позволяет создать подключение между сервером и клиентом, и при этом избежать изменения правил локального брандмауэра.
Примечание: Встроенный FTP-клиент командной строки Windows, ftp.exe, не поддерживает пассивного режима. Потому, пользователям Windows рекомендуется выбрать другой FTP клиент, например WinSCP.
Команда предложит указать имя пользователя. Вы можете ввести ftp или anonymous – они работают одинаково.
Connected to 203.0.113.0.
220 (vsftpd 3.0.3)
Name (203.0.113.0:21:8host): ftp
Нажмите enter. На экране появится:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
Убедитесь, что пассивный режим работает должным образом:
ls
227 Entering Passive Mode (45,55,187,171,156,74).
150 Here comes the directory listing.
drwxr-xr-x 2 ftp ftp 4096 Aug 17 19:30 pub
226 Directory send OK.
Теперь вы как анонимный пользователь можете переместить файл на локальную машину:
cd pub
get test.txt
ftp> get test.txt
227 Entering Passive Mode (45,55,187,171,156,73).
150 Opening BINARY mode data connection for test.txt (14 bytes).
226 Transfer complete.
16 bytes received in 0.0121 seconds (1325 bytes/s)
Такой вывод значит, что файл был успешно загружен.
Теперь нужно убедиться, что анонимные пользователи не могут выгружать свои файлы на сервер. Переименуйте только что загруженный файл и попробуйте выгрузить его.
put test.txt upload.txt
227 Entering Passive Mode (104,236,10,192,168,254).
550 Permission denied.
Как видите, анонимные пользователи могут только скачивать файлы с сервера на свою локальную машину.
6: Авторизованное подключение
Теперь нужно убедиться, что пользователи, у которых есть локальные аккаунты, не могут подключаться к серверу, поскольку их учётные данные не будут шифроваться. Когда команда запросит имя пользователя, вместо ftp или anonymous укажите имя пользователя с правами sudo.
ftp -p 203.0.113.0
Connected to 203.0.113.0:21.
220 (vsFTPd 3.0.3)
Name (203.0.113.0:21:your_user)
530 This FTP server is anonymous only.
ftp: Login failed.
ftp>
Заключение
Теперь vsftp поддерживает только анонимные загрузки. Это обеспечивает производительную работу приложений, которые не могут использовать более современные протоколы.
Источник
Установка сервера vsFTPd на Ubuntu 18.04. Часть первая
Протокол передачи файлов (FTP) — это TCP протокол для передачи файлов между компьютерами, работает на основе модели клиент-сервер. Серверный компонент постоянно слушает FTP-запросы от удаленных клиентов. При получении запроса он управляет входом и установкой соединения. На протяжении сессии он выполняет любые команды, переданные FTP клиентом.
Установка FTP сервера
Одним из самых популярных FTP-серверов является vsftpd — его легко устанавливать, настраивать и поддерживать.
При установке FTP-сервер автоматически прописывается в автозагрузку. Управлять его запуском, остановкой или перезапуском можно с помощью команд:
Разрешить или запретить запуск службы при загрузке системы:
Проверить, что служба vsftpd.service работает:
В процессе установки FTP-сервера создается пользователь ftp с домашней директорией /srv/ftp :
Доступ к FTP серверу возможен в двух режимах:
- В анонимном режиме удаленный клиент может получить доступ к FTP серверу, используя учетную запись «anonymous» или «ftp» и передав адрес email в качестве пароля. Данные в директории /srv/ftp доступны для всех анонимных пользователей.
- В авторизованном режиме пользователь должен иметь учетное имя и пароль в системе. Доступ к каталогам и файлам зависит от прав доступа пользователя, указанного при входе. Обычный пользователь ограничен своей домашней директорией.
Настройка анонимного доступа
Прежде чем вносить какие-либо изменения в конфигурационный файл, создадим копию файла конфигурации:
Доступ на чтение
Открываем на редактирование файл конфигурации:
Настройка vsftpd по умолчанию не разрешает подключаться анонимным пользователям. Чтобы это изменить, раскомментируем строчку:
После внесения изменений перезагружаем сервер:
Перейдем в /srv/ftp и создадим неколько каталогов, которые будут доступны на запись всем пользователям:
Для анонимного FTP-сервера лучше запретить подключение пользователям, зарегистрированным в системе:
Доступ на запись
По умолчанию анонимный пользователь не имеет возможности загружать файлы на FTP сервер. Чтобы это изменить, убираем комментарий на следующих строчках и перезагружаем vsftpd:
Чтобы анонимный пользователь мог создавать директории:
Настройка авторизованного доступа
Прежде чем вносить какие-либо изменения в конфигурационный файл, создадим копию файла конфигурации:
Доступ на чтение
Для аутентификации локальных пользователей надо раскомментировать строку и перезагрузить сервер:
Доступ на запись
По умолчанию vsftpd настроен на аутентификацию системных пользователей с возможностью только скачивать файлы. Чтобы разрешить пользователям загружать файлы, надо раскомментировать строку и перезагрузить сервер:
Защита FTP-сервера
В файле /etc/vsftpd.conf существуют опции, помогающие сделать vsftpd более безопасным. Например, данная опция позволяет поместить пользователя в «заточение», чтобы он не мог выходить из своего домашнего каталога:
Если при попытке подключения возникла ошибка:
То это значит, что локальный пользователь имеет доступ на запись в домашний каталог, чего быть не должно. Это легко исправить, если прописать /home каталогом, куда будут попадать локальные пользователи после входа на FTP сервер. Тогда каждый из них будет иметь возможность писать только в свой домашний каталог:
Еще один способ решения проблемы — отменить проверку записи в домашний каталог:
Источник
Сервер FTP
Содержание
Сервер FTP
vsftpd — установка FTP сервера
Для запуска сервиса требуется добавить его в автозагрузку. Начиная с версии Ubuntu 15.04 используется Systemd, поэтому для добавления vsftpd в автозапуск надо ввести следующие команды:
В Ubuntu Server может использоваться файервол ufw. Тогда вам потребуется разрешить порты 20 и 21
Конфигурационный файл содержит много параметров настройки. Информация по каждому параметру доступна в этом же файле. В качестве альтернативы вы можете посмотреть системное руководство по команде
для уточнения деталей по каждому параметру.
Настройка анонимного доступа по FTP
Настройка vsftpd по умолчанию не разрешает анонимную загрузку. Если вы хотите разрешить анонимную загрузку, измените в /etc/vsftpd.conf следующее:
В процессе установки создается пользователь ftp с домашним каталогом /srv/ftp. Это каталог по умолчанию для FTP .
Если вы желаете поменять его расположение, например, на /srv/files/ftp, просто создайте новый каталог и измените домашний каталог пользователя ftp:
После изменений перезапустите vsftpd:
Под конец скопируйте все файлы и каталоги, которые вы хотите сделать доступными для анонимного FTP в /srv/files/ftp (или /srv/ftp, если вы хотите оставить настройки по умолчанию).
Настройка авторизованного доступа по FTP
Для аутентификации локальных пользователей надо раскоментировать строчку
По умолчанию vsftpd настроен на аутентификацию системных пользователей с возможностью получать файлы. Если вы хотите пользователям разрешить загружать файлы, измените в /etc/vsftpd.conf:
после чего перезагрузите vsftpd:
Защита FTP
Ограничение пользователей
В /etc/vsftpd.conf существуют опции, помогающие сделать vsftpd более безопасным. Например, данная опция позволяет поместить локального пользователя в chroot() «заточение», выше которого (по дереву каталогов) он не сможет подняться.
Вы также можете определить список пользователей, имеющих доступ только в домашний каталог:
После снятия комментариев с этих опций, создайте /etc/vsftpd.chroot_list, содержащий список пользователей по одному на строку. Затем перезапустите vsftpd:
Если при попытке подключения вы видите ошибку 1) :
то это значит, что локальный пользователь имеет доступ на запись в домашний каталог, чего быть не должно. Способов решения этой ошибки несколько:
Шифрование
Для настройки FTPS, добавьте в конец файла /etc/vsftpd.conf следующее:
Также обратите внимание на опции сертификата и ключа:
По умолчанию эти опции установлены в значения, предоставленные пакетом ssl-cert. Для рабочей среды они должны быть заменены на сертификат и ключ, созданные для определенного компьютера. Для дополнительной информации смотрите раздел Сертификаты.
Теперь перегрузите vsftpd и неанонимные пользователи будут использовать FTPS:
Это необходимо, поскольку по умолчанию vsftpd использует авторизацию PAM, а файл настроек /etc/pam.d/vsftpd содержит:
Модуль PAM shells ограничивает доступ к оболочкам, перечисленным в файле /etc/shells.
Источник