понедельник, 5 марта 2012 г.

Активация доступа по SSH для NAS-серверов D-LINK

 

В материале Установка FFP или торрент клиент Transmission на D-LINK DNS-343/325/323/320, мы рассмотрели установку на NAS сервреры компании D-LINK пакета FFP, предоставляющего в частности терминальный доступ к хранилищу по протоколу Telnet. Однако отрицательным моментом в использовании доступа по данному протоколу, является его незащищенность, то есть каждый, кто сможет "достучаться" до порта 23 хранилища

(по умолчанию, Telnet висит именно на этом порту), безпрепятственно сможет управлять NAS сервером по своему усмотрению в меру своей распущенности, ввиду отсутствия авторизации (имеется ввиду отсутствие оной при первичной установке FFP и первичном открытии доступа по Telnet). Одно дело, когда хранилище доступно из локальной домашней сети, где злоумышленников в лице домочадцев вряд-ли будут интересовать методы нарушения отлаженной бесперебойной работы NAS сервера, скажем с целью подорвать планомерное повышение рейтингов на каких-нибудь закрытых жутко засекреченных торрентообменных сетях :-) Но совсем другое дело, когда сидя на работе, в коротких перерывах между приходом и уходом с оной, иногда жутко срочно бывет необходимо залезть на хранилище, расположенное на полочке в своей квартире за несколько километров, и срочным образом командой "top" посмотреть на загрузку процессора, или того хуже, утилизацию памяти :-)

Шутки в сторону, ибо в действительности, открывать порт, на котором висит Telnet, во внешнюю сеть (Internet), вряд-ли кто-то осмелится. Именно для таких случаев, существует SSH - Secure SHell, сетевой протокол сеансового уровня, позволяющий производить удалённое управление операционной системой. Отличительной особенностью его является шифрование трафика. В общем, активацией данного протокола мы сейчас и займемся.

Итак, в первую очередь, нам необходимо активировать пользователя root отключенного по умолчанию, а также завести на него пароль, по которому будем авторизоваться в дальнейшем. Для этого выполняем команды (нажимаем ENTER в конце каждой строки):

pwconv

passwd

При нажатии ENTER после предыдущей строки, необходимо дважды ввести пароль (естественно одинаковый :) и с соблюдением регистра, также желательно его запомнить). Теперь непосредственно активируем пользователя root:

usermod -s /ffp/bin/sh root

а также создаем для него домашний каталог:

mkdir -p /ffp/home/root/

usermod -d /ffp/home/root/ root

После этого, можем произвести "пробу пера" залогинившись под новообращенным пользователем root с соответствующим паролем. Если все прошло как по маслу, перейдем к следующему пункту, если нет - возвращаемся к пункту passwd.

Теперь необходимо сохранить наш пароль в разделе данных флеш памяти устройства выполнением скрипта store-passwd.sh, ибо в противном случае, при перезагрузке хранилища, мы уже не сможем залогиниться. Однако здесь имеется одна тонкость - ввиду того, что FFP изначально разрабатывался для DNS-323, имеющийся скрипт сохранения пароля во флеш работает только на DNS-323 :-) Следовательно, если ваш NAS сервер - DNS-323, выполняем команду:

store-passwd.sh

Если же ваш NAS-сервер - DNS-343, необходимо скачать скрипт сохранения пароля во флеш именно для этой модели, а потом уже его выполнять:

wget http://wolf-u.li/u/121 -O /ffp/sbin/store-passwd.sh

store-passwd.sh

А ежели у вас NAS сервер - DNS-320, необходимо выполнить:

wget http://wolf-u.li/u/172/ -O /ffp/sbin/store-passwd.sh

store-passwd.sh

Все подготовительные этапы выполнены, активируем непосредственно сам SSH:

chmod a+x /ffp/start/sshd.sh

sh /ffp/start/sshd.sh start

После этого, спокойно можем закрыть порт 23, открыть порт 22 во внешнюю сеть, и никакие злоумышленники нам не страшны.

Авторизация в SSH

Для пущей надежности, можем даже выключить доступ по Telnet вообще:

chmod -x /ffp/start/telnetd.sh

В общем-то, когда я это проделывал самостоятельно, не зная описанных выше тонкостей, напарывался на то, что после отключения автозагрузки Telnet командой chmod a-x /ffp/start/telnetd.sh и последующей перезагрузки устройства, переставал работать и Telnet и SSH. Благо это лечится путем редактирования файла fun_plug (который если вы помните - текстовый), а именно добавлением команды chmod a+x /ffp/start/telnetd.sh в конец его последней строки. Некоторые пользователи интересуются как можно отключить активированный доступ по SSH, делается это так:

chmod -x /ffp/start/sshd.sh

Результатом выполнения данной команды является отключение доступа по SSH для NAS-серверов D-Link.

Источник: NAS-TWEAKER