Фильтр по тематике

Сетевое хранилище на базе одноплатного компьютера Raspberry Pi 2

В статье описываются сборка и подключение серверного хранилища на основе мини-ПК Raspberry Pi 2 и внешнего HDD, настройка сети для пользователей Windows и Linux, а также получение доступа к хранилищу вне локальной сети.

Сетевое хранилище на базе одноплатного компьютера Raspberry Pi 2

Сетевое хранилище жизненно необходимо системным администраторам, обслуживающим корпоративные сети с большими объёмами трафика. К тому же такое устройство можно устроить у себя дома, создав на его базе свое-образный «файловый склад». К сожалению, нынешняя экономическая ситуация такова, что далеко не каждый пользователь может позволить себе такую покупку, поэтому умельцам приходиться идти на различные ухищрения.

В данной статье рассмотрена реализация полноценного файлового хранилища, созданного на базе одноплатного мини-ПК Raspberry Pi 2. Представленное устройство умещается на ладони, а его производительности более чем достаточно для решения поставленной задачи. Нам понадобятся:

  • компьютер Raspberry Pi 2;
  • карта памяти microSD на 8–16 Гб;
  • работающий роутер;
  • кабель microUSB–USB;
  • блок питания с USB-разъёмом (5 В, 2 А);
  • внешний HDD-накопитель;
  • USB-Hub с внешним питанием от сети 220 В;
  • Ethernet-кабель или USB-адаптер беспроводной сети (для подключения к роутеру).

Установка ОС и настройка Raspberry

Первоначально необходимо подключить к Raspberry монитор и клавиатуру. На microSD-карту записываем образ официальной операционной системы – Raspbian. Питание Rasbperry pi 2 осуществляется через microUSB-порт. При первом же запуске мы увидим меню настроек (см. рис. 1), которое также можно вызвать командой sudo raspi-config.

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

Затем подключаемся к домашней сети посредством беспроводного USB-адаптера или же кабеля с патч-кордом. Как только вы убедитесь, что Raspberry подключена к Интернету, введите следующие команды: sudo raspi-update, затем sudo apt-get update и sudo apt-get upgrade.

Этими действиями мы обновили операционную систему и все установленные пакеты.

Статический IP

Для удобства следует присвоить Raspberry постоянный IP-адрес. Делается это изменением соответствующего конфигурационного файла. Вводим в терминале команду sudo nano/etc/network/interfaces. Удаляем всё содержимое и вставляем свои данные:

iface <сетевой_интерфейс(eth0 или wlan0)> inet static
address <IP_Raspberry>
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.1

Адрес broadcast и маску сети можно узнать при помощи команды sudo ifconfig. Geteway выводится командой sudo route -nee. Перезагружаемся командой sudo reboot.

Дальнейшие наши действия будут зависеть от типа операционной системы, установленной на основном компьютере. Это может быть либо Windows, либо Linux и ему подобные системы. Рассмотрим оба варианта.

SSH-подключение для Windows

Этот вариант самый простой. Первым делом подключаемся к Raspberry через SSH-клиента. Можно использовать Putty – простой клиент, открывающий доступ к удалённому терминалу. Ключ безопасности для клиента и сервера генерируется автоматически при первом же подключении. Для подключения с помощью клиента Putty достаточно перейти на вкладку SSH, создать новое соединение на основе IP-адреса и подключиться. Программа так же попросит ввести комбинацию логин-пароль от Raspberry. Скриншот рабочей области описанного клиента представлен на рисунке 2.

Если соединение установлено успешно, вы увидите соответствующее сообщение в новом окошке терминала.

Подключение для Linux

Обычно на Linux-дистрибутивах ключи для SSH-соединения генерируются самим пользователем. Поэтому переключаемся на основной ПК и вводим: ssh-keygen -t rsa -C “your_email@ex.com”.

Далее копируем ключи на Raspberry, используя команду ssh-copy-id pi@<IP_Raspberry>.

Затем соглашаемся с подключением и вводим пароль от своей учётной записи. На этом всё. Подключиться к будущему серверу можно командой ssh pi@<IP_Raspberry>, где «pi» – имя основного пользователя. Кстати, можно создать нового пользователя. Для этого необходимо зайти от имени root и ввести usermod -l <New_ name> -d /home/<New_ name> -m pi.

Теперь можно отключать монитор и клавиатуру от Raspberry, поскольку для нашего же удобства дальнейшие процедуры будут выполняться с основной машины по SSH-соединению.

Безопасность SSH-соединения

Как обезопасить свой SSH-канал и упростить процесс подключения? Запрещаем вход под «рутом», отключаем проверку пароля и меняем стандартный SSH-порт в соответствующем файле sudo nano/etc/ssh/sshd_config.

Требуемые изменения выглядят следующим образом:

PasswordAuthentication no
PermitRootLogin no
Port 22222 (пример нового порта)

Перезагружаем Raspberry. Однако теперь, чтобы подключиться по SSH, нам потребуется указывать новый порт и новое имя пользователя, если таковой имеется. Такая команда будет слишком громоздкой: ssh -p 22222 <имя_пользователя>@<IP_Raspberry>.

Упростим эту процедуру, перейдя в домашний каталог и открыв файл-конфиг nano .ssh/config.

Добавляем сюда следующий код:

Host <IP_Raspberry>
Hostname <имя хоста>
User<имя пользователя>
Port 22222

Теперь подключение по SSH вы-полняется по упрощённой команде ssh <IP_Rasbperry>.

Подключаем HDD

Raspberry Pi 2 не всегда способна работать с внешними HDD – сказывается нехватка питания. Именно поэтому потребуется USB-Hub с отдельным питанием. Необходимо подключить хаб к Raspberry через USB-интерфейс. Накопитель подключается к хабу. Общая схема подключения изображена на рисунке 3.

Теперь подключаемся к Raspberry по SSH и создаём папку, в которую будет монтироваться содержимое нашего HDD. Создаём новую директорию: sudo mkdir hdd. Далее – sudo blkid. Это специальная утилита, позволяющая узнать UUID жёсткого диска. На выходе мы получим следующее: /dev/sda1: LABEL=”Seagate Expansion Drive” UUID=”7CD8ECADSF2A6” TYPE=”NTFS”.

Нам требуется поле UUID. Запоминаем его значение и работаем над совмести-мостью новой файловой системы: sudo apt-get install ntfs-3g. Затем открываем текстовый файл fstab (sudo nano /etc/fstab) и дописываем туда короткую строку: UUID=”<полученный_UUID>” <путь_к_папке_hhd> ntfs-3g rw,force,exec,users 0 0.

Сохраняем и перезагружаемся. Нами получено серверное хранилище, содержимое которого отображается на компьютере Raspberry Pi 2 в папке hhd.

Работаем с Raspberry вне локальной сети

Иногда у пользователя нет возможности перенастроить сервер по локальной сети. Поэтому рассмотрим вариант удалённого подключения к нашему устройству извне. Если пользователь является обладателем статического IP внешней сети, то процесс значительно упрощается – делаем переадресацию внешнего адреса на внутренний.

Обладателям динамического IP потребуется использовать dynamic DNS. Рекомендую использовать www.noip.com. Заходим на этот сайт, регистрируемся и переходим к ADD A HOST. В соответствующем поле вводим наш IP и добавляем хост. Затем, ищем DDNS-опции в настройках роутера и забиваем в соответствующих полях данные с полученного аккаунта и, собственно, доменное имя. Если таких настроек нет, пользователю потребуется скачать программу Dynamic DNS Update Client и настроить аналогичным образом. Так сервис Noip будет знать ваш новый IP.

Теперь переадресуем внешний IP на локальный. Открываем настройки роутера, находим вкладку «Переадресация», затем «Виртуальные серверы» и вносим изменения:

Порт сервиса: 22222
Внутренний порт: 22222
IP-адрес: <исходный IP>
Протокол: Все

Заходим на Raspberry через SSH и открываем файл .ssh/config. Добавляем сюда:

Host <имя домена>
Hostname <имя домена>
User <имя пользователя>
Port 22222

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

Ставим SSHFS

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

Сначала следует установить SSHFS на основную машину (в данном случае рассматривается компьютер с Linux) – команда: sudo apt-get install sshfs.

Затем создадим каталог, в который будет монтироваться Raspberry: mkdir pi.

Сразу же монтируем Raspberry в но-вый каталог: sshfs <IP_Raspberry>: /home/<имя_пользователя>/hdd pi.

Теперь все данные с жёсткого диска можно брать из папки pi, которая расположена на основной машине. Пользователь может пользоваться «новым» хранилищем не только дома, но и за его пределами.

Литература

  1. www.geekelectronics.org/raspberry-pi/raspberry-pi-pervyj-zapusk.html.
  2. www.nixp.ru/articles/5.html.
  3. www.beget.ru/articles/ssh_windows.

Комментарии
Рекомендуем

  Подписывайтесь на наш канал в Telegram и читайте новости раньше всех! Подписаться