Настройка анонимных пользователей в vsftpd. Тестируем настроенный vsftpd сервер

22.04.2019 Разное

Зачастую можно столкнуться с задачами, когда необходимо обеспечить доступ к внутренним корпоративным (или домашним) ресурсам из Интернета. В этом случае, нужно выполнить, так называемый "проброс портов" . Что это такое, зачем это нужно и как настраивать на примере роутера Mikrotik 951Ui-2HnD – расскажем в данной статье.

Как это работает?

Давайте представим себе следующую ситуацию – у нас есть корпоративная сеть, в которой пока ещё локально разворачивается сервер IP-телефонии на базе Asterisk, управляется он при помощи графической оболочки FreePBX. Задача состоит в том, чтобы предоставить возможность администратору сервера управлять им из Интернета.

Итак, имеем следующую схему:


Для начала остановимся на понятии “проброс порта”. Проброс порта – это функционал маршрутизаторов, поддерживающих NAT , который позволяет получить доступ к ресурсам локальной сети, из Интернета по средствам перенаправления трафика определенных портов с внешнего адреса маршрутизатора на внутренний адрес хоста в локальной сети.

Иными словами, мы должны настроить на роутере правило, в котором при поступлении TCP запроса на внешний адрес, в данном случае 35.135.235.15 и определенный порт, например 23535 , открывался бы доступ к интерфейсу FreePBX, который в данным момент доступен только в локальной сети по адресу 192.168.1.100 и, соответственно на порту 80 (HTTP) .

Настройка

Перейдём к настройке. Заходим на адрес нашего роутера Mikrotik 951Ui-2HnD, видим следующее окно:



Скачиваем приложение WinBox . Вводим учётные данные и подключаемся. По умолчанию логин - admin , пароль - пустой. Если у вас уже настроены логин и пароль, то укажите их.




Открывается следующее окно:



Нажимаем на + , открывается страница добавления нового NAT- правила.


Задаём следующие параметры:

  • Chain dstnat - направление запроса из внешней сети во внутреннюю.
  • Protocol tcp , поскольку в нашем случае нужно предоставить доступ к HTTP страничке.
  • Dst.Port 23535 - это тот самый порт назначения, на который будет отправлять запрос из вне на получение доступа к FreePBX.
  • In.Interface all ethernet - входной интерфейс. Это интерфейс, которым роутер смотрит в Интернет и на котором он будет прослушивать указанный выше порт.

Должно получиться вот так:


На вкладках Advanced и Extra настраиваются расширенные опции, такие как лимит по битрейту, политика IPsec, время, в течение которого правило будет активно и так далее.

Переходим на вкладку Action и объясняем роутеру, какие действия он должен выполнить при поступлении запроса на указанный порт. Выбираем Action netmap , то есть трансляция с одного адреса на другой. To Addresses 192.168.1.100 , то есть адрес нашёго FreePBX. И последнее - To Ports 80 , то есть запрос на HTTP порт.

Многие начинающие микротиководы задают вопрос, как настроить в mikrotik проброс портов или по-другому перенаправление портов. В данной статье детально, на примерах опишу как настраивать это правильно и что делать, куда смотреть если проброс не работает. Для понимая этого материала вам нужны базовые знания работы NAT, строение ip пакета (то, что в нем есть адрес источника и отправителя) и TCP и UDP протоколы. Также потренироваться все это настраивать можно на эмуляторе . Думаю, вы это все знаете, так что давайте начнем.

]

Перенаправление портов Mikrotik

Все настройки по прокидыванию портов делаются в разделе IP -> Firewall -> Nat. Ниже опишу все параметры и на примере пробросим RDP 3389 на сервер или компьютер.

Стрелочками показано в какой раздел заходить, нажимаем + и создадим новое правило NAT. Итак:

  • Chain – здесь выбираем что будем заменять в ip пакете (то есть адрес отправителя или получателя). Для нашего примера с RDP выбираем dstnat.
  • Src. Address – можем указать тут конкретный ip с которого нужно осуществлять проброс порта (то есть если здесь указать 2.45.34.77, то при работающем правиле проброс будет работать только при подключении с этого адреса). Нам этого не надо поэтому оставляем пустым.
  • Dst. Address – здесь указываем белый ip нашего роутера к которому будет подключаться по RDP а он в свою очередь будет натить на сервер. (Здесь имеет смыслю указывать ip если у вас несколько белых адресов на интерфейсе.) В нашем случае оставляем пустым.
  • Protocol – выбираем какой протокол будем пробрасывать (RDP работает по TCP протоколу и порту 3389). Очевидно, выбираем
  • Src. Port – Порт с которого будет подключения. Оставляем пустым, для нашего примера он не нужен.
  • Dst. Port – вот здесь указываем 3389 как писалось выше.
  • Any. Port – бываю случае порты src и dst одинаковые его можно вписать сюда, или когда нужно пробросить все TCP. (оставляем пустым)
  • In. Interface – входящий интерфейс микротика, указываем тот на котором висит белый ip. У меня этот.
  • Out. Interface – исходящий интерфейс, тут можно указать тот который смотрит в вашу локальную сеть а можно и ничего не указывать, тогда mikrotik сам выберет его по адресу подсети.
  • In. Interface list – тут указывается интерфейс лист. То есть, если у вас 2 и более каналов в интернет, их можно все объединить в interface list и указать тут. Тогда не надо будет для каждого провайдера делать правило проброса RDP.
  • Out. Interface List – тоже самое что и 10 пункт только исходящий.

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

Теперь переходим на вкладку Action на которой мы скажем роутеру что делать с полученным пакетом и куда его отправлять.

Здесь настраиваем так:

  • Action – действие которое mikrotik должен произвести, выбираем dst-nat, так как нам надо запрос приходящий на белый ip с портом 3389 перенаправить на адрес из серой сети.
  • Галочка Log будет писать все nat трансляции в лог файл – этого делать не стоит.
  • Log Prefix – будет добавлять в лог в начало строки произвольные символы которые тут напишете.
  • To Addresses – люда вписываем ip сервера (серый) на который нужно настроить перенаправление портов на mikrotik.
  • To Ports – ну и TCP порт на который пересылать.

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

Проброс 80 порта на mikrotik

Бывают ситуации, когда у вас в сети есть веб-сервер с каким-либо сайтом работающем на 80 порту, его можно пробросить точно также как было показано для порта RDP 3389 но лучше сделать по другому.

Как видно из скрина выше и ниже, мы делаем dstnat tcp подключений, приходящих на порт 8080 с интерфейса ether1, на ip 192.168.13.100 порт 80.

Таким образом можно пробросить 80 порт много раз, только подключаться из вне придется указывая явно порт, например http://2.34.67.8:8080.

Открыть порт на микротик

Чтобы открыть порт на mikrotik вам нужно перейти в раздел firewall и там явно создать разрешающие правило для этого порта. Отмечу что если у вас раздел IP-> Firewall->Filter Rules пуст как на картинке ниже, то это значит что все порты у вас открыты по умолчанию, так как нет запрещающих правил. И лучше бы вам его настроить ото будут ломать пока не взломают.

Как настроить Firewall поговорим в одной из следующих статей, а пока идем дальше. Чтобы закрыть или открыть сервисные порты в микротике, такие как доступ по ssh, windox, http или же поменять их на нестандартные, нужно перейти в раздел IP-> Services

Советую вам отключить то, что вы не используете, так как чем больше разрешено, тем больше опасности взлома. Вообще вариаций пробросов портов в mikrotik очень много, все их не опишешь, да и думаю это будет лишнем, главное знать как работает технология, а настройка - это дела практике.

89 вопросов по настройке MikroTik

Вы хорошо разбираетесь в Микротиках? Или впервые недавно столкнулись с этим оборудованием и не знаете, с какой стороны к нему подступиться? В обоих случаях вы найдете для себя полезную информацию в курсе « ». 162 видеоурока, большая лабораторная работа и 89 вопросов, на каждый из которых вы будете знать ответ. Подробности и доступ к началу курса бесплатно .

Проброс портов в роутере MikroTik (port forwarding) позволяет организовать удаленный доступ из интернета к какому-нибудь устройству внутри вашей локальной сети (к IP-камере, Web, FTP или игровому серверу).

В данной статье мы рассмотрим пример, как пробросить порты в роутере MikroTik, чтобы получить доступ к IP-камере в локальной сети.

Ваш роутер обязательно должен иметь белый IP-адрес, по которому к нему можно подключиться из интернета. В роутере MikroTik проверить белый ли у вас IP-адрес можно следующим образом:

  1. Откройте меню IP - Cloud
  2. Поставьте галочку DDNS Enabled
  3. Нажмите кнопку Apply
  4. Если после этого отобразиться статус "updated " без ошибок, то у вас белый IP-адрес.

Если в правом нижнем углу отображается ошибка типа "DDNS server received request from IP 67.170.73.47 but your local IP was 104.12.152.1; DDNS service might not work. ", то у вас серый IP-адрес. В этом случае вам нужно обратиться к провайдеру для получения белого IP-адреса. У некоторых провайдеров это платная услуга.

Итак, у нас имеется роутер MikroTik с белым IP-адресом 178.189.224.122 . Он имеет внутреннюю подсеть 192.168.88.0/24 .

Внутри подсети есть IP-камера с адресом 192.168.88.250 , у которой есть Web-интерфейс, работающий на 80 порту. Нам нужно обеспечить доступ из интернета к Web-интерфейсу IP-камеры.

Необходимо сделать так, чтобы при открытии в браузере адреса http://178.189.224.122:10000 , мы попадали на Web-интерфейс IP-камеры.

10000 в адресной строке - это произвольный номер порта. Его желательно указывать в диапазоне от 49152 до 65535. Можно также использовать диапазон от 1024 до 49151, если вы уверены, что указанный порт не будет конфликтовать с какой-то программой.

Для проброса портов в роутере MikroTik откройте меню New Terminal и выполните команды, описанные ниже.

Первым делом добавляем правило маскарадинга для подсети 192.168.88.0/24

/ip firewall nat add action=masquerade chain=srcnat src-address=192.168.88.0/24

10000 in-interface=ether1 protocol=tcp to-addresses=192.168.88.250 to-ports=80

178.189.224.122 и порту 10000 192.168.88.250 и порт 80 , а не в интернет.

178.189.224.122 dst-port=10000 in-interface=bridge protocol=tcp src-address=192.168.88.0/24 to-addresses=192.168.88.250 to-ports=80

Созданные правила можно посмотреть в меню IP - Firewall на вкладке NAT .

Теперь открываем в браузере адрес http://178.189.224.122:10000. Появляется окно с вводом пароля.

Вводим логин, пароль и попадаем на Web-страничку с видео и настройками IP-камеры.

Я еще захотел просматривать видео на планшете в полноэкранном режиме без использования Web-интерфейса. В этом поможет программа VLC media player. Она может отображать видеопоток по протоколу RTSP, который поддерживает моя камера TP-Link. Протокол RTSP использует порт 554 , поэтому его нужно пробросить в роутере MikroTik.

Обращения из интернета к порту 554 , перенаправляем во внутреннюю сеть на устройство 192.168.88.250 и порт 554 .

/ip firewall nat add action=netmap chain=dstnat dst-port=554 in-interface=ether1 protocol=tcp to-addresses=192.168.88.250 to-ports=554

Обращения из локальной сети к внешнему IP-адресу 178.189.224.122 и порту 554 перенаправляем в локальную сеть на устройство 192.168.88.250 и порт 554 , а не в интернет.

/ip firewall nat add action=netmap chain=dstnat dst-address=178.189.224.122 dst-port=554 in-interface=bridge protocol=tcp src-address=192.168.88.0/24 to-addresses=192.168.88.250 to-ports=554

Теперь запускаем на планшете программу VLC media player и выбираем открыть Сетевой ресурс . В ОС Windows в VLC media player нужно открыть меню Медиа - Открыть URL .

Вводим адрес rtsp://login :passwd @178.189.224.122 /video.mp4

Где login - логин для доступа к IP-камере, passwd - пароль для доступа к IP-камере, 178.189.224.122 - внешний IP-адрес роутера.

Строка RTSP запроса для вашей модели камеры может отличаться. Поэтому уточните на сайте производителя или в документации к камере, как она правильно прописывается. Также удостоверьтесь, что ваша камера поддерживает протокол RTSP и он включен в настройках.

После этого видео на планшете откроется в полноэкранном режиме.

Отзывы о статье

Оценка: 5 , Голосов:

Алекс 13.01.2019 14:37:34

правила появились, но ничего не работает

Ответить Отменить ответ

Сергей 25.06.2018 07:07:24

Здравствуйте. Можете подсказать? Стоит микротик, за ним сеть, пробросили канал на организацию, нужно дать им ip оборудования для того, чтобы они прописали на них доступ и маршруты, к примеру адреса 30.40.40.1:5050 и 2:5050. Но у них уже есть маршруты по данной сети в другом регионе. Можно ли сделать через nat подмену ip. Например я им даю адреса 10.10.10.1:5050 и 2:5050 и при обращении на них они попадали на 30:40:40:1:5050 и 2:5050 соответственно.

Ответить Отменить ответ

Begley diptemy 21.06.2018 12:36:55

Bonjour j"ai fait repartition de mon Donne internet sur mon mikrotik pour acceder a distance.
Voila
Maintenance le message qui affiche sur mon Scran,
RADIUS server is not responding

Ответить Отменить ответ

Максим 01.06.2018 22:30:11

Добрый вечер! Подскажите, в чем может быть причина. В статусе вместо "updated" отображается "Error: request time out", но IP-адрес белый, на другом роутере работало все.

Ответить Отменить ответ

Роман 29.03.2018 10:12:21

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

Ответить Отменить ответ

Глеб 30.01.2018 16:17:24

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

Ответить Отменить ответ

Глеб 30.01.2018 18:18:27

Ребята нашел проблему в фаерволе) все ок

Ответить Отменить ответ

Alexey 01.02.2018 15:10:19

Firewall is root of all evil:))

Ответить Отменить ответ

Андрей 14.05.2018 19:22:30

Добрый день! Глеб, у меня такая же проблема напишите, пожалуйста, как Вы ее решили?

Ответить Отменить ответ

Дмитрий 16.01.2018 15:09:49

Добрый день! В интернете миллион статей по данной ситуации, но нигде толком нет как сделать наоборот. Подскажите, как пробросить порты в обратном направлении. На камере по сработке датчика движения формируется письмо с изображением через внешний smtp сервер. Как ни пытался, письмо не проходит. На ТП линке все без проблем делается..

Ответить Отменить ответ

Artem 30.01.2018 14:24:54

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

Ответить Отменить ответ

Andrew 29.12.2017 12:08:04

Как правильно сделать проброс на микротик стоящий за главным микротиком. Нужно иметь доступ по Winbox на оба устройства. Второй микротик подключен к ведущему по внутреннему IP.

Ответить Отменить ответ

Дима 29.12.2017 15:15:48

Нужно пробрасывать произвольный порт на первом роутере на порт 8291 на второй микротик.
На втором микротике нужно разрешить доступ на порт 8291.
И не забудь перетащить созданные правила выше запрещающих.

# На первом роутере
/ip firewall nat add action=netmap chain=dstnat dst-port=10000 in-interface=ether1 protocol=tcp to-addresses=IP_второго_роутера to-ports=8291

/ip firewall nat add action=netmap chain=dstnat dst-address=Белый_IP_первого_роутера dst-port=10000 in-interface=bridge protocol=tcp src-address=192.168.88.0/24 to-addresses=IP_второго_роутера to-ports=8291

# На втором роутере
/ip firewall filter add action=accept chain=input disabled=no in-interface=ether1-gateway dst-port=8291 protocol=tcp comment="access to winbox"

При подключении на Белый_IP_первого_роутера по порту 8291 будешь попадать на первый роутер.
При подключении на Белый_IP_первого_роутера по порту 10000 будешь попадать на второй роутер.

Протокол передачи файлов (FTP) - это TCP протокол для передачи файлов между компьютерами. В прошлом он использовался также для загрузки [файлов в интернете], но, поскольку этот метод не использует шифрование, пользовательские данные как и содержимое файлов передаются в открытую и легко перехватываются. Поэтому, если вы здесь ищете способ безопасно передавать и загружать файлы, лучше обратитесь к статье по OpenSSH в разделе Удаленное администрирование .

FTP работает на основе модели клиент/сервер. Серверный компонент называется сервисом FTP . Он постоянно слушает FTP запросы от удаленных клиентов. При получении запроса он управляет входом и установкой соединения. На протяжении сессии он выполняет любые команды, переданные FTP клиентом.

vsftpd - установка FTP сервера

vsftpd - это сервис FTP , доступный в Ubuntu. Его легко устанавливать, настраивать и поддерживать. Для установки vsftpd вы можете выполнить следующую команду:

Sudo apt install vsftpd

Для запуска сервиса требуется добавить его в автозагрузку. Начиная с версии Ubuntu 15.04 используется Systemd , поэтому для добавления vsftpd в автозапуск надо ввести следующие команды:

Sudo systemctl start vsftpd sudo systemctl enable vsftpd

В Ubuntu Server может использоваться файервол ufw . Тогда вам потребуется разрешить порты 20 и 21

Sudo ufw allow 20/tcp sudo ufw allow 21/tcp

Конфигурационный файл содержит много параметров настройки. Информация по каждому параметру доступна в этом же файле. В качестве альтернативы вы можете посмотреть системное руководство по команде

Man 5 vsftpd.conf

для уточнения деталей по каждому параметру.

Доступ к FTP серверу может быть организован двумя способами:

В анонимном режиме удаленный клиент может получить доступ к FTP серверу, используя учетную запись пользователя по умолчанию с именем «anonymous» или «ftp» и передав адрес email в качестве пароля. В авторизованном режиме пользователь должен иметь учетное имя и пароль. Этот последний вариант крайне небезопасный и не должен использоваться за исключением специальных обстоятельств. Если вы хотите передавать файлы безопасно, смотрите SFTP в разделе по OpenSSH серверу. Пользовательский доступ к каталогам и файлам FTP сервера зависит от прав доступа пользователя, указанного при входе. Как правило, сервис FTP скрывает корневой каталог FTP сервера, подменяя его на домашний каталог FTP . Это скрывает корень файловой системы от удаленных сессий.

Настройка анонимного доступа по FTP

Настройка vsftpd по умолчанию не разрешает анонимную загрузку. Если вы хотите разрешить анонимную загрузку, измените в /etc/vsftpd.conf следующее:

Anonymous_enable=YES

В процессе установки создается пользователь ftp с домашним каталогом /srv/ftp. Это каталог по умолчанию для FTP .

Если вы желаете поменять его расположение, например, на /srv/files/ftp, просто создайте новый каталог и измените домашний каталог пользователя ftp:

Sudo mkdir /srv/files/ftp sudo usermod -d /srv/files/ftp ftp

После изменений перезапустите vsftpd:

Под конец скопируйте все файлы и каталоги, которые вы хотите сделать доступными для анонимного FTP в /srv/files/ftp (или /srv/ftp, если вы хотите оставить настройки по умолчанию).

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

Anon_upload_enable=YES

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

Настройка авторизованного доступа по FTP

Прежде чем вносить какие-либо изменения в конфигурационный файл, рекомендуется скопировать образец для возможности отката изменений без переустановки пакета sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.orig

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

Local_enable=YES

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

Write_enable=YES

после чего перезагрузите vsftpd:

Sudo service vsftpd restart

Теперь при входе системных пользователей по FTP они будут попадать в свои домашние каталоги, где они смогут скачивать, загружать [файлы], создавать каталоги и т.д.

Защита FTP

Ограничение пользователей

В /etc/vsftpd.conf существуют опции, помогающие сделать vsftpd более безопасным. Например, данная опция позволяет поместить локального пользователя в chroot() «заточение», выше которого (по дереву каталогов) он не сможет подняться.

Chroot_local_user=YES

Вы также можете определить список пользователей, имеющих доступ только в домашний каталог:

Chroot_list_enable=YES chroot_list_file=/etc/vsftpd.chroot_list

После снятия комментариев с этих опций, создайте /etc/vsftpd.chroot_list, содержащий список пользователей по одному на строку. Затем перезапустите vsftpd:

Sudo service vsftpd restart

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

Аналогично файл /etc/ftpusers содержит список пользователей, которым запрещен доступ по FTP . По умолчанию он включает root, daemon, nobody и т.п. Для запрета доступа по FTP для дополнительных пользователей, просто добавьте их в этот список.

Если при попытке подключения вы видите ошибку :

Ответ: 500 OOPS: vsftpd: refusing to run with writable root inside chroot()

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

    Запретить запись в домашний каталог локальному пользователю (подходит не всем и не всегда)

sudo chmod a-w /home/user/ allow_writeable_chroot=YES

    Прописать /home каталогом, куда будут попадать локальные пользователи после входа на FTP сервер. Тогда каждый из них будет иметь возможность писать только в свой домашний каталог

local_root=/home

Шифрование

FTP может быть зашифрованным при использовании FTPS . В отличие от SFTP , FTPS - это FTP поверх SSL . SFTP - это сессия, подобная FTP , по зашифрованному SSH соединению. Основное отличие заключается в том, что пользователи SFTP должны иметь учетную запись с собственным окружением (shell account) вместо оболочки nologin. Предоставление всем пользователям доступа к оболочке может оказаться не лучшим решением для некоторых систем, таких как web сервер общего доступа. Однако есть возможность ограничить такие учетные записи только SFTP и запретить взаимодействие с оболочкой. Смотрите раздел по OpenSSH для дополнительной информации.

Для настройки FTPS, добавьте в конец файла /etc/vsftpd.conf следующее:

Ssl_enable=Yes

Также обратите внимание на опции сертификата и ключа:

Rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key

По умолчанию эти опции установлены в значения, предоставленные пакетом ssl-cert . Для рабочей среды они должны быть заменены на сертификат и ключ, созданные для определенного компьютера. Для дополнительной информации смотрите раздел Сертификаты .

Теперь перегрузите vsftpd и неанонимные пользователи будут использовать FTPS:

Sudo service restart vsftpd

Чтобы позволить пользователям с оболочкой /usr/sbin/nologin получить доступ к FTP , но не предоставлять shell доступ, отредактируйте /etc/shells, добавив к оболочке nologin:

# /etc/shells: valid login shells /bin/csh /bin/sh /usr/bin/es /usr/bin/ksh /bin/ksh /usr/bin/rc /usr/bin/tcsh /bin/tcsh /usr/bin/esh /bin/dash /bin/bash /bin/rbash /usr/bin/screen /usr/sbin/nologin

Это необходимо, поскольку по умолчанию vsftpd использует авторизацию PAM, а файл настроек /etc/pam.d/vsftpd содержит:

Auth required pam_shells.so

Модуль PAM shells ограничивает доступ к оболочкам, перечисленным в файле /etc/shells.

Наиболее популярные клиенты FTP могут быть настроены на использование FTPS. FTP клиент командной строки lftp также имеет возможность использовать FTPS.

Если у Вас уже установлен сервис vsftpd, то переходим сразу к пункту 2, иначе по порядку:
1. В дистрибутиве Debian, выполняем команду: apt-get install vsftpd
Все операции по его скачиванию и установке занимают около 1-3 минут, на вопрос установщика необходимо ответить «y».
2. Находим конфигурационный файл данного сервиса, он лежит в /etc/vsftpd.conf , редактируем его либо nano, либо встроенным в midnight commander редактором.
nano /etc/vsftpd.conf
Далее проверяем некоторые настройки описанные в нем:
— устанавливаем запрет на подключение анонимных пользователей, находим опцию «anonymous_enable » и прописываем ей значений «NO «.
— снимаем комментарий с опции «local_enable » и «write_enable «. (первая опция разрешает использовать для входа на сервер логин и пароль пользователям, которые зарегистрированы в системе/вторая разрешает пользователям выполнять любые FTP-команды записи)
— находим «chroot_local_user «, если этой надстройке установлено значение «Yes » (скорее всего стоит по умолчанию), все системные пользователи будут находиться в пределах chroot директории и не смогут получить доступ к другим директориям сервера.
Сохраняем все изменения, которые сделали. Для nano: жмем ctr+o -> Enter(сохраняем) -> ctrl+x(закрываем). Для midnight commander-а — жмем F2(сохраняем) затем F10(выход).
3. Когда все подготовили, создаем пользователя который будет пользоваться FTP: (заранее оговорюсь, что имя пользователя может быть любым, не обязательно писать user , как в данном примере! это пример! )
— выполняем в терминале команду adduser user
— далее утилита по созданию нового пользователя задаст Вам несколько вопросов, на которые вы введете ответы с клавиатуры (просьба заполнить побочные поля в роде номера телефона и пр. можно игнорировать и просто нажимать Enter), и в конце при сохранении пишем «yes»
— теперь добавим вновь созданного пользователя в группу ftpusers (название группы может быть любым другим, придуманным Вами самими, в данном случае — это пример! )
groupadd ftpusers
usermod -G ftpusers user
в директории /home уже создалась одноименная папка пользователя.
— сделаем в этой папке еще две папки для файлов и для логов.
mkdir /home/user/www
mkdir /home/user/logs
— далее сменим владельца данных папок т.к. текущие операции мы производили из под пользователя с root правами, соотв. и атрибуты назначились как для root
chown user:ftpusers /home/user/www
chown user:ftpusers /home/user/logs
chmod 555 /home/user
4. Перезапускаем наш сервис командой
service vsftpd restart
5. Пробуем подключаться с помощью FTP клиента (FileZilla,Winscp,Explorer) по ip-адресу или доменному имени хоста на котором производили данные действия, введя логин созданного пользователя и его пароль. После входа будут доступны созданные ранее папки.