Статьи

Настройка домашнего VPN-сервера с помощью Raspberry Pi

IoTWeek_Gray

Это неделя Интернета вещей в SitePoint! Всю неделю мы публикуем статьи, ориентированные на пересечение интернета и физического мира, поэтому следите за последними обновлениями в теге IoT .

Одной из составляющих работы с Интернетом вещей является сложность подключения к устройствам в вашем доме, когда вы не находитесь в домашней сети. Я сталкиваюсь с этой трудностью каждую неделю, путешествуя — мне нужно проводить тесты и создавать демонстрационные версии Internet of Things, но я не дома, чтобы делать это! Я решил превратить свой Raspberry Pi в VPN, чтобы я мог удаленно подключаться к своей домашней сети. Вот как вы можете сделать то же самое, используя установщик OpenVPN под названием PiVPN .

Вы можете запустить следующий учебник, используя терминал на вашем Pi или используя SSH для удаленного подключения к вашему Raspberry Pi. Если вы не совсем уверены, как подключить SSH к Raspberry Pi, у меня есть краткое руководство по использованию SSH в Raspberry Pi, которое может помочь! Если на вашем Pi не настроен статический IP-адрес, я бы порекомендовал работать непосредственно на Pi (в противном случае, вероятно, что ваши IP-адреса в процессе будут изменены на статический IP и выгонят вас из сеанса SSH !)

Запуск процесса установки

Чтобы начать, мы запускаем следующую команду в терминале нашего Pi (либо через SSH, либо непосредственно в Pi):

curl -L https://install.pivpn.io | bash

Важное примечание: эта команда анализирует случайный скрипт, загруженный из Интернета, прямо в bash вашего Pi. Это может быть невероятно опасно, если вы не доверяете источнику установки, так как он сразу же запустит любой код, который вы ему дадите. Я не проходил и не проверял их командную строку bash (я им доверяю!), Но можно просмотреть их учетную запись GitHub (в папке install.shauto_install

Выполнение этой команды откроет немного более приятный текстовый графический интерфейс, который начинается с простого приглашения:

Начальный автоматический запрос установщика

Как только вы нажмете Enter , вы попадете на другой экран, который покажет, что статический IP-адрес важен для работы этой службы VPN: если у вас нет статического IP-адреса для вашего Pi, ваш маршрутизатор выиграл ‘ у него есть IP-адрес для пересылки функций VPN. У вас нет статического IP на вашем Пи? Не беспокойтесь — автоматический установщик установит для вас статический IP-адрес.

Экран говорит вам, чтобы иметь статический IP

Нажмите Enter, чтобы перейти к следующему экрану:

Выбор Ethernet или Wi-Fi

Будьте осторожны на этом экране: нажав Enter , вы перейдете к следующему экрану, а не сделаете выбор в двух опциях переключателя. Я сделал эту ошибку во время процесса установки, и было бы грязно перезапустить процесс установки, чтобы изменить его!

В выборе интерфейса вы можете выбрать, хотите ли вы настроить VPN на вашем Ethernet-соединении (eth0) или на Wi-Fi (wlan0) . Я лично выбираю Wi-Fi, так как мой Pi не находится рядом с моим роутером. Если вы можете подключить Pi через Ethernet, это будет намного лучше для скоростей! Чтобы выбрать параметр, переместите выделение с помощью клавиш со стрелками и выберите его с помощью пробела . Затем нажмите Enter, чтобы перейти к следующему экрану.

Подтверждение текущего экрана IP-адреса

Этот экран подтверждает ваш текущий IP-адрес для Pi. Я лично хотел изменить IP своего Pi на что-нибудь более запоминающееся, поэтому я нажал клавишу со стрелкой, чтобы переместить свой выбор на <No>пробел, чтобы выбрать его. Затем я нажимаю Enter, чтобы перейти к настройке, чтобы изменить статический IP моего Pi.

Ввод желаемого IP-адреса

На этом экране вы введете статический IP-адрес, который вы хотите, чтобы ваш Pi имел. Я выбрал 192.168.0.31 Получив IP-адрес, который вы хотите, нажмите Enter .

IP-адрес шлюза

На этом экране вам необходимо ввести IP-адрес вашего маршрутизатора или шлюза по умолчанию. Это будет зависеть от настроек вашей сети, но в большинстве случаев это будет 192.168.0.1 Если вы не уверены, попробуйте ввести любой IP-адрес, который вы вводите, чтобы перейти на страницу конфигурации вашего маршрутизатора в браузере. Как только вы введете это, нажмите клавишу Enter .

Подтверждение IP-адреса

Нажмите Enter на этом экране, чтобы подтвердить правильность настроек IP-адреса. Они должны выглядеть аналогично моим, если ваша домашняя сеть настроена на настройки по умолчанию большинства домашних сетей. Если нет, высоки шансы, что вы уже знаете свои собственные настройки.

Настройки подтверждены

Визуальный интерфейс в стиле GUI исчезнет, ​​и вы увидите в терминале, что ваши настройки подтверждены в показанном тексте. Подождите немного, пока он выполняет эти действия для установки статического IP-адреса и так далее. Если вы подключились по SSH и просто изменили свой IP-адрес … скорее всего, именно здесь вы застряли, потому что ваше соединение оборвется! Если это произойдет с вами, запустите процесс снова, но подключитесь к статическому IP-адресу, который вы установили на этот раз.

Как только настройки сети PiVPN будут выполнены, вы вернетесь к более привлекательному экрану.

Начальный экран выбора пользователя

Этот экран выше просто уведомляет нас, что мы скоро выберем локального пользователя нашего VPN. Нажмите Enter, чтобы начать и перейти к следующему экрану.

Выбор пользователя Pi

На этом экране, если ваш Pi настроен на значения по умолчанию, у вас, вероятно, будет только один вариант — пользователь pi. Если это так, нажмите Enter ! Если у вас есть пользовательский пользователь, настроенный на это, и вы хотите настроить его через него, выберите этого пользователя с помощью клавиш со стрелками и нажмите пробел . Затем, как только этот пользователь выбран, нажмите Enter .

Необслуживаемое обновление объяснений

На следующем экране вы узнаете о том, на что невероятно важно обратить внимание ! Настройка вашего Pi в качестве VPN означает, что у него будет порт, открытый для более широкого Интернета. Это связано с серьезной ответственностью: если возникают проблемы с безопасностью, ваш Pi потенциально открыт для любого. Доступ к вашему Pi как к VPN означает нечто невероятно опасное в зависимости от того, как настроена ваша сеть. Скорее всего, это означает доступ ко всей вашей домашней сети . По этой причине PiVPN рекомендует включать автоматические обновления, которые автоматически обновят пакеты безопасности по крайней мере. Важно отметить, что вы по-прежнему обязаны следить за уязвимостями в прессе и следить за странными действиями в вашей сети. Вы можете настроить большинство маршрутизаторов для отображения журналов подключений и т. Д .; следить за этими вещами и многое другое.

Вы хотите, чтобы вопрос об автоматических обновлениях

Таким образом, для вопроса об автоматических обновлениях вы, вероятно, захотите сказать «да» — если только вы не знаете, что делаете с точки зрения поддержания обновлений вашего Pi. Как только вы примете это решение, необычный экран пользовательского интерфейса исчезнет.

Поиск обновлений

Здесь он проверяет наличие потенциальных обновлений через apt-get После этого процесса он уведомит вас, если есть обновления, которые вы должны сделать после установки. В моем случае было найдено 143 обновления на моем довольно старом и обновленном Пи! После всего этого процесса запуска VPN запустите sudo apt-get upgrade

Затем он также проверяет, установлен ли OpenVPN на вашем Pi. Если нет, то начинается этот процесс! Это должно вызвать следующий экран:

Настройка VPN-порта по умолчанию

Этот экран является частью процесса установки OpenVPN. Вы можете выбрать, через какой порт будет работать VPN на Pi. Я оставил все как есть — в порту 1194 — и нажал Enter .

Подтверждение VPN-порта

Убедитесь, что введенный порт выглядит правильно, затем нажмите Enter еще раз.

pivpn19

На приведенном выше экране мы выбираем желаемый уровень шифрования. Чем больше шифрование, тем больше времени потребуется для запуска и настройки, но тем более безопасным оно будет. Я придерживался 2048-бит, как рекомендовано, и нажал Enter . Я бы не рекомендовал переходить на 1024-битный режим, но если вам нужно супер тщательное шифрование, вы можете перейти на 4096-битный.

Уведомление о значениях по умолчанию

Теперь этот экран выше просто говорит нам, что на следующем будет отображаться значение по умолчанию для информации сертификата безопасности. Это позволяет вам знать, что вам не нужно менять их, поскольку вы и клиенты, которые подключаются, являются единственными, кто их увидит. Это говорит правду. Вам не нужно беспокоиться об их изменении. Нажмите Enter, чтобы перейти к следующему экрану.

pivpn21

Мало того, что вам не нужно беспокоиться об их изменении, я также не смог найти способ изменить значения на этом экране. Просмотрите их и нажмите Enter .

Являются ли эти значения правильными

Он спросит, верны ли эти значения, просто нажмите Enter еще раз.

Оповещение о генерации ключей

Затем он сообщает, что собирается сгенерировать ваши ключи шифрования. Нажмите Enter .

Генерация ключей шифрования

Затем он покинет удобный интерфейс и вернет вас в терминал, где он начнет генерировать ключи. Генерация займет некоторое время — больше, если вы выбрали 4096-битное шифрование!

Все еще генерирует

Действительно долгое время …

И даже сейчас все еще работающий

Определенно возьмите чай или кофе, пока он работает.

Публичный IP или DNS

После этого вам будет задан вопрос, есть ли у вас общедоступная запись DNS, которую вы хотите использовать, или хотите ли вы использовать IP-адрес. Эта часть полностью зависит от вас. Ваш IP-адрес — это общедоступный IP-адрес вашего интернет-провайдера. Это тот, который появляется, если вы идете на такие услуги, как www.whatismyip.com . Некоторые интернет-провайдеры дают статический, который не будет меняться, другие будут периодически его менять.

С моим собственным провайдером, нет гарантии, что он останется прежним, поэтому я зарегистрировался в No-IP — сервисе, который позволяет вам связать бесплатный веб-адрес, который они предоставляют (например, yourdomain.ddns.net Если ваш IP-адрес изменится, вы можете изменить значение с помощью No-IP.

Если вы хотите использовать IP-адрес, предоставленный вашим провайдером, оставьте его как есть и нажмите Enter . В противном случае перейдите к «DNS Entry» с помощью клавиатуры, нажмите пробел, а затем нажмите Enter, чтобы перейти к следующему экрану.

Публичное имя DNS

Если вы выбрали «DNS Entry», вам будет предложено на экране выше. Добавьте свой URL, как я сделал выше. Если вы выбрали «IP-адрес», он попросит об этом.

Выбор провайдера DNS

Затем вам будет предложено выбрать DNS-провайдера, которого вы хотите использовать для VPN. Это может быть важно, если причина, по которой вы ищете VPN, — конфиденциальность: какой бы провайдер DNS вы ни выбрали, он будет видеть запросы, сделанные VPN. Если вы ищете полностью приватную VPN, вам понадобится более приватное решение DNS. В моем случае я не использую его для этой цели и оставил его как «Google», нажимая Enter, чтобы продолжить.

Экран успеха

С этим вы успешно запустили установку! Нажмите Enter, чтобы пройти через поздравительный экран, но учтите, что нам нужно запустить pivpn add

Опция перезагрузки

Выберите Да, чтобы перезагрузить Пи! Возможно, вам придется выбрать его с помощью клавиатуры, как и ранее.

Конечные клеммы и кусочки

Он должен сделать свои последние куски и куски, а затем перезапустить ваш Pi.

Не забудьте обновить!

Помните — теперь, когда вы завершили весь процесс установки VPN, выполните следующую команду, чтобы убедиться, что ваш Pi в безопасности в ближайшем будущем:

 sudo apt-get upgrade

Как только все это будет обновлено, мы можем чувствовать себя достаточно безопасно, чтобы настроить клиент для доступа VPN!

Настройка вашего первого VPN-клиента

С этого момента у вас есть экземпляр OpenVPN, запущенный на вашем Pi через PiVPN. Однако для доступа к VPN с других компьютеров и устройств в сети потребуется клиент, через который эти устройства могут подключаться. Чтобы добавить этого клиента, мы вводим следующую команду:

 pivpn add

Он спросит у вас имя для клиента. Называйте это так, как пожелает ваше сердце. Также будет запрошена фраза-пароль: это пароль для доступа к VPN через этот клиент. Не забудьте об этом — иначе вы не сможете подключиться к вашему VPN-серверу с помощью этого клиента!

Как только вы это сделаете, он сгенерирует файл .ovpn Это необходимо для входа на каждое клиентское устройство.

Клиенты OpenVPN

Существует целый ряд клиентов OpenVPN, которые можно загрузить для использования на различных платформах. Вы можете найти их на openvpn.net . Это не единственные доступные; Я лично использовал Tunnelblick на своем Mac.

Перенаправление порта

Одной из областей, которая будет отличаться для всех, является переадресация портов на вашем маршрутизаторе. Вам необходимо настроить переадресацию на маршрутизаторе для порта, который вы настроили для VPN (по умолчанию это было 1194) . Мы хотим, чтобы любые запросы к этому порту переходили на IP-адрес вашего Pi. Эта настройка отличается для каждого маршрутизатора; однако, вы можете узнать больше о процессе переадресации портов здесь . Посмотрите «Переадресация портов» и имя вашего маршрутизатора, чтобы узнать, как это сделать для вашего собственного маршрутизатора. Будьте внимательны при обновлении настроек роутера!

FTP ваш ключ

Самый простой способ скопировать файлы с вашего Pi — использовать SFTP. Вы можете сделать это с помощью FTP-программ, таких как Filezilla. Здесь есть официальные документы о том, как использовать FTP с Raspberry Pi . После подключения к вашему Pi скопируйте ключ из /home/pi/ovpns

ftpingkey

Подключение к FTP вашего Pi

После того, как все настроено, откройте приложение OpenVPN на своем устройстве и загрузите файл .ovpn После загрузки он попросит ввести пароль, который вы установили: введите его, и он должен пройти и соединить вас!

Вывод

Теперь, когда вы успешно подключились к домашней сети через VPN, вы сможете легко получить доступ к устройствам в этой сети. Например, если у вас есть локальный веб-сервер в этой сети, вы должны иметь возможность посещать веб-страницы, работающие на этом сервере, используя его адрес локальной сети. Аналогичным образом, если вы попытаетесь подключиться к устройству IoT в сети с вашего устройства, подключенного к VPN, с помощью его IP-адреса, оно теперь должно работать!

Если у вас есть какие-либо советы по настройке VPN через Raspberry Pi, советы по лучшей защите Raspberry Pi в открытой сети или дополнительные идеи о том, что возможно после настройки VPN, я бы хотел их услышать! Дайте мне знать в комментариях ниже или свяжитесь со мной в Твиттере по адресу @thatpatrickguy .