Какой безопасный протокол сетевой файловой системы я могу предоставить в открытый доступ в Интернете?

Какой безопасный протокол сетевой файловой системы я могу предоставить в открытый доступ в Интернете?

У меня есть домашний DIY NAS (Debian), который я иногда использую с удаленных устройств. NAS имеет файловый сервер SMB, и в настоящее время я получаю к нему удаленный доступ с помощью SSH (шифрование с закрытым ключом) и туннелирования портов SSH

ssh [email protected] -L 448:localhost:445

Затем подключаемся к smb://localhost:448удаленному клиенту.

Это не очень хорошо работает, когда я использую Android TV удаленно, поскольку мне приходится использовать Termux и выполнять всю настройку SSH, прежде чем получить доступ.

Насколько я понимаю, небезопасно напрямую открывать доступ к порту моего SMB-сервера в Интернете. Существует ли сетевой протокол обмена файлами с поддержкой клиентов на всех основных платформах, который был бы достаточно безопасен для публикации в Интернете?

решение1

Никогда не раскрывайте никакую сетевую файловую систему. Вместо этого используйте VPN (или туннелирование ssh), а затем раскрывайте сетевую файловую систему через VPN.

Также имейте в виду, что сетевая файловая система на больших расстояниях будет довольно медленной и не доставляет приятных ощущений.

Если настройка VPN или SSH-туннелирования требует слишком много усилий, автоматизируйте ее.

решение2

Насколько я понимаю, небезопасно напрямую открывать доступ к порту моего SMB-сервера в Интернете. Существует ли сетевой протокол обмена файлами с поддержкой клиентов на всех основных платформах, который был бы достаточно безопасен для публикации в Интернете?

SSH имеет один встроенный: SFTP. Многие приложения для управления файлами Android поддерживают его, и с ним можно работать как с монтируемой файловой системой через sshfs.

WebDAV может быть вариантом, хотя его поддержка встречается сравнительно редко (иногда его называют «Nextcloud», поскольку это наиболее распространенное использование WebDAV).

(Малый и средний бизнес считается в основном небезопасным, нобольшойЧастично это было связано с ошибками в SMB-сервере Windows в ядре. Альтернативные реализации SMB-сервера (например, Samba) гораздо менее рискованны — как из-за другой кодовой базы, на которую не влияют те же самые ошибки, так и из-за того, что процесс smbd пользовательского пространства в Linux значительно проще ограничить, чем драйвер ядра в Windows.

Так что если вы используете файловый сервер SMB на базе Samba, то это наполовину нормально. Все равно рекомендуюпо меньшей мереХотя список разрешенных IP-адресов брандмауэра находится наверху, но, по крайней мере, эксплойты, ориентированные на Windows, с ним не будут работать.

К сожалению, многие приложения Android не поддерживают новые функции SMBv3, такие как транспортное шифрование; они сделают абсолютный минимум для поддержки SMBv2, если вам повезет, и потребуют SMBv1 в противном случае; в обоих случаях вы остаетесь по сути с открытым текстовым протоколом. Кроме того, использование SMBv1 через WAN не является хорошим опытом, даже если бы оно было безопасным.)

Простое решение для всего вышеперечисленного — прекратить раскрывать протокол сетевой файловой системы и вместо этого раскрыть протокол VPN, поскольку серверы VPN разработаны с учетом удаленного доступа (как и SSH) и в целом гораздо менее рискованны для раскрытия. Затем, как только вы подключитесь к VPN, используйте SMB или NFS или что вам угодно.

Связанный контент