Сегодня мы будем настраивать FTP сервер на OpenWRT. В этом качестве я выбрал vsftpd.
Установим его:# opkg install vsftpd
Для доступа к серверу я хочу испольовать отдельного пользователя, и логинясь под ним иметь доступ ко всему внешнему накопителю. Создадим нового пользователя добавив его в к остальным в файл /etc/passwd:
# vim /etc/passwd ... newuser:*:1000:1000:newuser:/mnt/path_here/path/:/bin/false
Можно попробовать добавить пользователя в группу 'nobody' и пропустить следующий шаг. Например так:newuser:*:1000:65534:newuser:/mnt/path_here/path/:/bin/false
Добавим также одноимённую группу:
# vim /etc/group newuser:x:1000:
Устанавливаем пароль для пользователя:
# passwd newuser
И теперь можно приступать к конфигурированию самого сервера. vsftpd позволяет задать список пользователей, которым будет позволено подключаться к ftp. Используем эту возможность:
# vim /etc/vsftpd.conf userlist_enable=YES userlist_deny=NO userlist_file=/etc/vsftpd.users
Согласно конфигурации, список пользователей распологается в файле /etc/vsftpd.users. Остаётся добавить юзера в список.
# echo newuser >> /etc/vsftpd.users
И изменить права на его домашнюю директорию
# chown -R newuser:newuser /mnt/path_here/path/
Теперь настроим анонимный доступ. Для этого создадим папку:
# mkdir /mnt/path_here/public
Добавим anonymous в список разрешенных пользователей:
# echo anonymous >> /etc/vsftpd.users
Изменим некоторые параметры в конфигурации самого сервера:
# vim /etc/vsftpd.conf anonymous_enable=YES no_anon_password=YES anon_root=/mnt/path_here/public
Настроим права для папки с анонимным доступом:
chown -R ftp:ftp /mnt/path_here/public/ chmod 555 /mnt/path_here/public/Также потребуется изменить домашнюю папку пользователя ftp, т.к. иначе будет выдаваться ошибка (домашней папки ftp в OpenWRT попросту не существует).
# vim /etc/passwd ftp:*:55:55:ftp:/mnt/path_here:/bin/falseЗапустим FTP сервер и добавим его в автозагрузку:
# /etc/inint.d/vsftpd start # /etc/inint.d/vsftpd enable
Осталось добавить настройки firewall для возможности доступа к серверу из интернета. Я использовал для этого интерфейс Luci, но никто не мешает вам вручную добавить правила iptables в /etc/firewall.user и перезапустить демон.
Итак, перейдём в веб-интерфейсе 'Сеть' -> 'Межсетевой экран' -> вкладка 'Правила для трафика'
Создадим правила для FTP открыв порты 20 и 21.
После нажатия "Сохранить и применить" установка и настройка будет завершена!
Здравствуйте!
ОтветитьУдалитьЗдесь вы перезаписываете файл vsftpd.users:
echo newuser > /etc/vsftpd.users
echo anonymous > /etc/vsftpd.users
Да, это вы хорошо заметили.
УдалитьИсправлю) Спасибо!
chown: /mnt/usb1/my_login/: Operation not permitted
ОтветитьУдалитьЧтож не так то?
В общем по этой инструкции получилось запустить ftp на openwrt 19.07.2 версии.
ОтветитьУдалитьПункт выдачи прав "# chown -R newuser:newuser /mnt/path_here/path/" выдавал ошибку. Я его вообще пропустил, и анонима не стал делать. Все работает - спасибо за внятную инструкцию
Добрый день.
ОтветитьУдалитьЕсли я правильно понимаю то сначала UID потом GID.
Получается newuser не входит в одноименную группу.
newuser:*:1000:65534:newuser:/mnt/path_here/path/:/bin/false
newuser:x:1000:
Верно подеметили. Исходя из этого пользователь входит в группу nobody (65534) тогда как в groups есть одноимённая группа, в которую юзер не входит.
УдалитьСпасибо, исправлю =)