Недавно я создал небольшую серверную машину, используя Ubuntu Server и Samba, чтобы выступать в качестве файлового сервера (помимо прочего), чтобы вся моя семья могла получать доступ к определенным файлам по сети с машин Windows. Тем не менее, я хотел бы сделать еще один шаг и сделать так, чтобы акции были доступны через Интернет, вдали от дома. Как бы я это сделал? Я очень мало знаю о том, как работает система сетевых ресурсов Windows, поэтому понятия не имею, с чего начать.
3 ответа
При использовании Samba вам придется открывать порты 139/tcp и 445/tcp снаружи - обычно это включает в себя настройку "переадресации портов" на вашем маршрутизаторе. Кроме того, вы должны убедиться, что ваш внешний IP-адрес проверяется извне.
После этого вы сможете получить доступ к общим ресурсам, введя \\youraddress
в адресной строке Проводника или в Пуск - Выполнить. (Здесь вы можете указать свой внешний IP-адрес или DNS-имя, если оно у вас есть.)
Тем не менее, обратите внимание, что протоколы CIFS и SMBv2, используемые для общего доступа к файлам Windows, не обеспечивают шифрование данных (так что любой пользователь, использующий анализатор пакетов, может контролировать передачу файлов), и его аутентификация также не особенно сильна. Только SMBv3 получил поддержку шифрования.
Кроме того, не забывайте, что служба Windows SMB в прошлом была очень частой целью заражения. Хотя большинство эксплойтов Windows никак не влияют на Samba, об этом все же стоит помнить (и часто это означает, что порты SMB блокируются на уровне ISP).
Также обратите внимание, что машины Windows по умолчанию запоминают учетные данные для входа во весь локальный сеанс. Если вы не подключаетесь к Samba как "Гость", вы должны проявлять особую осторожность на общедоступных компьютерах: всегда используйте net use \\address
перед открытием в Explorer / net use \\address /del
для отключения. (Это не нужно на персональных компьютерах.)
Для дополнительной безопасности добавьте следующее в общий раздел в smb.conf
:
LANMAN auth = no
NTLM auth = no
invalid users = root
Если ваша семья может справиться с использованием WinSCP, то:
- установить и настроить SSH
- предоставить членам вашей семьи локальные учетные записи на вашем сервере
- символическую ссылку вашего хранилища файлов в эти каталоги. Например, если вы открываете
/srv/samba_files
через Samba, вы хотите создатьln -s /home/{user}/files /srv/samba_files
или аналогичные для каждой учетной записи. Если вам нужно сделать это для многих учетных записей, вы можете написать скрипт для этого. - установить WinSCP на компьютеры вашей семьи
Тогда у вас будет очень безопасный способ передачи файлов, который не слишком сложен в использовании.
Однако, если вы действительно хотите интегрировать "сетевой диск" с Windows, я узнаю об OpenVPN, а затем о настройке туннельного моста для вашей домашней сети. Я успешно получил файловые ресурсы Windows для работы над такими туннелями.
Вы также можете использовать PoPToP (pptpd), чтобы система Windows могла подключиться к вашему Ubuntu через PPTP vpn. (Туннель IPSec/L2TP обеспечит лучшую безопасность, но его сложно настроить).
Это зависит от того, какие файлы вы намереваетесь обслуживать. Если это документы или просто файлы, к которым вам нужен удаленный доступ, просто запустите FTP-сервер на вашем сервере Ubuntu. Убедитесь, что вы надежно защищены, с хорошими паролями и доступом только к каталогу файлов, а не к корневому каталогу.
Однако, если вы намереваетесь передавать потоковые медиафайлы (песни, фильмы), вам нужно запустить потоковый сервер. Есть много решений для этого (вот один).
Наконец, вы всегда можете использовать существующее "облачное" решение для накопителей, такое как Dropbox, SkyDrive или Amazon Cloud Player - просто синхронизируйте свои файлы с одной из этих служб, и доступ к Интернету (при этом быстрый) гарантирован.