Несмотря на то, что Raspberry Pi является любимым спутником компьютерных энтузиастов во всем мире, он не получает достаточного признания. На самом деле, одноплатные компьютеры всех мастей не получили должного — просто у меня Raspberry Pi. Бросив случайный взгляд в угол моей комнаты, где находится мой Пи, я сосредоточился на предыдущей задаче, которую я ему поручил, я обдумал все более высокие проекты, которые я задумал для этого.
Возможно, пройдет некоторое время, прежде чем я займусь этими грандиозными замыслами. Но самое лучшее, что я могу сделать после своих мечтаний, — это поделиться ими. Идеи здесь — это наброски углем, а не полные иллюстрации, но они дают приблизительную картину.
Я также должен отметить, что все эти проекты содержат Linux в своих схемах (шокирует, я знаю). Поскольку это предварительный этап, мы можем пока оставить поле точного распределения пустым. Тем не менее, вы можете быть уверены, что любые сервисы, которые нам могут понадобиться для запуска Pi, будут закреплены на базе Linux.
Содержание статьи
Вы не можете позвонить домой, если у вас нет номера
Два из трех приведенных ниже проектов потребуют настройки сервера — и, поскольку серверы наиболее полезны, когда они доступны в более широком Интернете, это также влечет за собой некоторые возни с сетью. В частности, всякий раз, когда вы хотите подключиться к своей частной сети извне, вам нужно будет указать IP-адрес и порты на стороне, обращенной к Интернету.
Во-первых, выясните, какой у вас IP-адрес и динамический он или статический в глобальной сети (WAN). Для наших целей мы рассматриваем нашу глобальную сеть как Интернет. Если ваш WAN IP статический, отлично. Он всегда будет таким же (если вы вовремя платите своему провайдеру), чтобы вы могли начать работу над портами.
Однако, если ваш IP-адрес в глобальной сети является динамическим, то есть периодически меняется, необходимо выполнить дополнительные действия. Вам нужно будет зарегистрировать для него домен, а затем заставить глобальную инфраструктуру DNS это учитывать. Легко! Вкратце, это включает в себя регистрацию домена, как если бы вы делали это для веб-сайта, но с установкой для него домашнего IP-адреса WAN.
Но если ваш WAN IP-адрес постоянно меняется, как это что-то решает?
С помощью специальной записи DNS под названием Dynamic DNS (DDNS), как только вы свяжете свой маршрутизатор с вашим доменом, он автоматически обновится как WAN IP вашего маршрутизатора изменится. Таким образом, ваш домен всегда будет указывать на любой IP-адрес WAN, назначенный в настоящее время вашему маршрутизатору.
Если вы хотите получить доступ к своей локальной сети из Интернета, вместо ввода IP-адреса вы должны ввести свой домен. Затем DNS преобразует его в ваш WAN IP-адрес, и все готово. Дальнейшие подробности выходят за рамки этой статьи, но в этом суть.
Независимо от того, какой IP-адрес вы выберете, вам необходимо решить, какие порты открывать на WAN IP-адресе вашего маршрутизатора. Если мы сравниваем IP-адреса с почтовыми адресами, думайте о портах как о номерах устройств. По сути, ваш Pi будет находиться в вашей сети, а его служба будет открывать тот из собственных портов, который ему нужен, и ваш маршрутизатор сопоставит этот порт Pi с одним из портов маршрутизатора, обращенных к глобальной сети. Если вы нажмете правильный порт своего WAN IP (маршрутизатора), ваш маршрутизатор будет передавать трафик на ваш Pi через связанный с ним порт в локальной сети. Соответственно, это называется «сопоставление портов» или «перенаправление портов».
Например, представьте, что ваш маршрутизатор 5.6.7.8 в глобальной сети. Допустим, IP-адрес вашего маршрутизатора в локальной сети — 192.168.1.1, а локальный IP-адрес вашего Pi — 192.168.1.37. Если вы хотите подключиться по SSH к вашему Pi из любой точки планеты, вы должны установить порт 22 на 192.168.1.37 как обычно открытым. Затем ваш маршрутизатор сопоставит порт 22 на 192.168.1.37 (например) с портом 2222 на своем IP-адресе WAN, 5.6.7.8.
Опять же, это еще не все, но именно так происходит настройка сети для вашего Pi.
К чертежной доске
Закончив подготовительную работу, давайте приготовим несколько рецептов Пи.
1. VPN-сервер
Во главе моего списка экспериментов с Pi стоит создание VPN-сервера. Зачем платить за облачный VPN, если вы можете туннелировать домой бесплатно? Большинство из нас все равно оставляют свои лучшие вещи, физические и цифровые, дома. Как только вы подключитесь к домашней сети VPN, вы сможете получить доступ к медиафайлам, резервным копиям или чему-либо еще, хранящимся в вашей локальной сети.
В этом случае ваш Pi является VPN-сервером, а устройства конечных пользователей, которые вы хотите подключить к нему, например ноутбуки или мобильные устройства являются клиентами. Ваш Pi находится в вашей локальной сети, а ваш маршрутизатор сопоставляет порт Pi VPN с портом своего WAN IP. Наберите IP-адрес и порт вашего дома, укажите требуемый ключ, и вы откроете зашифрованную линию обратно на домашнюю базу.
2. Прозрачный прокси-сервер VPN
Этот проект уникален тем, что он не предоставляет услуги (и, следовательно, не является сервером), но упрощает использование существующей службы. При преобразовании в прозрачный прокси-сервер VPN ваш Pi становится портативным устройством безопасности, которое автоматически обеспечивает защиту VPN на других ваших устройствах.
Чтобы создать прозрачный прокси, сначала вам нужно убедиться, что у вашего Pi два беспроводных интерфейса. Модели Pi поставляются максимум с одним беспроводным интерфейсом, поэтому вам нужно будет взять хотя бы одно беспроводное устройство, подключенное к USB. Во-вторых, вам понадобится VPN-сервис. Если ваш VPN был сервером, описанным выше, я думаю, вам понадобится еще один Pi.
Прозрачный прокси-сервер VPN предназначен для решения проблемы недостаточного доверия к сети, достаточного для прямого подключения устройств конечных пользователей к ней, но по-прежнему нуждающегося в подключении. По сути, прокси-устройство делает это, вставляя себя между ненадежной сетью и устройством конечного пользователя, а затем направляет устройство конечного пользователя через выбранную вами VPN. В результате в ненадежной сети передается чисто зашифрованный трафик.
Для этого вы настраиваете Pi как точку доступа (AP) и как VPN-клиент. Для чего это AP? Подозрительная сеть. Его роль в качестве VPN-клиента работает, как и следовало ожидать, с зашифрованным трафиком на VPN-сервер.
Интересные вещи происходят, когда ваше устройство конечного пользователя подключается к точке доступа Pi. Поскольку трафик Pi — это трафик устройства конечного пользователя (как и типичных точек доступа), а трафик Pi также зашифрован, трафик вашего устройства конечного пользователя зашифрован транзитивно. Но вы получаете это шифрование, не изменяя никаких настроек на устройстве конечного пользователя. Ваш ноутбук или мобильное устройство просто думают, что он подключен к обычной сети. Более того, он никогда не взаимодействовал с отрывочной сетью. Хороший трюк, да?
3. Сервер хранилища файлов
Здесь мы вернулись в режим сервера, так что необходимые условия для работы в сети снова в силе.
Сервер хранения файлов Pi может заменить облачное хранилище, предлагая дополнительные возможности. Общая концепция заключается в том, что, как и в случае с VPN, он находится в вашей локальной сети, а его порт файловой службы сопоставлен с портом на WAN IP вашего маршрутизатора. Затем вы получаете доступ к файловому серверу, вводя IP-адрес и порт вашего домашнего маршрутизатора, а также имя пользователя и пароль сервера в клиентскую программу сетевого хранилища, и открываете свое хранилище спрятанных файлов.
Использование собственного сетевого файлового хранилища дает существенные преимущества. Во-первых, вы можете хранить гораздо больше данных. Хотите больше места? Подключите жесткий диск большего размера. Во-вторых, вы владеете инфраструктурой. Вы доверяете свои данные не какой-либо компании, а своему собственному оборудованию и программному обеспечению с открытым исходным кодом — и это стоит намного дешевле. На самом деле вы вкладываете только разовые затраты в Pi и жесткий диск и платите только за электричество.
На твоей отметке, готовься, загружайся!
Это даже не все схемы, которые я придумал для своего Пи, но они — те, которые меня больше всего волнуют и которые, как я думал, другие может показаться самым интригующим. Вы определенно узнаете, когда я займусь этим, так как я обязательно поделюсь своими выводами. А пока, я надеюсь, это даст вам пищу для размышлений со вкусом малины.