Свой сетевой диск для iPhone — поднимаем Samba на Centos
Добрый день друзья! Я как и многие, столкнулся с очередной нехваткой памяти на своем iPhone. Ведь, как известно, сколько бы памяти не было на вашем телефоне — ее всегда мало. Постоянная съемка видео, создание фото, загрузка контента в режиме воспроизведения оффлайн, или же просто работа в интернете(браузер и мессенджеры) — все это требует немалого объема встроенного NVMe накопителя. Разумеется можно воспользоваться платной подпиской на iCloud, получив таким образом еще пару терабайт памяти в облаке, но и они конечны, да и к тому-же стоят не малых денег. К счастью, операционная система iOS (как впрочем и Android), благодаря встроенному приложению Файлы(Files), позволяют легко подключить удаленный сетевой диск(по протоколу SMB), и в последующем сохранять на него любые данные. Остается только обзавестись своим сетевым диском(облачным хранилищем), на несколько терабайт и наслаждаться жизнью. Сегодня мы рассмотрим, как установить, настроить и подключить сетевой диск к iPhone на примере операционной системы CentOs 7 и Samba-сервера.
Исходные данные, что имеем? В нашем распоряжении имеется сервер, с постоянным подключением к сети интернет на скорости 1ГБит, с постоянным(статическим) IP-адресом, с установленной и настроенной операционной системой CentOS 7, с панелью управления BrainyCP(последнее не имеет особого значения, просто для удобства). Но, все ниже описанные действия можно выполнить и на обычном ПК, без постоянного статичного IP и скоростного подключения к сети.
Что необходимо будет сделать?
- Установить сервер Samba;
- Создать пользователя и задать пароль;
- Настроить конфигурацию сервера Samba для доступа к публичной и приватной директории;
- Настроить Firewall в операционной системе;
- Наш сервер стоит за NAT, то есть нужно прокинуть порты;
- Добавить сетевой диск в iPhone.
Установка Samba на CentOS 7
Устанавливаем Samba, текущая версия 4.10.16. Для этого, подключившись к серверу по SSH, в командной строке выполняем:
yum install samba -y |
Создаем директории для общего доступа
В моем случае это будут директории /home/samba/private/ и /home/samba/public/, для приватного доступа и публичного соответственно:
mkdir /home/samba |
mkdir /home/samba/private |
mkdir /home/samba/public |
Устанавливаем права доступа на чтение и запись, для всех директорий:
chmod -R 777 /home/samba/ |
Создаем пользователя и задаем пароль
Для авторизации при подключении к серверу Samba, и доступа к директориям, создаем отдельного пользователя в системе:
useradd sambauser |
задаем ему пароль:
passwd sambauser |
добавляем нового пользователя в одноименную группу sambauser:
Usermod -aG sambauser |
и создаем нового пользователя sambauser в самой Samba:
smbpasswd -a sambauser |
Настроить конфигурацию сервера Samba для доступа к публичной и приватной директории
Конфигурационный файл сервера Samba, будет расположен в /etc/samba/smb.conf, если его нет, вы можете создать его, взяв в качестве основы экземпляр /etc/samba/smb.conf.example, скопировав его следующей командой:
mv /etc/samba/smb.conf.example /etc/samba/smb.conf |
Задаем содержимое конфигурационного файла, состоящее из трех секций, global — общие настройки сервера, public — настройки доступа к публичной директории, private — настройки доступа к приватной директории:
[global] ; Общие настройки ; Рабочая группа, оставим WORKGROUP workgroup = WORKGROUP security = user passdb backend = tdbsam ; Данный параметр необходим для поддержки авторизации из ОС Windows ntlm auth = true ; Логируем работы службы. Лог по умолчанию расположен в /var/log/samba/ log level = 3 [public] ; Настройки публичной директории. Можно вообще убрать эту секцию, если вам публичная директория не нужна comment = Public Directory path = /home/samba/public guest ok = yes force user = nobody browsable = yes writable = yes create mode = 0777 directory mode = 0777 [private] ; Настройки приватной директории comment = Private Directory path = /home/samba/private ; Добавляем группу пользователей sambauser, для которых разрешена авторизация и доступ valid users = @sambauser guest ok = no browsable = yes writable = yes |
После создания конфигурационного файла, можно проверить его корректность специальной утилитой, которая сообщит об ошибке в случае ее обнаружения:
testparm |
В моем случае настройка Firewall заключается в открытии доступа к портам 139 и 445, с помощью утилиты iptables, для этого выполняем в командной строке:
iptables -t filter -A INPUT -p tcp --dport 445 -j ACCEPT iptables -t filter -A INPUT -p tcp --dport 139 -j ACCEPT |
Иногда, в некоторых системах управления сервером, типа BrainyCP, по умолчанию порты 445 и 139, могут быть закрыты Firewall отдельным правилом, этот момент стоит проверить.
Также прокидываем данные порты на роутере, в случае если сервер стоит за NAT.
Перезагружаем службу Samba
systemctl restart smb.service |
Добавить сетевой диск в на iPhone
После проделанных действий, нам стал доступен сетевой диск, который можно подключить как к операционной системе Windows, так и iOS для использования в iPhone по следующему адресу smb:\\ip_address\private, при подключении система запросит логин и пароль.
Для подключения к iPhone, запускаем приложение Файлы(Files) и в правом верхней углу выбираем Меню/Подключить сетевой диск, далее указываем адрес подключения, вводим логин и пароль. После чего, данный сетевой диск будет доступен в списке директорий iPhone при сохранении файлов, фото и видео. То есть, вы можете таким образом хранить информацию на внешнем, своем личном, облачном хранилище.
Установка и работа с клиентом Samba
Для подключения к серверу Samba из ОС Centos 7(например для проверки подключения), устанавливаем Samba Client.
yum install samba-client -y |
Подключение к сервера Samba:
mbclient //ip_address/private |
Получим список ресурсов SMB, доступных анонимному пользователю:
smbclient -L ip_server |
Получим список ресурсов SMB, доступных user_name:
smbclient -L ip_server -U user_name |
Подключение к Samba как к FTP (команды cd,ls,get,put,quit):
smbclient //192.168.1.1/myshare -u user_name |
Дополнительно
Посмотреть статус работы Samba сервера:
smbstatus |
Просмотр информации о составе сети:
smbtree -b -N |
Сканируем/ищем SMB-хосты в вашей сети:
findsmb |
Поиск хостов по NetBIOS (NetBIOS name используется в Samba):
nmblookup host_name |
Ищем устройство с именем server1 в сети 192.168.1.0/24:
nmblookup -U 192.168.1.255 server1 Монтирование SMB-директорий: <pre lang="bash">mount -t smbfs -o username=my_user,password=My_pass //host/myshare /mnt/my_mount |
Для проверки доступности потов на сервере из вне, может быть полезна утилита netcat(для Windows Zenmap), которую нужно будет установить на сторонний внешний сервер (и в дальнейшем проверить доступность портов на нашем Smba сервере).
yum install netcat |
После установки, выполняем:
nc -zvw3 ip_server 445 |
Нюансы
К сожалению в случае с SMB протоколом и Samba, не все так сладко, как и в любом деле, есть нюансы, которые стоит учитывать:
- Подключение по протоколу SMB относительно стабильно работает в локальной сети и менее стабильно в сети интернет;
- Не стоит делать доступными порты 445 и 139 в глобальной сети, так как этим могут воспользоваться злоумышленники и попросту взломать(путем перебора паролей) ваш сервер получив доступ к хранящимся в приватной директории данным;
- На практике, при сохранении больших файлов с iPhone, на удаленный сервер по протоколу SMB, я несколько раз столкнулся с ошибкой соединения;
- Из-за того, что доступ к Samba серверу осуществляется через порт 445 (а изменить порт подключения на клиентах нельзя), иногда возникают проблемы с доступом к серверу из-за автоматической блокировки данного порта со стороны Firewall (данный порт считается небезопасным).
Похожие записи
Оставить комментарий
Full Stack
Senior, Architect
предложить оффер
- jQuery: как получить значение атрибута?
- Интеграция с API ОСАГО сайта sravni.ru
- PHP работа с изображением, класс SimpleImage
- Комментарии на PHP, Ajax, mySQL
- PHP: Категории бесконечного уровня вложенности.
- Nginx редирект на другой сервис с сохранением URL спросил (а) Сергей
- Исполнитель пропал, почему такое случается и понять с кем работать? спросил (а) Артем
- Можно ли WordPress считать универсальным движком? спросил (а) Андрей
- Что такое самописный скрипт или CMS? спросил (а) Антон
- Как при поиске в linux используя grep, добавить исключения? спросил (а) Алексей
- Как создать Telegram-бота с авторизацией через сайт к записи
- PHP скрипт: каталог закладок на сайты к записи
- Валидация на PHP к записи
- Сколько зарабатывают в бизнесе на совместных покупках к записи
- Сколько зарабатывают в бизнесе на совместных покупках к записи
- Подключение(интеграция) приема платежей WeChat Pay на сайте к записи
- Интеграция Тинькофф банк Эквайринг на сайт для приема платежей к записи
Archive
- +2024 (6)
- Август 2024 (5)
- Май 2024 (1)
- +2023 (27)
- Ноябрь 2023 (1)
- Октябрь 2023 (13)
- Сентябрь 2023 (10)
- Апрель 2023 (1)
- Март 2023 (1)
- Февраль 2023 (1)
- +2022 (21)
- Декабрь 2022 (11)
- Ноябрь 2022 (1)
- Май 2022 (2)
- Апрель 2022 (2)
- Март 2022 (3)
- Февраль 2022 (1)
- Январь 2022 (1)
- +2021 (17)
- Декабрь 2021 (5)
- Ноябрь 2021 (2)
- Июль 2021 (1)
- Июнь 2021 (2)
- Май 2021 (5)
- Апрель 2021 (1)
- Март 2021 (1)
- +2020 (20)
- Декабрь 2020 (6)
- Сентябрь 2020 (2)
- Август 2020 (1)
- Июль 2020 (2)
- Май 2020 (2)
- Апрель 2020 (2)
- Март 2020 (2)
- Февраль 2020 (1)
- Январь 2020 (2)
- +2019 (18)
- Декабрь 2019 (3)
- Ноябрь 2019 (2)
- Октябрь 2019 (2)
- Сентябрь 2019 (1)
- Август 2019 (2)
- Июль 2019 (1)
- Июнь 2019 (1)
- Апрель 2019 (2)
- Март 2019 (1)
- Февраль 2019 (3)
- +2018 (44)
- Декабрь 2018 (4)
- Ноябрь 2018 (7)
- Октябрь 2018 (8)
- Сентябрь 2018 (1)
- Август 2018 (4)
- Июль 2018 (5)
- Май 2018 (3)
- Апрель 2018 (7)
- Март 2018 (1)
- Февраль 2018 (2)
- Январь 2018 (2)
- +2017 (19)
- Декабрь 2017 (2)
- Ноябрь 2017 (1)
- Октябрь 2017 (1)
- Сентябрь 2017 (2)
- Июль 2017 (1)
- Июнь 2017 (1)
- Май 2017 (2)
- Апрель 2017 (3)
- Март 2017 (2)
- Февраль 2017 (1)
- Январь 2017 (3)
- +2016 (36)
- Декабрь 2016 (3)
- Ноябрь 2016 (3)
- Октябрь 2016 (2)
- Сентябрь 2016 (3)
- Август 2016 (7)
- Июнь 2016 (3)
- Май 2016 (3)
- Апрель 2016 (3)
- Февраль 2016 (1)
- Январь 2016 (8)
- +2015 (36)
- Ноябрь 2015 (5)
- Октябрь 2015 (4)
- Сентябрь 2015 (1)
- Август 2015 (8)
- Июнь 2015 (1)
- Май 2015 (4)
- Апрель 2015 (8)
- Март 2015 (3)
- Февраль 2015 (2)
- +2014 (26)
- Ноябрь 2014 (2)
- Октябрь 2014 (5)
- Сентябрь 2014 (6)
- Июль 2014 (1)
- Июнь 2014 (2)
- Май 2014 (3)
- Апрель 2014 (6)
- Февраль 2014 (1)
- +2013 (27)
- Декабрь 2013 (2)
- Ноябрь 2013 (1)
- Октябрь 2013 (1)
- Август 2013 (1)
- Июль 2013 (3)
- Июнь 2013 (10)
- Май 2013 (1)
- Апрель 2013 (2)
- Февраль 2013 (3)
- Январь 2013 (3)
- +2012 (41)
- Декабрь 2012 (2)
- Ноябрь 2012 (3)
- Октябрь 2012 (7)
- Сентябрь 2012 (2)
- Август 2012 (1)
- Июль 2012 (3)
- Июнь 2012 (2)
- Май 2012 (6)
- Апрель 2012 (2)
- Март 2012 (7)
- Февраль 2012 (5)
- Январь 2012 (1)
- +2011 (57)
- Декабрь 2011 (6)
- Ноябрь 2011 (2)
- Октябрь 2011 (3)
- Сентябрь 2011 (5)
- Август 2011 (4)
- Июль 2011 (3)
- Июнь 2011 (3)
- Май 2011 (3)
- Апрель 2011 (4)
- Март 2011 (10)
- Февраль 2011 (5)
- Январь 2011 (9)
- +2010 (43)
- Декабрь 2010 (7)
- Ноябрь 2010 (21)
- Октябрь 2010 (14)
- Сентябрь 2010 (1)
Свежие записи
- Вывести в меню индикатор новых новостей и статей на сайте Тильда 28.08.2024
- Свой сетевой диск для iPhone — поднимаем Samba на Centos 27.08.2024
- Бекап, сохранение и восстановление БД MySQL 21.08.2024
- Авторизация SSH с помощью ключа в Putty 20.08.2024
- Настройка доступа к сайту, находящегося за NAT и проксирующим nGinx 20.08.2024