Зачем использовать VPN для доступа к вашему дому
Существует множество причин, по которым вы хотите получить удаленный доступ к домашней сети, и лучший способ сделать это - использовать VPN-сервер. Некоторые маршрутизаторы на самом деле позволяют настроить VPN-сервер непосредственно внутри маршрутизатора, но во многих случаях вам придется настраивать его самостоятельно.
Raspberry Pi - отличный способ добиться этого. Им не требуется много энергии для работы, и у них достаточно мощности для запуска VPN-сервера. Вы можете установить его рядом с маршрутизатором и забыть о нем.
Когда у вас есть удаленный доступ к домашней сети, вы можете получить доступ к своим файлам из любого места. Вы можете управлять домашними компьютерами удаленно. Вы даже можете использовать домашнее VPN-соединение в дороге. Такая установка позволяет вашему телефону, планшету или ноутбуку работать так же, как дома, из любого места.
Настроить Пи
Прежде чем вы сможете начать настройку VPN, вам нужно будет настроить Raspberry Pi. Лучше всего установить Pi с корпусом и картой памяти приличного размера, 16 ГБ должно быть более чем достаточно. Если возможно, подключите Pi к маршрутизатору с помощью кабеля Ethernet. Это сведет к минимуму любые задержки в сети.
Установить Raspbian
Лучшая операционная система для использования на вашем Pi - это Raspbian. Это вариант по умолчанию, предложенный Raspberry Pi Foundation, и он основан на Debian, одной из самых безопасных и стабильных доступных версий Linux.
Перейти к Страница загрузки Rasbian , и скачайте последнюю версию. Здесь вы можете использовать Lite-версию, потому что вам не нужен графический рабочий стол.
Пока он загружается, получите последнюю версию Etcher для вашей операционной системы. После завершения загрузки извлеките образ Raspbian. Затем откройте Etcher. Выберите образ Raspbian, из которого вы его извлекли. Выберите свою SD-карту (сначала вставьте ее). Наконец, запишите изображение на карту.
Можете ли вы скрыть комментарии в инстаграмм в прямом эфире
Когда это будет сделано, оставьте SD-карту в компьютере. Откройте файловый менеджер и перейдите к карточке. Вы должны увидеть несколько разных разделов. Найдите загрузочный раздел. Это тот, в котором есть файл kernel.img. Создайте пустой текстовый файл в загрузочном разделе и назовите его ssh без расширения файла.
Наконец-то вы можете подключить свой Pi. Убедитесь, что вы подключаете его в последнюю очередь. Вам не понадобится ни экран, ни клавиатура, ни мышь. Вы собираетесь получить удаленный доступ к Raspberry Pi по своей сети.
Дайте Pi несколько минут, чтобы он настроился. Затем откройте веб-браузер и перейдите на экран управления маршрутизатором. Найдите Raspberry Pi и запишите его IP-адрес.
Независимо от того, работаете ли вы в Windows, Linux или Mac, откройте OpenSSH. Подключитесь к Raspberry Pi с помощью SSH.
$ ssh [email protected]
Очевидно, используйте реальный IP-адрес Pi. Имя пользователявсегда Пи, а парольмалина.
Настроить OpenVPN
OpenVPN не так-то просто настроить в качестве сервера. Хорошая новость в том, что вам нужно сделать это только один раз. Итак, прежде чем копаться, убедитесь, что Raspbian полностью обновлен.
$ sudo apt update $ sudo apt upgrade
После завершения обновления вы можете установить OpenVPN и необходимую вам утилиту сертификатов.
$ sudo apt install openvpn easy-rsa
Центр сертификации
Чтобы аутентифицировать ваши устройства, когда они пытаются подключиться к серверу, вам необходимо настроить центр сертификации для создания ключей подписи. Эти ключи гарантируют, что только ваши устройства смогут подключиться к вашей домашней сети.
Сначала создайте каталог для ваших сертификатов. Перейдите в этот каталог.
$ sudo make-cadir /etc/openvpn/certs $ cd /etc/openvpn/certs
Поищите файлы конфигурации OpenSSL. Затем свяжите последнюю версию сopenssl.cnf.
$ ls | grep -i openssl $ sudo ln -s openssl-1.0.0.cnf openssl.cnf
В той же папке сертификатов находится файл с именем vars. Откройте этот файл в текстовом редакторе. По умолчанию используется Nano, но не стесняйтесь устанавливать Vim, если он вам удобнее.
НайтиKEY_SIZEсначала переменная. Он настроен на2048по умолчанию. Измените это на4096.
export KEY_SIZE=4096
Основной блок, с которым вам нужно иметь дело, устанавливает информацию о вашем центре сертификации. Это помогает, если эта информация точна, но все, что вы можете вспомнить, в порядке.
export KEY_COUNTRY='US' export KEY_PROVINCE='CA' export KEY_CITY='SanFrancisco' export KEY_ORG='Fort-Funston' export KEY_EMAIL=' [email protected] ' export KEY_OU='MyOrganizationalUnit' export KEY_NAME='HomeVPN'
Когда у вас все будет, сохранитесь и выйдите.
Этот пакет Easy-RSA, который вы установили ранее, содержит множество скриптов, которые помогают настроить все, что вам нужно. Вам просто нужно запустить их. Начните с добавления файла vars в качестве источника. Это загрузит все переменные, которые вы только что установили.
$ sudo source ./vars
Затем очистите ключи. У вас их нет, поэтому не беспокойтесь о сообщении о том, что ваши ключи будут удалены.
$ sudo ./clean-install
Наконец, создайте свой центр сертификации. Вы уже установили значения по умолчанию, поэтому можете просто принять их. Не забудьте установить надежный пароль и ответить утвердительно на два последних вопроса, следуя паролю.
$ sudo ./build-ca
Сделайте несколько ключей
Вы прошли через все эти трудности, чтобы настроить центр сертификации, чтобы вы могли подписывать ключи. А теперь пора приготовить. Начните с создания ключа для вашего сервера.
$ sudo ./build-key-server 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. Первое, что вам нужно найти, эточто,сертификат, а такжеключфайлы. Вам нужно настроить их так, чтобы они соответствовали фактическому расположению файлов, которые вы создали, которые все находятся в/ и т. д. / openvpn / сертификаты / ключи.
ca /etc/openvpn/certs/keys/ca.crt cert /etc/openvpn/certs/keys/server.crt key /etc/openvpn/certs/keys/server.key # This file should be kept secret
Найтит.е.настройку и измените ее, чтобы она соответствовала параметру Диффи-Хеллмана..pemчто вы создали.
dh dh4096.pem
Задайте также путь для вашего ключа HMAC.
tls-auth /etc/openvpn/certs/keys/ta.key 0
Найтишифри убедитесь, что он соответствует приведенному ниже примеру.
cipher 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.
user openvpn group nogroup
Наконец, последние две строки не входят в конфигурацию по умолчанию. Вам нужно будет добавить их в конец файла.
Задайте дайджест аутентификации, чтобы указать более надежное шифрование для аутентификации пользователя.
# Authentication Digest auth SHA512
Затем ограничьте шифрование, которое OpenVPN может использовать, только более сильными. Это помогает ограничить возможные атаки на слабые шифры.
# Limit Ciphers 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-SHA
Это все, что нужно для настройки. Сохраните файл и выйдите.
Запустить сервер
Прежде чем вы сможете запустить сервер, вам нужно сделать этоopenvpnуказанный вами пользователь.
$ sudo adduser --system --shell /usr/sbin/nologin --no-create-home openvpn
Это специальный пользователь только для запуска OpenVPN, и больше он не будет делать ничего.
Теперь запустите сервер.
$ sudo systemctl start openvpn $ sudo systemctl start [email protected]
Убедитесь, что они оба работают
$ sudo systemctl status openvpn*.service
Если все в порядке, включите их при запуске.
$ sudo systemctl enable openvpn $ sudo systemctl enable [email protected]
Настройка клиента
Теперь ваш сервер настроен и работает. Далее вам нужно настроить конфигурацию вашего клиента. Это конфигурация, которую вы будете использовать для подключения ваших устройств к серверу. Вернуться копределенныйпапку и подготовьтесь к созданию клиентских ключей. Вы можете создать отдельные ключи для каждого клиента или один ключ для всех клиентов. Для домашнего использования подойдет один ключ.
$ cd /etc/openvpn/certs $ sudo source ./vars $ sudo ./build-key client
Процесс почти идентичен серверному, поэтому следуйте той же процедуре.
Конфигурация клиента
Конфигурация для клиентов очень похожа на конфигурацию для сервера. Опять же, у вас есть готовый шаблон, на котором будет основана ваша конфигурация. Вам нужно только изменить его, чтобы он соответствовал серверу.
Перейти вклиенткаталог. Затем распакуйте образец конфигурации.
$ 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-адрес к нему. Оставьте номер порта.
remote 107.150.28.83 1194 #That IP ironically is a VPN
Измените сертификаты, чтобы они отражали те, которые вы создали, как и на сервере.
ca ca.crt cert client.crt key client.key
Найдите параметры пользователя и раскомментируйте их. Можно запускать клиентов какникто.
user nobody group nogroup
Раскомментируйтеtls-authвариант для HMAC.
tls-auth ta.key 1
Затем найдитешифрвариант и убедитесь, что он соответствует серверу.
cipher AES-256-CBC
Затем просто добавьте дайджест аутентификации и ограничения шифрования внизу файла.
# Authentication Digest auth SHA512 # Cipher Restrictions 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-SHA
Когда все будет в порядке, сохраните файл и выйдите. Использоватьдеготьчтобы упаковать конфигурацию и сертификаты, чтобы вы могли отправить их клиенту.
$ 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 install openvpn
Затем измените на/ и т. д. / openvpn, и распакуйте архив, который вы отправили.
$ cd /etc/openvpn $ sudo tar xJf /path/to/client.tar.xz
Переименуйте файл клиента.
$ sudo mv client.ovpn client.conf
Пока не запускайте клиент. Это не удастся. Сначала вам нужно включить переадресацию портов на вашем маршрутизаторе.
Заключительные мысли
Теперь у вас должна быть рабочая установка. Ваш клиент будет подключаться напрямую через ваш маршрутизатор к Pi. Оттуда вы можете делиться виртуальной сетью и подключаться к ней, если все устройства подключены к VPN. Нет ограничений, поэтому вы всегда можете подключить все свои компьютеры к Pi VPN.