По итогам обзора интерфейса NAS'a захотелось
узнать, а возможно ли к нему получить рутовый доступ и установить свои приложения. Гугл подсказал, что всё уже давно придумали , и даже сайт со специальной тематикой есть
nas-tweaks.net .
Оказывается, производитель предусмотрел возможность появления желания у владельца сетевого хранилища установить необходимые пакеты и приложения. Достаточно положить в корень диска скрипт с названием
fun_plug.
Один немецкий товарищ уже все сделал, поэтому воспользуемся готовым решением. Оригинал статьи примера установки
здесь.
Качаем два файла и
помещаем их в корень раздела
Volume_1 (главное - НЕ переименовывать):
- http://inreto.de/dns323/fun-plug/0.7/arm/fun_plug.tgz
- 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 — вроде
это баг.