SFTP-сервер с использованием Dropbear

From DD-WRT Wiki

Jump to: navigation, search

Статья рассказывает

Contents

[edit] Требования

  • Хотя создать образ прошивки, поддерживающий SFTP, не составит труда, требуется маршрутизатор с достаточным количеством свободного места для установки Optware, пока кто-нибудь не сделает это.
  • Понадобится Perl, либо с помощью пакета Optware на маршрутизаторе, либо на другом компьютере, он используется в этом руководстве. Вы можете заменить его на какую-либо другую утилиту, которая может редактировать двоичные файлы.
  • Разумно отключить встроенный демон Dropbear, прежде чем начать, сделайте это через Telnet. В противном случае, если вы попытаетесь отключить встроенную версию позже, она убьет все процессы Dropbear, включая ваш новый, и вам придется вручную перезапустить новую версию, выполнив следующую команду в веб-интерфейсе.
/opt/etc/init.d/S51dropbear start

[edit] Установка пакетов

  • Установите пакет Optware Dropbear.
ipkg-opt install dropbear
  • Установите пакет Optware SFTP-сервера.
ipkg-opt install openssh-sftp-server
  • Сконфигурируйте /opt/etc/init.d/S51dropbear, чтобы задать необходимые аргументы командной строки Dropbear. Вы можете использовать следующую команду, чтобы узнать аргументы командной строки, используемые по умолчанию:
ps | grep dropbear

[edit] Правка исполняемого файла Dropbear

  • Если на вашем маршрутизаторе не установлен Perl, скопируйте исполняемый файл /opt/sbin/dropbear на компьютер, на котором он есть. Убедитесь, что у вас есть резервная копия на случай, если что-то пойдет не так.
  • Измените копию исполняемого файла так, чтобы он использовал /opt/libexec/sftp-server вместо /usr/libexec/sftp-server.
perl -pi -e 's/\/usr\/libexec\/sftp-server/\/opt\/libexec\/sftp-server/g' dropbear
  • Скопируйте исправленную копию файла в /opt/sbin (вы можете перезаписать существующий /opt/sbin/dropbear, поскольку это просто символическая ссылка на /opt/sbin/dropbearmulti).

[edit] Альтернативный способ, используя встроенную команду sed вместо Perl

sed 's/\/usr\/libexe/\/opt\/libexe/g' dropbearmulti > dropbear.modified

(Это хитрый трюк, всё из-за того, что нельзя получить прямой доступ к /usr/libexec/sftp-server. В противном случае можно было бы просто установить SFTP-сервер OpenSSH и покончить с этим).

[edit] Проверка

  • Запустите сервер Dropbear.
/opt/etc/init.d/S51dropbear start
  • Попытайтесь соединиться с использованием клиента SFTP. Он должен работать!