Основа информации взята отсюда (к сожалению, ссылка умерла)
Сетевое хранилище данных DNS-313 работает под управлением Linux, что позволяет заняться хакингом. Очень много материалов по этому поводу можно найти на этих ресурсах: DSMG600 Hack Forum и DNS Wiki. В основном там говорится про «старшего брата» — двухдисковый накопитель DNS-323, но так как у DNS-313 и DNS-323 много общего, то большинство информации можно тотнести и к DNS-313.
Этап первый — установка набора программ и утилит fun_plug.
Установка fun_plug довольно проста. Загрузите файл fun_plug.tgz и скопируйте его в корень диска, являющегося хранилищем пользовательских данных (в веб-интерфейсе администратора он обозначается как Volume_1). Также загрузите небольшой текстовый файл fun_plug (без расширения) и отредактируйте его следующим образом (используйте текстовый редактор, поддерживающий переносы строк в формате Unix — например, Akelpad или Notepad++. Использование Блокнота Windows категорически недопустимо):
найдите в тексте файла строки
# real path to ffp
FFP_PATH=/mnt/HD_a2/ffp
и замените их на
# real path to ffp
FFP_PATH=/mnt/HD_a4/ffp
После этого скопируйте измененный файл туда же, куда и первый файл — то есть, в корень диска Volume_1
Перезагрузите DNS-313 (используя веб-интерфейс администратора). После перезагрузки устройство должно отвечать на обращение через Telnet. Запустите на компьютере командную строку (cmd.exe) и дайте команду:
telnet <сетевое_имя_или_IP_адрес_устройства>
Вы должны увидеть такое приглашение:
/#
Устройство пустило вас к себе, не запросив ни имени, ни пароля. Это непорядок, который необходимо немедленно устранить. В окне telnet’а даем последовательно команды:
pwconv
passwd (это команда смены пароля, потребуется дважды ввести пароль)
usermod -s /ffp/bin/sh root (смена предопределенной среды; текущая среда — ash)
Теперь можно проверить вход:
login (укажите имя root, а пароль — тот, который вы только что установили)
store-passwd.sh (сохранение пароля в энергонезависимую память)
Теперь можно перейти ко второму этапу.
Этап второй — обеспечение автоматического запуска службы SSH.
Продолжая находиться в окне Telnet’а, выполняем команду:
chmod a+x /ffp/start/sshd.sh (установка разрешения на запуск скрипта службы SSH)
sh /ffp/start/sshd.sh start (собственно, запуск SSH)
После этого сеанс работы через Telnet можно прекратить:
exit
Теперь можно попробовать обратиться к DNS-313 по протоколу SSH (для ПК с Windows рекомендуется клиент PuTTY). Например, так:
putty root@mynasdevice -pw mysecretpassword
Убедившись, что служба SSH работает, можно (в интерфейсе PuTTY) остановить службу telnet:
sh /ffp/start/telnetd.sh stop
… а также запретить ее автоматический запуск после перезагрузки:
chmod a-x /ffp/start/telnetd.sh
Этап третий — установка Bittorrent-клиента Transmission.
К сожалению, в оригинальном виде у DNS-313 отсутствует Bittorrent-клиент. Но этот недостаток вполне поправим — достаточно установить альтернативный клиент — Transmission — используемый штатно на многих популярных Linux-системах.
Итак, поехали.
В сеансе работы с SSH, переходим в какой-нибудь каталог диска для хранения данных (например, в корень):
cd /mnt/HD_a2
Выполняем последовательно команды, которые обеспечат загрузку на устройство всех пакетов, необходимых для установки:
wget http://kylek.is-a-geek.org:31337/files/Transmission-1.75-1.tgz
wget http://kylek.is-a-geek.org:31337/files/curl-7.18.1.tgz
wget http://www.inreto.de/dns323/fun-plug/0.5/packages/uclibc-0.9.29-7.tgz
Следующие три команды выполнят установку этих пакетов:
funpkg -i curl-7.18.1.tgz
funpkg -i Transmission-1.51.tgz
funpkg -i uclibc-0.9.29-7.tgz
Создаем папки для будущей загрузки файлов, а также устанавливаем на эти папки владельца и разрешения:
cd /mnt/HD_a2
mkdir bittorrent
cd bittorrent
cd /mnt/HD_a2
chown -R nobody:501 bittorrent/
chmod 755 -R bittorrent/
(Замечание: если раздел /mnt/HD_a2 имеет файловую систему NTFS (а именно так и есть у DNS-313 «от завода»), то команды смены владельца и назначения разрешений выдадут ошибку. Не обращайте на нее внимания.)
Делаем первый пробный запуск Transmission:
/ffp/start/transmission.sh start
Теперь можно попытаться обратиться к Transmission через веб-браузер:
http://<адрес_или имя>:9091/transmission/web
Как правило, вы должны увидеть следующее сообщение об ошибке:
401: Unauthorized
Unauthorized IP Address.
Either disable the IP address whitelist or add your address to it.
If you’re editing settings.json, see the ‘rpc-whitelist’ and ‘rpc-whitelist-enabled’ entries.
If you’re still using ACLs, use a whitelist instead. See the transmission-daemon manpage for details.
Остановите Transmission:
/ffp/start/transmission.sh stop
Чтобы создать конфигурационный файл, необходимо один раз запустить Transmission » в ручном режиме». Это делается следующей командой:
transmission-daemon -f -g /mnt/HD_a2/.transmission-daemon -t -u <имя> -v <пароль> -a *.*.*.*
Вместо <имя> и <пароль> пропишите выбранные вами имя и пароль. После такого запуска вы увидите на экране текст. Если он не содержит сообщений об ошибках, прервите работу Transmission, нажав клавиши Ctrl+C.
Дайте команду:
transmission-daemon -d
В ответ вы должны увидеть что-то вроде этого:
{
«blocklist-enabled”: 0,
«download-dir”: «\/mnt\/HD_a2\/bittorrent\/”,
«download-limit”: 100,
«download-limit-enabled”: 0,
«encryption”: 1,
«lazy-bitfield-enabled”: 1,
«message-level”: 2,
«open-file-limit”: 32,
«peer-limit-global”: 240,
«peer-limit-per-torrent”: 60,
«peer-port”: 51413,
«peer-port-random-enabled”: 0,
«peer-port-random-high”: 65535,
«peer-port-random-low”: 1024,
«peer-socket-tos”: 0,
«pex-enabled”: 1,
«port-forwarding-enabled”: 1,
«preallocation”: 1,
«proxy”: «”,
«proxy-auth-enabled”: 0,
«proxy-auth-password”: «”,
«proxy-auth-username”: «”,
«proxy-enabled”: 0,
«proxy-port”: 80,
«proxy-type”: 0,
«rpc-authentication-required”: 1,
«rpc-enabled”: 1,
«rpc-password”: «superpassword”,
«rpc-port”: 9091,
«rpc-username”: «superuser”,
«rpc-whitelist”: «*.*.*.*”,
«rpc-whitelist-enabled”: 1,
«upload-limit”: 100,
«upload-limit-enabled”: 0,
«upload-slots-per-torrent”: 14
}
Настройки содержатся в файле /mnt/HD_a2/.transmission-daemon/settings.json, который можно (и нужно) отредактировать
Запуск Transmission осуществляется командой:
sh /ffp/start/transmission.sh start
а останов — командой:
sh /ffp/start/transmission.sh stop
Для автоматического запуска Transmission после включения или перезагрузки DNS-313 поменяйте атрибуты файла запуска:
chmod a+x /ffp/start/transmission.sh
Некоторые настройки вы можете изменять, нажав на пиктограмме с колесиком в веб-интерфейсе Transmission:
http://<адрес_или имя>:9091/transmission/web
Замечание: если после запуска Transmission выдаются сообщения типа «Access denied» или «Invalid folder», выполните команды:
chown -R nobody /mnt/HD_a2/bittorrent
chown -R nobody /mnt/HD_a2/.transmission-daemon