LINUX.ORG.RU

vsftpd & android

 , , ,


1

2

Не стал бы я заморачиваться с этим, если бы в мое распоряжение не попал медиа-плеер с wi-fi, прошивка которого паразитирует на линуксе. Сам плеер - это отдельная тема. Но чтобы править на нем конфиги и не протягивать к нему провод, на нем производителем организован FTP-сервер, логин и пароль там вбиваются в настройках прошивки, ip-адрес плеера там же в настройках можно узнать. FTP-клиентов для андроида навалом, на openSUSE на FTP-сервер можно зайти прямо через Dolphin. Ввести логин, пароль и ip даже мне оказалось под силу. Поэтому конфиги на нем можно править хоть с компа, хоть с планшета. Мне это показалось дико-удобным, и дабы на захламлять стол проводами для подключения планшета к компьютеру для переброса файлов, я решил поднять на компьютере FTP-сервер, для чего был установлен демон vsftpd. Полез править его конфиг и на этом история заканчивается.

write_enable=YES
dirmessage_enable=YES
nopriv_user=ftpsecure
local_enable=YES
anonymous_enable=NO
anon_world_readable_only=YES
syslog_enable=YES
connect_from_port_20=YES
ascii_upload_enable=YES
pam_service_name=vsftpd
listen=NO
listen_ipv6=YES
ssl_enable=NO
pasv_min_port=30000
pasv_max_port=30100

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

Ответ на: комментарий от mandala

Ну это понятно, команду ifconfig я осилю. Но каких-то там еще пользователей создавать... Что мне сделать чтобы запустить приложение на андроиде, ввести логин, пароль, хост и получить доступ к директории скажем '/home/user/'?

Grantrol
() автор топика
Ответ на: комментарий от Grantrol

Я так понял у тебя OpenSUSE?

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

Смотрим файл /etc/passwd

ftp:x:108:118:ftp daemon,,,:/srv/ftp:/bin/false

Привожу эту запись к такому виду:

ftp:x:108:118:ftp daemon,,,:/home/mandala/ftp:/bin/false

Создаю эту директорию, права у меня сразу на просмотр есть у всех, если дефолтная маска у тебя другая — поправь.

Далее стартую сервис vsftpd:

systemctl start vsftpd.service

Создаю файл privet_LOR

touch ~/ftp/privet_LOR

И проверяю доступ через filezilla (я разрешил анонимный доступ):

http://pix.toile-libre.org/upload/original/1485653321.png

Еще вопросы?

mandala ★★★★★
()
Последнее исправление: mandala (всего исправлений: 1)
Ответ на: комментарий от Grantrol

Смотрим файл /etc/passwd

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

Да, и как нибудь разреши пользователю 'ftp' писать в созданную директорию (я добавил его в свою группу), ну или сам добавь себе права на запись в дефолную если не будешь создавать новую.

mandala ★★★★★
()
Последнее исправление: mandala (всего исправлений: 2)

Не нужно тебе этого, используй sftp. Не знаю как дельфин, но я просто хожу на другие пк вбивая в адресной строке thunar sftp://192.168.0.105 и всё.

Dron ★★★★★
()
Ответ на: комментарий от mandala

Для usermod команды:

переопределения домашней директории

usermod -d /home/mandala/ftp ftp

Добавление ftp в группу пользователя

usermod -G mandala ftp

Хотя наверное правильнее самому добавиться в группу ftp и писать в дефолтную директорию.

mandala ★★★★★
()
Ответ на: комментарий от mandala

Да не я в том плане что легче поставить sftp и не настраивать ничего, получать доступ из (любых) файловых менеджеров и консоли. Но так то да, если хочется именно настроенный FTP чё бы нет, я только альтернативу попроще предложил, а так дело конечно хозяйское ))

Dron ★★★★★
()
Ответ на: комментарий от Grantrol

Но каких-то там еще пользователей создавать...

Так у тебя же есть пользователь — ты: вводишь свой логин/пароль линукс-пользователя и получаешь доступ к хомяку. Вот строка твоего конфига:

# Uncomment this to allow local users to log in.
local_enable=YES

Или ты хочешь по хардкору, в безопасность?

mandala ★★★★★
()
Последнее исправление: mandala (всего исправлений: 1)
Ответ на: комментарий от Dron

если хочется именно настроенный FTP чё бы нет,

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

mandala ★★★★★
()
Последнее исправление: mandala (всего исправлений: 1)

У меня остались скрипты для утановки в закромах, на, может пригодиться. 1

#!/bin/bash
#Быстрое разворачивание публичного FTP сервера
addgroup ftpuser                          #создание группы
useradd -d /var/ftp -g ftpuser ftpuser    #создание  пользователя и смена его домашеей директории
passwd ftpuser                            #смена пароля и активация пользователя
mkdir /var/ftp                            #создание директории пользователя
chmod 755 /var/ftp                        #назначение прав только чтене для всех
chown root:ftpuser /var/ftp               #назначение владельца и группы
mkdir /var/ftp/pub                        #создание публичной дериктории
chown ftpuser:ftpuser /var/ftp/pub        #назначение владельца и группы для публчной дериктории

2

#!/bin/bash

mkdir /var/ftp/
mkdir /var/ftp/pub
mkdir /var/ftp/pub/FILES

3

cp /etc/vsftpd.conf /etc/vsftpd_old_conf
cat /dev/null  > /etc/vsftpd.conf

echo '#automate generate'                    >> /etc/vsftpd.conf
echo listen=YES                              >> /etc/vsftpd.conf
echo max_clients=100                         >> /etc/vsftpd.conf
echo max_per_ip=10                           >> /etc/vsftpd.conf
echo hide_ids=YES                            >> /etc/vsftpd.conf
echo idle_session_timeout=600                >> /etc/vsftpd.conf
echo data_connection_timeout=120             >> /etc/vsftpd.conf
echo dirmessage_enable=YES                   >> /etc/vsftpd.conf
echo ftpd_banner=Welcome!                    >> /etc/vsftpd.conf
echo anonymous_enable=YES                    >> /etc/vsftpd.conf
echo no_anon_password=YES                    >> /etc/vsftpd.conf
echo anon_root=/var/ftp/pub                  >> /etc/vsftpd.conf
echo anon_umask=022                          >> /etc/vsftpd.conf
echo local_enable=YES                        >> /etc/vsftpd.conf
echo write_enable=YES                        >> /etc/vsftpd.conf
echo local_umask=022                         >> /etc/vsftpd.conf
echo chroot_local_user=YES                   >> /etc/vsftpd.conf
echo chroot_list_enable=NO                   >> /etc/vsftpd.conf
echo xferlog_enable=YES                      >> /etc/vsftpd.conf
echo xferlog_file=/var/log/vsftpd.log        >> /etc/vsftpd.conf
echo '#convert_charset_enable=1'             >> /etc/vsftpd.conf
echo '#local_charset=UTF8'                   >> /etc/vsftpd.conf
echo '#remote_charset=CP1251'                >> /etc/vsftpd.conf
4
mount /home/dron/EFF/FILES/MEDIA         /var/ftp/pub/FILES    --bind #открытие каталога из home в публичный ftp

Dron ★★★★★
()
Ответ на: комментарий от mandala

Мне нужен доступ не к вновь созданной директории, а к тому что уже есть на жестком диске. Вот к этой директории:

/mnt/Media/
Файл /etc/passwd привел к такому виду:
ftpsecure:x:485:65534:Secure FTP User:/mnt/Media/ftp:/bin/false
В файле /etc/vsftpd.conf разрешаю доступ анонимусам:
write_enable=YES
dirmessage_enable=YES
nopriv_user=ftpsecure
local_enable=YES
anonymous_enable=YES
anon_world_readable_only=YES
syslog_enable=YES
connect_from_port_20=YES
ascii_upload_enable=YES
pam_service_name=vsftpd
listen=NO
listen_ipv6=YES
ssl_enable=NO
pasv_min_port=30000
pasv_max_port=30100
Перезапускаю сервис сервис vsftpd:
service vsftpd restart
И ничего не наблюдаю:

https://s28.postimg.org/a2wiasu5p/screen43.png

Grantrol
() автор топика
Ответ на: комментарий от Grantrol

/mnt/Media/ftp

так сам назначил же еще одну вложенную дирректорию в Media. Вот так надо:

ftpsecure:x:485:65534:Secure FTP User:/mnt/Media:/bin/false

mandala ★★★★★
()
Ответ на: комментарий от Grantrol

Верни /etc/passwd как было и просто примонтируй устройство которое монтируется в /mnt/Media к той директории которая у ftpsecure была по умолчанию. Одно устройство можно монтировать в разные точки файловой системы несколько раз.

mandala ★★★★★
()
Ответ на: комментарий от Grantrol

не того пользователя смотрели

Теперь просто попробуй примонтировать

sudo mount /mnt/Media /srv/ftp/

https://ru.opensuse.org/Установка_и_настройка_FTP-сервера#vsftpd

mandala ★★★★★
()
Последнее исправление: mandala (всего исправлений: 1)
Ответ на: комментарий от Grantrol

Ну а что за устройство примонтировано в /mnt/Media ? Вот его и примонтируй к /srv/ftp/. У тебя одно устройство будет в двух местах: для пользователя в /mnt/Media и для FTP в /srv/ftp/

mandala ★★★★★
()
Последнее исправление: mandala (всего исправлений: 1)
Ответ на: комментарий от Grantrol

Т.е. локально из под анона без пароля, а из сети не пускает? Вот эти два параметра проверь:

anonymous_enable=YES
no_anon_password=YES

mandala ★★★★★
()
Ответ на: комментарий от mandala

У тебя одно устройство будет в двух местах: для пользователя в /mnt/Media и для FTP в /srv/ftp/

А если просто без примонтирования привести строчку

ftp:x:40:49:FTP account:/srv/ftp:/bin/bash
к такому виду:
ftp:x:40:49:FTP account:/mnt/Media:/bin/bash
Разница есть?

Grantrol
() автор топика
Ответ на: комментарий от Grantrol

Попробуй, там прав вроде должно хватать.

mandala ★★★★★
()
Ответ на: комментарий от mandala

Конфиг такой:

write_enable=YES
dirmessage_enable=YES
nopriv_user=ftpsecure
local_enable=YES
anonymous_enable=YES
anon_world_readable_only=YES
syslog_enable=YES
connect_from_port_20=YES
ascii_upload_enable=YES
pam_service_name=vsftpd
listen=NO
listen_ipv6=YES
ssl_enable=NO
pasv_min_port=30000
pasv_max_port=30100

Grantrol
() автор топика
Ответ на: комментарий от Grantrol

Вот этот попробуй (свой не удаляй пока, переименуй просто)

listen=YES 
max_clients=100
max_per_ip=10 
hide_ids=YES
idle_session_timeout=600 
data_connection_timeout=120
dirmessage_enable=YES 
ftpd_banner=Welcome!
anonymous_enable=YES
no_anon_password=YES
anon_root=/mnt/Media
anon_umask=022
local_enable=YES
write_enable=YES
local_umask=022
chroot_local_user=YES
chroot_list_enable=NO
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
mandala ★★★★★
()
Ответ на: комментарий от Grantrol

После правки конфига можно перезапуститься

systemctl stop vsftpd.service
systemctl start vsftpd.service

mandala ★★★★★
()
Ответ на: комментарий от Grantrol

А вдруг ты ко мне зайдешь и удалишь все?)

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

Вот для чисто локального:

listen=YES
background=YES
anonymous_enable=YES
no_anon_password=YES
guest_enable=YES
guest_username=ftp
xferlog_enable=YES
ftpd_banner=Hello!

В опенсусе файервола нету из коробки (что-то там такое вроде было)? А то он может не пускать. Нету, ведь пароль просит.

mandala ★★★★★
()
Последнее исправление: mandala (всего исправлений: 2)
Ответ на: комментарий от mandala

Нет. Со старым конфигом файзилла видит локаль. А удаленно, с планшета пытается что-то грузить, но потом выдает ошибку «Connect time out». Я вот думаю может это из-за того что клиент принудительно пароль просит? Я тупо нажимаю на Ok с пустой строкой ввода пароля. Как пароль задать?

Grantrol
() автор топика
Ответ на: комментарий от Grantrol

Добавь в свой конфиг

anon_root=/mnt/Media/

Закоментируй эту строку

nopriv_user=ftpsecure

Вот эти строки тоже можно попробовать закомментировать

connect_from_port_20=YES
ascii_upload_enable=YES
pam_service_name=vsftpd

Я вот думаю может это из-за того что клиент принудительно пароль просит

Так введи логин/пароль своего пользователя, должен попасть в свой хомяк.

Я тупо нажимаю на Ok с пустой строкой ввода пароля

Имя пользователя введено? anonymous или ftp с пустым паролем.

mandala ★★★★★
()
Ответ на: комментарий от mandala

На сусе. Сделал исключение, теперь пускает. Как пароль для юзеров задать? Или лучше лазить в фтп из под пароля рута? Насколько это безопасно?

Grantrol
() автор топика
Ответ на: комментарий от Grantrol

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

Под рутом не пустит, ну если ты сам не разрешишь — список пользователей которым запрещен вход через фтп лежит в /etc/ftpusers.

Можно сделать отдельного пользователя, можно анонимусу прав дать побольше — на запись и т.п.

mandala ★★★★★
()
Последнее исправление: mandala (всего исправлений: 1)

Какая-то вакханалия в треде, даже читать неохота. Достаточно поменять это

listen=YES
local_enable=YES
а остальные настройки дефолт и можно ходить своим пользователем.

Хотя sftp лучше, не ссыкотно откуда угодно домой сходить. Но медленнее на смартфоне.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.