среда, 20 февраля 2013 г.

NAS D-Link DNS 320. Настройка доступа по SSH.

По итогам обзора интерфейса NAS'a захотелось узнать, а возможно ли к нему получить рутовый доступ и установить свои приложения. Гугл подсказал, что всё уже давно придумали , и даже сайт со специальной тематикой есть nas-tweaks.net .
Оказывается, производитель предусмотрел возможность появления желания у владельца сетевого хранилища установить необходимые пакеты и приложения. Достаточно положить в корень диска скрипт с названием fun_plug.
Один немецкий товарищ уже все сделал, поэтому воспользуемся готовым решением. Оригинал статьи примера установки здесь.


Качаем два файла и помещаем их в корень раздела Volume_1 (главное - НЕ переименовывать):
  1. http://inreto.de/dns323/fun-plug/0.7/arm/fun_plug.tgz
  2. http://wolf-u.li/u/433
 
После чего делаем перезагрузку устройства.

После перезагрузки должны появиться каталог ffp и файл лога ffp.log:

**** fun_plug script for DNS-323 (2008-08-11 tp@fonz.de) ****
**** fun_plug script modded by Uli (2012-02-21 ffp@wolf-u.li) ****
Thu Feb 14 22:09:04 MAGT 2013
ln -snf /mnt/HD/HD_a2/ffp /ffp
* Installing /mnt/HD/HD_a2/fun_plug.tgz ...
* OK
* Running /ffp/etc/fun_plug.init ...
* Running /ffp/etc/rc ...
* /ffp/start/SERVERS.sh inactive
* /ffp/start/portmap.sh inactive
* /ffp/start/nfsd.sh inactive
* /ffp/start/LOGIN.sh inactive
* /ffp/start/telnetd.sh ...
Starting /ffp/sbin/telnetd -l /ffp/bin/sh
* /ffp/start/sshd.sh inactive
* /ffp/start/rsyncd.sh inactive
* /ffp/start/kickwebs.sh inactive
* /ffp/start/lighttpd.sh inactive
* /ffp/start/inetd.sh inactive
* /ffp/start/fp_master.sh inactive
* OK

Структура каталога ffp:

После установки запускается telnet, благодаря чему можно получить рутовый доступ к хранилищу по сети:

telnet 172.16.0.10
Trying 172.16.0.10...
Connected to 172.16.0.10.
Escape character is '^]'.
sh-4.1#

Меняем пароль рута:

sh-4.1# usermod -s /ffp/bin/sh root
sh-4.1# mkdir -p /ffp/home/root/
sh-4.1# sed -ie 's#:/home/root:#:/ffp/home/root:#g' /etc/passwd
sh-4.1# pwconv
sh-4.1# passwd
Changing password for root
Enter the new password (minimum of 5 characters)
Please use a combination of upper and lower case letters and numbers.
New password:
Re-enter new password:
passwd: password changed.

Проверяем правильность выполненных выше действий

sh-4.1# login
nas login: root
Password:
No mail.
root@nas:~# 

Необходимо сохранить пароль в NAS, иначе он исчезнет после перезагрузки (для этого тоже есть готовый скрипт):

root@nas:~# wget http://wolf-u.li/u/172/ -O /ffp/sbin/store-passwd.sh
--2013-02-15 00:01:26-- http://wolf-u.li/u/172/
Resolving wolf-u.li... 2a01:488:66:1000:53a9:2a6a:0:1, 83.169.42.106
Connecting to wolf-u.li|2a01:488:66:1000:53a9:2a6a:0:1|:80... failed: Address family not supported by protocol.
Connecting to wolf-u.li|83.169.42.106|:80... connected.
HTTP request sent, awaiting response... 302 Moved Temporarily
Location: http://wolf-u.li/downloads/3779-d2ee273e64e3c3166139f56fbb100067/store-passwd.sh [following]
--2013-02-15 00:01:27-- http://wolf-u.li/downloads/3779-d2ee273e64e3c3166139f56fbb100067/store-passwd.sh
Connecting to wolf-u.li|83.169.42.106|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 875 [application/octet-stream]
Saving to: `/ffp/sbin/store-passwd.sh'

100%[====================================================================================================================================================================================================>] 875 --.-K/s in 0s

2013-02-15 00:01:27 (16.0 MB/s) - `/ffp/sbin/store-passwd.sh' saved [875/875]

Сохраняем пароль:

root@nas:~# store-passwd.sh
Saving Userdata to /usr/local/config/

Включение SSH


Для этого необходимо сделать скрипт исполняемым и запустить вручную (после запуска сгенерируются 4!!! пары ключей)

root@nas:~# chmod a+x /ffp/start/sshd.sh
root@nas:~# sh /ffp/start/sshd.sh
Usage: sshd.sh start|stop|restart|status

root@nas:~# sh /ffp/start/sshd.sh start
Generating public/private rsa1 key pair.
...
Starting /ffp/sbin/sshd

Теперь подключаемся по SSH и отключаем Telnet:

ssh root@172.16.0.10
root@nas:~# sh /ffp/start/telnetd.sh stop
Stopping telnetd
root@nas:~# chmod -x /ffp/start/telnetd.sh

Важные замечания


Выполнение скрипта fun_plug создает новую группу пользователей utmp.
Скрипт, который устанавливает SSH-сервер, создает нового пользователя sshd и добавляет его в группу utmp. Этот пользователь только для внутреннего использования, поэтому не имеет возможности залогиниться (/sbin/nologin). Также этот пользователь имеет доступ на чтение по FTP к разделу Volume_1. Однако это не означает, что пользователь sshd действительно имеет доступ по FTP — вроде это баг.
 

4 комментария:

  1. Как удалить fun_plug и настройки паролей пользователя root? Сброс к заводским настройкам поможет?

    ОтветитьУдалить
  2. Скрипт для полного удаления fun_plug можно скачать по ссылке http://wolf-u.li/u/189/
    Его нужно загрузить в корень диска и заменить, если есть, установочный скрипт fun_plug.

    ОтветитьУдалить
  3. Доброго времени суток! А что делать если после перезагрузки устройства, НЕ появляется каталог "ffp" и не запускается telnet? Заранее благодарен за ответ.

    ОтветитьУдалить