Pull to refresh

OpenSSL для шифрации соединения QNAP NAS SSL WebDav

Reading time3 min
Views22K
Задача — подключить сетевой дисковый массив QNAP TS-420 через интернет для удаленной работы.
Я решил что наилучшее решение для этого будет использование технологии WebDav по защищенному каналу.
Соответственно в официальной инструкции написано как использовать WebDav без шифрации.
В вики тут и тут написано на английском с некоторыми неточностями. В общем для упрощения я решил сваять данную инструкцию.

Требования начальные: Ваш дисковый массив должен быть доступен через интернет на выделенном IP адресе по портам 80 и 8081. Также желательно открыть доступ к массиву по порту 443. Любые изменения (пробрасывания) стандартных портов на нестандартные (к примеру 34000 или иже с ними), приводит к значительным тормозам при подключении и работе с сетевой папкой.

Для начала надо скачать OpenSSL тут или в моей статье (соответственно нужной разрядности 32 или 64).

Если в работе программы будет валиться ошибка:
WARNING: can't open config file: /usr/local/ssl/openssl.cnf

Unable to load config info from /usr/local/ssl/openssl.cnf


То надо выполнить следующую команду (если программа установлена в папку C:\OpenSSL-Win64):
Set OPENSSL_CONF=C:\OpenSSL-Win64\bin\openssl.cfg

После установки вначале генерируем приватный ключ длиной 2048:
C:\OpenSSL-Win64\bin>openssl genrsa -out priv.key 2048
Loading 'screen' into random state - done
Generating RSA private key, 2048 bit long modulus
......................................................................................+++
..........................................................+++
e is 65537 (0x10001)

Потом делаем сертификат на 10 лет. В процессе будут вопросы для сертификата.
Важно только «Common Name (e.g. server FQDN or YOUR name) []:» Надо вбить там адрес нашего дискового массива.
В моем случае я вбил IP адрес 123.456.789.012
Если подключение будет идти через буквенное имя, наподобие nas.mydomain.net, то его и надо вбивать:
C:\OpenSSL-Win64\bin>openssl req -new -key priv.key -out server.crt -x509 -days 3650
Loading 'screen' into random state - done
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:ru
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:khb
Common Name (e.g. server FQDN or YOUR name) []:123.456.789.012
Email Address []:

Теперь у нас есть 2 файла: priv.key и server.crt:


Далее надо импортировать сделанный сертификат, чтобы система ему верила. Дважды кликаем на файл server.crt, появляется окно:


Далее надо выбрать куда этот сертификат положить:


Говорим системе, что это у нас сертификат корневого уровня:






Система крайне подозрительна, но мы ей говорим, что все под контролем:


Далее надо зайти на дисковый массив и внести кое-какие изменения в настройки. Все должно быть как на картинке:


Далее идем в общие папки и нажимаем на настройки папки, которую надо расшарить:


Выбираем пользователей и группы, которым будет доступ к папке:


Далее надо добавить наши сертификат и ключ.
Идем в Безопасность.
Открываем параллельно в блокноте наши файлы priv.key и server.crt и копируем соответственно текст из server.crt в верхнее поле а текст из priv.key в нижнее поле. Нажимаем «Загрузить»:


Система выдает такое окошко. Показывает, что загружает сертификаты.


После загрузки должна появиться такая надпись:


На дисковом массиве все готово.
Теперь надо настроить рабочую станцию, чтобы комп мог подключаться к дисковому массиву.
На Windows 7 есть проблема. QNAS требует изменения безопасности в реестре компа.
Запускаем regedit и по пути:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\WebClient\Parameters
изменяем параметр BasicAuthLevel на значение 2

После этого надо или перезагрузить компьютер, или перезагрузить службу webclient.
Останавливаем:
C:\Users\raymond>sc stop webclient

Имя_службы: webclient
Тип : 20 WIN32_SHARE_PROCESS
Состояние : 3 STOP_PENDING
(STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN)
Код_выхода_Win32 : 0 (0x0)
Код_выхода_службы : 0 (0x0)
Контрольная_точка : 0x0
Ожидание : 0x0

Запускаем:
C:\Users\raymond>sc start webclient

Имя_службы: webclient
Тип : 20 WIN32_SHARE_PROCESS
Состояние : 2 START_PENDING
(NOT_STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN)
Код_выхода_Win32 : 0 (0x0)
Код_выхода_службы : 0 (0x0)
Контрольная_точка : 0x0
Ожидание : 0x7d0
ID_процесса : 376
Флаги :

Готово. Теперь можно попробовать подключиться к нашему дисковому массиву.
Нажимаем правой кнопкой на компьютере и выбираем «Подключить сетевой диск...»


Выбираем букву диска, а в поле папка пишем адрес нашего массива с портом и названием расшаренной папки:


Далее система просит ввести пароль на доступ к папке. Пишем то, что забивали в настройках дискового массива:


Если все удалось, то появится сетевая WebDav папка с шифрацией через SSL.


В общем все готово! Через 10 лет придется переделывать ключи.
Only registered users can participate in poll. Log in, please.
Насколько полезна статья?
63.64% Нужная статья. Давно искал.7
18.18% Все это и так понятно. Зря писал.2
18.18% В целом хорошо, но есть неточности.2
11 users voted. 5 users abstained.
Tags:
Hubs:
0
Comments1

Articles