Как превратить Raspberry Pi в VPN
Отказ от ответственности: некоторые страницы этого сайта могут содержать партнерскую ссылку. На нашу редакцию это никак не влияет.
Хотите знать, как превратить Raspberry Pi в VPN? Существует множество причин, по которым вам может потребоваться удаленный доступ к домашней сети, и лучший способ сделать это — использовать VPN-сервер. Некоторые маршрутизаторы на самом деле позволяют настроить VPN-сервер непосредственно внутри маршрутизатора, но во многих случаях вам придется настроить его самостоятельно.
Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)
Raspberry Pi — отличный способ добиться этого. Для их работы не требуется много энергии, и у них достаточно мощности для работы VPN-сервера. Вы можете установить его рядом с маршрутизатором и вообще забыть о нем.
Имея удаленный доступ к домашней сети, вы можете получить доступ к своим файлам откуда угодно. Вы можете управлять своими домашними компьютерами удаленно. Вы даже можете использовать домашнее VPN-соединение, находясь в дороге. Подобная настройка позволяет вашему телефону, планшету или ноутбуку работать так же, как если бы вы были дома, где бы вы ни находились.
Как превратить Raspberry Pi в VPN
Настройте Пи
Прежде чем вы сможете приступить к настройке VPN, вам необходимо настроить Raspberry Pi. Лучше всего комплектовать Pi чехлом и картой памяти приличного размера, 16 ГБ должно быть более чем достаточно. Если возможно, подключите Pi к маршрутизатору с помощью кабеля Ethernet. Это сведет к минимуму любые задержки в сети.
Установить Распбиан
Лучшая операционная система для вашего Pi — Raspbian. Это выбор по умолчанию, предложенный фондом Raspberry Pi, и он основан на Debian, одной из самых безопасных и стабильных доступных версий Linux.
Ограниченное предложение: 3 месяца БЕСПЛАТНО!
Перейти к Страница загрузки Rasbianи скачайте последнюю версию. Здесь вы можете использовать «Lite» версию, поскольку графический рабочий стол вам фактически не нужен.
Пока идет загрузка, получите последнюю версию гравер для вашей операционной системы. После завершения загрузки извлеките образ Raspbian. Затем откройте Etcher. Выберите изображение Raspbian, из которого вы его извлекли. Выберите SD-карту (сначала вставьте ее). Наконец, запишите изображение на карту.
Когда все будет готово, оставьте SD-карту в компьютере. Откройте файловый менеджер и перейдите к карте. Вы должны увидеть пару разных разделов. Найдите «загрузочный» раздел. Это тот, в котором есть файл «kernel.img». Создайте пустой текстовый файл в «загрузочном» разделе и назовите его «ssh» без расширения файла.
Наконец-то вы можете подключить свой Pi. Убедитесь, что вы подключаете его последним. Вам не понадобится экран, клавиатура или мышь. Вы собираетесь получить удаленный доступ к Raspberry Pi через свою сеть.
Дайте Pi несколько минут, чтобы настроиться. Затем откройте веб-браузер и перейдите к экрану управления маршрутизатором. Найдите Raspberry Pi и запишите его IP-адрес.
Независимо от того, используете ли вы Windows, Linux или Mac, откройте OpenSSH. Подключитесь к Raspberry Pi по SSH.
$ ssh пи@192.168.1.110
Очевидно, используйте фактический IP-адрес Pi. Имя пользователя всегда pi, а пароль — raspberry.
Настройте OpenVPN
OpenVPN не так-то просто настроить в качестве сервера. Хорошая новость в том, что вам нужно сделать это только один раз. Итак, прежде чем копаться, убедитесь, что Raspbian полностью обновлен.
$ sudo apt обновление $ sudo apt обновление
После завершения обновления вы можете установить OpenVPN и необходимую вам утилиту сертификатов.
$ sudo apt установить openvpn easy-rsa
Центр сертификации
Чтобы аутентифицировать ваши устройства при попытке подключения к серверу, вам необходимо настроить центр сертификации для создания ключей подписи. Эти ключи гарантируют, что только ваши устройства смогут подключиться к вашей домашней сети.
Сначала создайте каталог для ваших сертификатов. Перейдите в этот каталог.
$ sudo make-cadir /etc/openvpn/certs $ cd /etc/openvpn/certs
Найдите файлы конфигурации OpenSSL. Затем свяжите последнюю версию с openssl.cnf.
$ лс | grep -i openssl $ sudo ln -s openssl-1.0.0.cnf openssl.cnf
В той же папке «certs» находится файл «vars». Откройте этот файл в текстовом редакторе. Nano используется по умолчанию, но вы можете установить Vim, если вам с ним удобнее.
Сначала найдите переменную KEY_SIZE. По умолчанию установлено значение 2048. Измените его на 4096.
экспортировать KEY_SIZE=4096
Основной блок, с которым вам предстоит разобраться, устанавливает информацию о вашем центре сертификации. Полезно, если эта информация точна, но все, что вы можете вспомнить, тоже подойдет.
экспорт KEY_COUNTRY=”US” экспорт KEY_PROVINCE=”CA” экспорт KEY_CITY=”Сан-Франциско” экспорт KEY_ORG=”Fort-Funston” экспорт KEY_EMAIL=”me@myhost.mydomain” экспорт KEY_OU=”MyOrganizationalUnit” экспорт KEY_NAME=”HomeVPN”
Когда у вас все будет, сохранитесь и выйдите.
Тот пакет Easy-RSA, который вы установили ранее, содержит множество скриптов, которые помогают настроить все, что вам нужно. Вам просто нужно их запустить. Начните с добавления файла «vars» в качестве источника. Это загрузит все переменные, которые вы только что установили.
$ источник sudo ./vars
Далее очистите ключи. У вас их нет, поэтому не беспокойтесь о сообщении о том, что ваши ключи будут удалены.
$ sudo ./чистая установка
Наконец, создайте свой центр сертификации. Вы уже установили значения по умолчанию, поэтому можете просто принять те значения по умолчанию, которые он представляет. Не забудьте установить надежный пароль и ответить «да» на два последних вопроса, следующих за паролем.
$ sudo ./build-ca
Сделайте несколько ключей
Вы прошли через все эти трудности, чтобы настроить центр сертификации, чтобы подписывать ключи. Теперь пришло время сделать что-нибудь. Начните с создания ключа для вашего сервера.
$ sudo ./build-key-server сервер
Затем создайте PEM Диффи-Хеллмана. Это то, что OpenVPN использует для защиты ваших клиентских подключений к серверу.
$ sudo openssl dhparam 4096 > /etc/openvpn/dh4096.pem
Последний ключ, который вам понадобится сейчас, называется ключом HMAC. OpenVPN использует этот ключ для подписи каждого отдельного пакета информации, которым обмениваются клиент и сервер. Это помогает предотвратить определенные виды атак на соединение.
$ sudo openvpn –genkey –secret /etc/openvpn/certs/keys/ta.key
Конфигурация сервера
У вас есть ключи. Следующий этап настройки OpenVPN — это сама конфигурация сервера. К счастью, здесь не так уж много всего, что вам нужно сделать. Debian предоставляет базовую конфигурацию, которую вы можете использовать для начала работы. Итак, начните с получения этого файла конфигурации.
$ sudo Gunzip -c /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz > /etc/openvpn/server.conf
Снова воспользуйтесь текстовым редактором, чтобы открыть /etc/openvpn/server.conf. Первое, что вам нужно найти, — это файлы ca, cert и key. Вам необходимо настроить их так, чтобы они соответствовали фактическому местоположению созданных вами файлов, которые все находятся в /etc/openvpn/certs/keys.
ca /etc/openvpn/certs/keys/ca.crt cert /etc/openvpn/certs/keys/server.crt key /etc/openvpn/certs/keys/server.key # Этот файл следует держать в секрете
Найдите параметр dh и измените его, чтобы он соответствовал созданному вами файлу Diffie-Hellman .pem.
dh dh4096.pem
Также укажите путь для вашего ключа HMAC.
tls-auth /etc/openvpn/certs/keys/ta.key 0
Найдите шифр и убедитесь, что он соответствует примеру ниже.
шифр AES-256-CBC
Следующие несколько опций есть, но они закомментированы знаком ;. Удалите точки с запятой перед каждой опцией, чтобы включить их.
push “redirect-gateway def1 bypass-dhcp” push “dhcp-option DNS 208.67.222.222” push “dhcp-option DNS 208.67.220.220”
Найдите параметры пользователя и группы. Раскомментируйте их и измените пользователя на «openvpn».
пользователь группы openvpn nogroup
Наконец, этих последних двух строк нет в конфигурации по умолчанию. Вам нужно будет добавить их в конец файла.
Установите дайджест аутентификации, чтобы указать более надежное шифрование для аутентификации пользователя.
# Дайджест аутентификации auth SHA512
Затем ограничьте шифры, которые может использовать OpenVPN, только более сильными. Это помогает ограничить возможные атаки на слабые шифры.
# Предельные шифры tls-cipher TLS-DHE-RSA-WITH-AES-256-GCM-SHA384:TLS-DHE-RSA-WITH-AES-128-GCM-SHA256:TLS-DHE-RSA-WITH-AES-256- CBC-SHA:TLS-DHE-RSA-WITH-CAMELLIA-256-CBC-SHA:TLS-DHE-RSA-WITH-AES-128-CBC-SHA:TLS-DHE-RSA-WITH-CAMELLIA-128-CBC- ША
Это все, что касается настройки. Сохраните файл и выйдите.
Запустить сервер
Прежде чем вы сможете запустить сервер, вам необходимо создать указанного вами пользователя openvpn.
$ sudo adduser –system –shell /usr/sbin/nologin –no-create-home openvpn
Это специальный пользователь, предназначенный только для запуска OpenVPN, и больше он ничего не делает.
Теперь запустите сервер.
$ sudo systemctl start openvpn $ sudo systemctl start openvpn@server
Убедитесь, что они оба работают
$ sudo systemctl статус openvpn*.service
Если все выглядит хорошо, включите их при запуске.
$ sudo systemctl включить openvpn $ sudo systemctl включить openvpn@server
Настройка клиента
Теперь ваш сервер настроен и работает. Далее вам необходимо настроить конфигурацию клиента. Это конфигурация, которую вы будете использовать для подключения ваших устройств к серверу. Вернитесь в папку сертификатов и подготовьтесь к созданию ключей клиента. Вы можете создать отдельные ключи для каждого клиента или один ключ для всех клиентов. Для домашнего использования достаточно одного ключа.
$ cd /etc/openvpn/certs $ sudo source ./vars $ sudo ./build-key client
Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)
Процесс практически идентичен серверному, поэтому следуйте той же процедуре.
Конфигурация клиента
Конфигурация клиентов очень похожа на конфигурацию сервера. Опять же, у вас есть готовый шаблон, на котором будет основана ваша конфигурация. Вам нужно только изменить его, чтобы он соответствовал серверу.
Перейдите в каталог клиента. Затем распакуйте пример конфигурации.
$ cd /etc/openvpn/client $ sudo cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn/client/client.ovpn
Откройте файл client.ovpn в текстовом редакторе. Затем найдите удаленный вариант. Предполагая, что вы еще не используете VPN, выполните поиск в Google «Какой у меня IP». Возьмите адрес, который он отображает, и установите для него удаленный IP-адрес. Оставьте номер порта.
удаленный 107.150.28.83 1194 #Этот IP по иронии судьбы является VPN
Измените сертификаты, чтобы они отражали те, которые вы создали, точно так же, как вы это сделали с сервером.
ca ca.crt сертификат client.crt ключ client.key
Найдите параметры пользователя и раскомментируйте их. Это нормально — управлять клиентами как никто.
пользователь никто группа nogroup
Раскомментируйте параметр tls-auth для HMAC.
tls-auth ta.key 1
Далее найдите вариант шифрования и убедитесь, что он соответствует серверу.
шифр AES-256-CBC
Затем просто добавьте дайджест аутентификации и ограничения шифрования в нижней части файла.
# Дайджест аутентификации auth SHA512 # Ограничения шифрования tls-cipher TLS-DHE-RSA-WITH-AES-256-GCM-SHA384:TLS-DHE-RSA-WITH-AES-128-GCM-SHA256:TLS-DHE-RSA-WITH -AES-256-CBC-SHA:TLS-DHE-RSA-С-КАМЕЛИЯ-256-CBC-SHA:TLS-DHE-RSA-WITH-AES-128-CBC-SHA:TLS-DHE-RSA-С-КАМЕЛИЯ -128-CBC-SHA
Когда все будет выглядеть правильно, сохраните файл и выйдите. Используйте tar, чтобы упаковать конфигурацию и сертификаты, чтобы вы могли отправить их клиенту.
$ sudo tar cJf /etc/openvpn/clients/client.tar.xz -C /etc/openvpn/certs/keys ca.crt client.crt client.key ta.key -C /etc/openvpn/clients/client.ovpn
Передайте этот пакет клиенту по своему усмотрению. SFTP, FTP и USB-накопитель — отличные варианты.
Переадресация портов
Чтобы все это работало, вам необходимо настроить маршрутизатор на пересылку входящего VPN-трафика на Pi. Если вы уже используете VPN, вам необходимо убедиться, что вы не подключаетесь к тому же порту. Если да, измените порт в конфигурациях клиента и сервера.
Подключитесь к веб-интерфейсу вашего маршрутизатора, введя его IP-адрес в браузере.
Каждый маршрутизатор индивидуален. Тем не менее, все они должны иметь ту или иную форму этой функциональности. Найдите его на своем роутере.
Настройка в основном одинакова на каждом маршрутизаторе. Введите начальный и конечный порты. Они должны совпадать друг с другом и с тем, который вы установили в своих конфигурациях. Затем в качестве IP-адреса установите IP-адрес вашего Raspberry Pi. Сохраните изменения.
Подключиться к клиенту
Каждый клиент индивидуален, поэтому универсального решения не существует. Если вы используете Windows, вам понадобится Windows OpenVPN-клиент.
На Android вы можете открыть архив и перенести ключи на свой телефон. Затем установите приложение OpenVPN. Откройте приложение и подключите информацию из файла конфигурации. Затем выберите ключи.
В Linux вам необходимо установить OpenVPN так же, как и для сервера.
$ sudo apt установить openvpn
Затем перейдите в /etc/openvpn и распакуйте отправленный вами архив.
$ cd /etc/openvpn $ sudo tar xJf /path/to/client.tar.xz
Переименуйте файл клиента.
$ sudo mv client.ovpn client.conf
Клиент пока не запускайте. Это потерпит неудачу. Сначала вам необходимо включить переадресацию портов на вашем маршрутизаторе.
Заключительные мысли о том, как превратить Raspberry Pi в VPN
Зная, как превратить Raspberry Pi в VPN, у вас должна быть рабочая настройка. Ваш клиент подключится к Pi напрямую через маршрутизатор. Оттуда вы можете предоставлять общий доступ к виртуальной сети и подключаться к ней, если все устройства подключены к VPN. Ограничений нет, поэтому вы всегда можете подключить все свои компьютеры к Pi VPN.