Логотип SAMBA
Программное обеспечение

Файловое хранилище на SAMBA и OpenVPN

Численность и объем файлов, которые вынуждены хранить, серьезно возросла, если раньше хватало дискеты с объемом 2880 килобайт, то теперь все поменялось, объемы хранимой информации измеряются терабайтами и даже зетабайтами, а это уже 1 миллиард терабайт. Не за горами хранилища объемами в иоттабайт, что уже будет содержать триллион терабайт. Возможно, я отстал от жизни и на серверах какого-нибудь Dropbox или поисковых систем давно лежит побольше. Ну, намекните, если что. Будет интересно узнать. В общем, хранить многочисленную информацию локально уже бессмысленно. Использовать арендные хранилища не всегда удобно и безопасно. В таком случае придется развернуть собственное файловое хранилище на SAMBA. В данной статье расскажу, как можно его сделать.

Требования

Давайте сначала сформулируем задачу, которая может потребоваться от такого устройства. Несмотря на то, что решение подойдет для любой конфигурации, но из-за мелочей мало смысла заморачиваться. Проще реально взять по дешевке какой-нибудь сервер или даже арендовать VPS.

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

  • RAID 10;

  • файловое хранилище с доступом по популярным протоколам;

  • подходящая программная среда, позволяющая дать доступ устройствам с разнообразными операционными системами.

Задача не сложная, нам требуется только сервер с контроллером, подходящим для построения RAID 10 и немного знаний. Учтите, чтобы разжевать все, что здесь будет написано, потребуется накатать целую книгу.

Итак, нам понадобится следующее:

  1. Файловый сервер с контроллером.

  2. Операционная система Ubuntu, желательно самую новую версию.

  3. Программный комплекс Samba.

  4. На старт! Внимание! Марш!

Создание сетевого файлового сервера на SAMBA

В первую очередь уточню, что при установке Ubuntu можно установить пакет Samba сразу. Смотрите скриншот.

Установка SAMBA

Но если это не было сделано, поступаем так:

  1. Открываем терминал комбинацией клавиш Ctrl + Alt + T.

  2. Выполняем команду sudo apt-get update. После sudo apt-get upgrade, если есть проблемы с обновлением, то dist-upgrade.

  3. Выполняем команду sudo apt install samba samba-common python-dnspython

  4. Дожидаемся установки, после чего переходим к следующему этапу.

Теперь настраиваем программный комплекс. Сделать это проще всего по официальной инструкции: https://help.ubuntu.ru/wiki/samba Рекомендую вместо

Рекомендую установить GUI для настройки в графическом интерфейсе в wiki-ubuntu об этом немного сказано. Но, если есть знания английского либо сможете разобрать кривой перевод, то вот ссылка на официальный сайт: https://www.samba.org/samba/GUI/ Информация дана довольно подробная, разъяснить лучше даже при желании не смогу.

Вы все настроили, пробросили порты, но возникает ошибка при удаленном доступе. И эта проблема многих ставит в тупик. Сейчас объясню, в чем она заключается.

SAMBA для файлового хранилища

Проблема удаленного доступа Samba

Для подключения через интернет потребуются рабочие порты:

  • 137 UDP;

  • 138 UPD;

  • 139 TCP;

  • 445 Both.

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

Часто они фильтруют данные порты и обрубают доступ, так что, если на роутере соединение посредством данных портов не блокировано, шерстите провайдера. Но не всегда он готов пойти на встречу, в таком случае варианта остается два.

Первый, конечно же, смена провайдера, но, например, во многих офисных центрах альтернативы попросту нет. В таком случае сразу стоит перейти ко второму варианту.

Решаем задачу

Для начала устанавливаем и настраиваем OpenVPN по инструкции: https://help.ubuntu.ru/wiki/openvpn

Если в дальнейшем не поможет, то в файле конфигурации маску подсети заменяйте на свою. Не забудьте указать все порты.

Теперь установим iptables, конечно, если этого комплекса надстроек нет. Вводим команду:

sudo apt-get install iptables

Далее в терминал вводим такую команду:

sudo iptables -t nat -A PREROUTING -d внешнийIP -p udp —dport 137 -j DNAT —to-destination 10.8.0.0:137

Это для примера, параметры server и внешний IP указывайте свои. Таким образом открываем доступ к каждому порту через VPN. Не забудьте включить NAT: https://help.ubuntu.ru/wiki/sharing_internet

Вроде бы все, коротко, но ясно. Да, отнимет время, но нет ничего невозможного. Так что дерзайте. Успехов вам!

Добавить комментарий

Ваш e-mail не будет опубликован.