Оглавление:
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-13 06:58
Поскольку все больше и больше нашей жизни направляется в огромное облако в небе, которым является Интернет, становится все труднее оставаться в безопасности и приватности в своих личных приключениях в Интернете. Независимо от того, получаете ли вы доступ к конфиденциальной информации, которую хотите сохранить в тайне, пытаетесь ли вы обойти ограничения, налагаемые на то, где и что вы можете просматривать в своей сети, или просто хотите более безопасного просмотра, самый распространенный совет, который я слышу, чтобы оставаться в безопасности в Интернете - использовать виртуальную частную сеть (или сокращенно VPN).
VPN предлагают две отличные услуги в одном пакете, поскольку они шифруют все пакеты информации, которые отправляются через них, и создают удаленные службы, которые находятся в той же сети, что и VPN, локальная для машины, которую вы используете для подключения. Если мой VPN-сервер находится в Германии, и я подключаюсь к своей VPN с ноутбука в Австралии, теперь у моего ноутбука будет IP-адрес из Германии!
Однако основным камнем преткновения для более популярных VPN-сервисов является то, что многие типы устройств находятся в ситуациях, когда они либо не могут быть настроены для использования VPN-клиента, либо не имеют доступного для использования VPN-клиента. Итак, мы хотим, чтобы наши устройства были подключены к нашей VPN, но для этих других машин, которые не могут подключиться с помощью простого VPN-клиента, мы хотим, чтобы они были подключены к нашей VPN, даже не зная, что они подключены! Введите точку доступа VPN!
Шаг 1: материалы
Материалов для этого проекта мало, но все предметы обязательны.
Помимо домашнего маршрутизатора (который, я полагаю, у вас должен быть), вам понадобится
- 1 Raspberry Pi (желательно Raspberry Pi 3 или лучше, но до тех пор, пока он может поддерживать соединение Ethernet, все будет в порядке!)
- 1 шнур Ethernet
- 1 ключ Wi-Fi (если вы не используете Raspberry Pi 3, и в этом случае вы можете использовать встроенный Wi-Fi
- 1 блок питания 5V 2amp для Raspberry Pi
Шаг 2: Настройка точки доступа Wi-Fi - Часть 1 - Статический IP-адрес для Wi-Fi
Перед настройкой VPN-соединения для нашей точки доступа Raspberry Pi мы должны настроить Pi в качестве точки доступа. Для этого мы будем использовать пакеты hostapd и dnsmasq для Raspberry Pi. Hostapd - это демон пользовательского пространства для настройки точек беспроводного доступа и серверов аутентификации, а dnsmasq обеспечивает сетевую инфраструктуру (DNS, DHCP, сетевая загрузка и т. Д.) Для небольших сетей и небольших сетевых маршрутизаторов.
Поэтому, прежде чем начать, убедитесь, что у вас есть чистый образ Raspbian OS, работающий на Pi, с примененными последними обновлениями. Вы также должны убедиться, что ваш Raspberry Pi подключен к вашему маршрутизатору через жесткое соединение Ethernet, а не через Wi-Fi! В конце концов мы будем принимать запросы на подключение от других устройств через наш модуль Wi-Fi, поэтому вы не хотите подключаться к своему маршрутизатору через тот же модуль. Если вы используете Raspberry Pi Zero или более старое дополнение (которое не имеет встроенного Wi-Fi), вы все равно можете использовать этот Raspberry Pi, вам просто нужен USB-ключ Wi-Fi.
После подключения к Raspberry Pi (через SSH или с включенным монитором) убедитесь, что он обновлен.
sudo apt-get update
sudo apt-get upgrade
Затем вам нужно загрузить и установить hostapd и dnsmasq.
sudo apt-get install hostapd dnsmasq
После установки пакетов обе программы запустятся автоматически, но мы хотим внести изменения в их конфигурации перед их запуском. Поэтому мы обратимся к системе контроля, чтобы остановить службы, связанные с этими программами.
sudo systemctl остановить hostapd
sudo systemctl остановить dnsmasq
Теперь, когда службы остановлены, мы захотим назначить себе статический IP-адрес, используя файл конфигурации dhcpcd, находящийся в /etc/dhcpcd.conf.
Однако прежде чем мы это сделаем, мы хотим убедиться, что ссылаемся на правильный интерфейс при назначении статического IP-адреса. Если вы используете Raspberry Pi 3b или Raspberry Pi Zero W, он должен быть указан как wlan0. Если вы используете ключ Wi-Fi, я обычно считаю, что немного проще подключить ключ Wi-Fi к маршрутизатору, получить новый IP-адрес, а затем проверить соединение, чтобы найти свой интерфейс. Вы можете проверить свой интерфейс, выполнив следующую команду
ifconfig
Если вы проверите верхнее изображение, прикрепленное к этому шагу, вы увидите (без отредактированных IP-адресов) интерфейсы, назначенные моему Raspberry Pi. В моем случае я использую wlan0, но это зависит от ваших настроек. Как я упоминал ранее, если вы используете ключ Wi-Fi, подключаетесь к своей сети, запускаете команду ifconfig, и любой интерфейс с действительным IP-адресом, который не является "eth0" или "lo", будет тем интерфейсом, который вам нужен. использовать.
Теперь, когда я знаю, какой интерфейс предназначен для моего адаптера Wi-Fi, я могу назначить ему статический IP-адрес в файле конфигурации dhcpcd! Загрузите конфигурацию в свой любимый редактор (я использую nano).
sudo nano /etc/dhcpcd.conf
В нижней части конфигурации мы хотим добавить следующие строки, но заменить "wlan0" любым вашим интерфейсом:
интерфейс wlan0 статический ip_address = 192.168.220.nohook wpa_supplicant
Эта команда устанавливает статический IP-адрес 192.168.220.1 и затем сообщает интерфейсу wlan0 не связываться с драйвером wpa_supplicant, который обычно используется для этого интерфейса для подключения к другим сетям. Мы делаем это для того, чтобы (в конечном итоге) мы могли транслировать наш собственный сигнал через интерфейс wlan0, а не подключаться к сети через этот интерфейс.
Если вы используете nano для внесения этих изменений, сохраните изменения, нажав ctrl + x, а затем Y, а затем введите, чтобы сохранить файл и выйти из nano. (имейте в виду, что в этом уроке мы будем немного входить и выходить из nano).
Наконец, чтобы эти изменения вступили в силу, вам придется либо перезапустить Pi, либо просто перезапустить службу dhcpcd, чтобы перезагрузить конфигурацию и применить эти изменения.
sudo systemctl перезапустить dhcpcd
Подождите немного, а затем снова запустите команду ifconfig, чтобы проверить, вступили ли ваши изменения в силу. Признаюсь, иногда я пробовал это, но у моего маршрутизатора все еще есть действующая аренда на IP-адрес, который я использовал, поэтому старый адрес будет сохранен. В этом случае дважды проверьте все в своей конфигурации и снова перезапустите службу dhcpcd.
У нашего адаптера Wi-Fi (должен) теперь быть статический IP-адрес!
Далее, конфигурация hostapd и dnsmasq!
Шаг 3: Настройка точки доступа Wi-Fi - Часть 2 - Конфигурация Hostapd
После внесения изменений в dhcpcd.conf самое время приступить к работе с hostapd! Начните с создания нового файла hostapd.conf в вашем любимом текстовом редакторе (для меня снова в nano!)
sudo nano /etc/hostapd/hostapd.conf
Когда вы откроете файл конфигурации, скопируйте следующий текст и вставьте его в файл config.
интерфейс = wlan0driver = nl80211
hw_mode = g channel = 6 ieee80211n = 1 wmm_enabled = 0 macaddr_acl = 0 ignore_broadcast_ssid = 0
auth_algs = 1 wpa = 2 wpa_key_mgmt = WPA-PSK wpa_pairwise = TKIP rsn_pairwise = CCMP
# Имя сети Wi-Fi и пароль ВЫ ДОЛЖНЫ ИЗМЕНИТЬ ЭТО ssid = Pi-WifiFoLife # Кодовую фразу сети wpa_passphrase = Y0uSh0uldCh @ ng3M3
После того, как вы вставили это, найдите последний раздел внизу, в котором есть «ssid =» и «wpa_passphrase =». Так будет называться настраиваемая сеть Wi-Fi и пароль для подключения к настраиваемой сети Wi-Fi. ОБЯЗАТЕЛЬНО ИЗМЕНИТЕ ЭТО НА ЧТО-ТО ДРУГОЕ! Вы были предупреждены.
Кроме того, если вы используете ключ Wi-Fi вместо встроенного Wi-Fi, вам придется изменить раздел интерфейса в верхней части конфигурации, чтобы он соответствовал интерфейсу для вашего ключа Wi-Fi. Возможно, вам также придется изменить драйвер, в зависимости от модели используемого Wi-Fi-ключа. Я нашел эту страницу очень полезной для (в основном исчерпывающего) списка совместимых ключей Wi-Fi, соответствующих драйверов и страниц поддержки! Также проверьте страницу поддержки продукта, который вы используете, если вы застряли. Помните, что если вы смогли подключиться к своей сети ранее в руководстве с помощью ключа Wi-Fi, это означает, что где-то на вашем пи должен быть рабочий драйвер для ключа !!!
Теперь, когда у нас есть новый файл конфигурации, мы должны убедиться, что мы сообщаем процессам hostapd ссылку на новый файл конфигурации! начнем со следующего:
судо нано / и т.д. / по умолчанию / hostapd
Найдите в только что открытом файле строку # DAEMON_CONF = "" и измените ее на DAEMON_CONF = "/ etc / hostapd / hostapd.conf" (убедитесь, что вы снимаете знак # в начале, чтобы раскомментировать поле!)
Есть еще один файл конфигурации для hostapd, который нам нужно обновить. Выполните следующую команду:
судо нано /etc/init.d/hostapd
Это изменение практически идентично предыдущему. Найдите раздел DAEMON_CONF = и замените его на DAEMON_CONF = / etc / hostapd / hostapd.conf
Затем сохраните и выйдите из этого файла!
Hostapd настроен!
Шаг 4: настройка DNSMasq и переадресация IP
Теперь, когда hostapd настроен (хотя еще не запущен), мы можем перейти к dnsmasq!
Прежде чем приступить к редактированию файлов конфигурации, мы можем переименовать один из исходных файлов конфигурации, поскольку мы не собираемся использовать ничего, что есть в этом конкретном файле конфигурации.
Выполнение быстрой команды mv с новым именем файла должно помочь
sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.old
Затем создайте новый файл конфигурации!
sudo nano /etc/dnsmasq.conf
Не вдаваясь в подробности, я бы просто скопировал следующее и вставил в новый файл
interface = wlan0 # Использовать интерфейс wlan0 (или любой другой интерфейс, который является вашим беспроводным) server = 1.1.1.1 # Cloudfare dhcp-range = 192.168.220.50, 192.168.220.150, 12h # Диапазон IP-адресов и время аренды
Верхняя строка этой конфигурации предназначена для интерфейса, который мы используем для трансляции нашего сигнала, средняя строка - для нашего поставщика службы доменных имен, а затем нижняя строка - это диапазон IP-адресов, которые Pi будет назначать пользователям, которые подключаются к Pi Wifi. Продолжайте и сохраните этот файл, а затем выйдите из nano (или vim, или того, что вы используете для изменения файла).
Затем мы должны настроить файл конфигурации systctl.conf для пересылки всего трафика, который поступает на беспроводной интерфейс, для маршрутизации через соединение Ethernet.
sudo nano /etc/sysctl.conf
Внутри этого файла конфигурации все, что вам нужно сделать, это раскомментировать строку # net.ipv4.ip_forward = 1 и сохранить / выйти из этого файла конфигурации.
Теперь, когда у нас настроена пересылка, мы хотим настроить NAT (преобразование сетевых адресов) между беспроводным интерфейсом (wlan0) и интерфейсом Ethernet (eth0). Это помогает перенаправить весь трафик с Wi-Fi на соединение Ethernet (и, в конечном итоге, VPN!).
Добавьте новое правило в iptable для переадресации NAT
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Теперь правило настроено, но iptable очищается каждый раз при перезагрузке Raspberry Pi, поэтому мы должны сохранить это правило, чтобы его можно было (повторно) загружать каждый раз при перезапуске Pi.
sudo sh -c "iptables-save> /etc/iptables.ipv4.nat"
Теперь правило сохранено, но мы должны обновить локальный конфигурационный файл Pi rc.local, чтобы убедиться, что он загружается каждый раз!
Откройте файл rc.local в своем любимом редакторе.
sudo nano /etc/rc.local
и найдите раздел, в котором говорится, что выход 0
Прямо над этой строкой (не удаляйте ее!) Добавьте следующую команду, которая перезагрузит настроенное нами правило NAT. Теперь это должно выглядеть так
iptables-restore </etc/iptables.ipv4.nat exit0
Сохраните и выйдите из этого файла, и теперь все наши настройки должны быть выполнены для точки доступа!
Все, что нам нужно сделать, это запустить службы hostapd и dnsmasq и перезагрузить Raspberry Pi!
sudo service hostapd start
запуск службы sudo dnsmasq
Проверьте, видите ли вы свою новую точку доступа. Если все настроено правильно, теперь у вас должна быть точка доступа Wi-Fi на Raspberry Pi! Теперь перезапустите пи
перезагрузка sudo
Далее настраиваем соединение OpenVPN!
Шаг 5: Настройка OpenVPN и настройка поставщика услуг VPN
Теперь, когда наш Pi транслирует Wi-Fi, пора настроить openvpn! Мы начнем с установки openvpn через apt-get install
sudo apt-get install openvpn -y
После завершения установки openvpn нам нужно перейти туда, где мы будем хранить наши учетные данные для аутентификации и файл конфигурации openvpn.
cd / etc / openvpn
Первое, что мы сделаем здесь (в / etc / openvpn), - это создадим текстовый файл, в котором мы будем хранить наше имя пользователя и пароль для службы VPN, которую мы используем.
sudo nano auth.txt
Все, что нам нужно, это сохранить имя пользователя и пароль в этом файле, больше ничего.
имя пользователя
пароль
Я должен добавить, что на этом этапе вы должны иметь представление о том, кого вы хотите использовать в качестве службы VPN для своих подключений. Есть широкие споры о том, какая услуга является лучшей или самой безопасной, так что покупайте и проверяйте отзывы о них! В этом руководстве я использую частный доступ в Интернет (PIA). Они довольно дешевые и признаны очень надежными! Вы также можете настроить свой VPN так, чтобы он заканчивался практически в любом крупном регионе мира! Канада? Россия? Япония? Не проблема!
Если вы используете частный доступ в Интернет, у них также есть удобная часть их сайта, где вы можете собрать тип файла конфигурации openvpn, который вы можете использовать в этой настройке! Есть и другие типы конфигураций openvpn, которые вы можете использовать с другими провайдерами, но я решил выбрать именно этот.
Какого бы поставщика услуг вы ни выбрали, для подключения вам понадобится файл подключения openvpn (должен оканчиваться на.ovpn для типа файла) от указанного поставщика услуг. Для простоты я переименовал свой «connectionprofile.ovpn», прежде чем загружать его на свой Raspberry Pi. После того, как вы либо загрузите файл.ovpn на Pi, либо перенесете его на Pi, убедитесь, что файл находится в / etc / openvpn на вашем Pi.
После перемещения открытого файла vpn в правильную папку мы должны изменить тип файла, поскольку openvpn ожидает файл конфигурации, который заканчивается на.conf вместо.ovpn. Когда я это сделал, я все еще хотел сохранить исходный файл нетронутым, на случай, если что-нибудь случится, поэтому я просто использовал команду cp (поскольку вы находитесь в / etc / openvpn, вам нужно будет использовать разрешения sudo для запуска эта команда)
sudo cp /etc/openvpn/connectionprofile.ovpn /etc/openvpn/connectionprofile.conf
Создав конфигурацию профиля openvpn, нам нужно быстро внести изменения, чтобы предоставить наши учетные данные, так что пора снова вырваться из nano!
sudo nano /etc/openvpn/connectionprofile.conf
Вам нужно найти строку auth-user-pass и заменить ее на auth-user-pass auth.txt.
Это говорит openvpn получить файл учетных данных, который мы использовали ранее, чтобы использовать при аутентификации предоставленного нами профиля.
Сохраните и выйдите из файла конфигурации профиля!
Это должно быть все для настройки VPN, но мы хотим проверить, что вся наша конфигурация была настроена правильно, прежде чем настраивать службу VPN для автоматического запуска. Выполните следующую команду, чтобы проверить VPN-соединение.
sudo openvpn --config "/etc/openvpn/connectionprofile.conf"
Вы должны увидеть кучу прокрутки текста, когда Pi пытается подключиться к поставщику услуг VPN (надеюсь, без сообщений об ошибках!), Но вы хотите оставить его, пока не увидите в окне «Последовательность инициализации завершена». Если вы в конечном итоге это увидите, это означает, что ваш Pi подключен к вашему поставщику услуг VPN! Вы можете продолжить и убить процесс, нажав ctrl + c в окне терминала.
Теперь, когда VPN работает, нам нужно удалить текущие iptables. Мы можем завершить это с помощью следующих трех команд
sudo iptables -Fsudo iptables -t nat -F sudo iptables -X
Поскольку мы удалили iptables, мы должны сбросить правило nat, которое мы создали ранее в этом руководстве, выполнив следующую команду (эта команда должна выглядеть знакомой!)
sudo iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
Теперь мы можем сохранить эту конфигурацию поверх предыдущей конфигурации, которую мы собрали на предыдущем шаге. (эта команда тоже должна показаться знакомой!)
sudo sh -c "iptables-save> /etc/iptables.ipv4.nat"
Теперь, когда у нас есть резервные копии правил NAT, нам нужно изменить конфигурацию по умолчанию для openvpn, чтобы использовать профиль, который мы настроили. Мы делаем это, редактируя файл конфигурации в / etc / default / openvpn
судо нано / и т. д. / по умолчанию / openvpn
Найдите строку, в которой написано # autostart = "all", раскомментируйте эту строку и измените ее на имя вашего файла конфигурации openvpn (за исключением.conf, конечно!). В моем случае я меняю строку на autostart = " профиль подключения"
а затем сохраните и выйдите из этого файла конфигурации!
Это должно быть все для настройки VPN! Просто перезапустите Pi и убедитесь, что все работает, подключившись к точке доступа и проверив свой IP-адрес через сайт, например whatismyip.com.
При такой конфигурации существует вероятность утечки IP-адреса вашего маршрутизатора из-за утечки DNS. Мы можем исправить это, изменив DNS, на который мы ссылаемся в файле dhcpcd.conf, чтобы он указывал на внешнюю службу DNS, такую как Cloudflare!
Откройте файл dhcpcd.conf в своем любимом редакторе:
sudo nano /etc/dhcpcd.conf
Найдите строку в конфигурации #static domain_name_servers = 192.168.0.1, раскомментируйте строку и измените ее на следующее: static domain_name_servers = 1.1.1.1 и сохраните / выйдите из файла конфигурации. Перезагрузите Pi еще раз, и теперь вы можете дважды проверить, не происходит ли утечка IP-адреса вашего маршрутизатора через ipleak.net.
Еще одна вещь, о которой следует знать, - это утечка IP-адреса вашего маршрутизатора через WebRTC. WebRTC - это платформа, которая используется всеми современными браузерами для лучшей стандартизации коммуникаций, включая обмен мгновенными сообщениями, видеоконференции и потоковое аудио и видео. Побочным продуктом этой платформы является то, что, если его не отметить, может произойти утечка IP-адреса вашего маршрутизатора, если вы подключены к VPN. Самый простой способ предотвратить это - использовать расширения или плагины браузера, такие как webrtc-Leak-prevent.
Теперь, когда все настроено на вашем пи, если вы хотите обеспечить шифрование всего вашего интернет-трафика, вы можете подключиться к этой точке доступа, и весь ваш трафик будет зашифрован через VPN!
Надеюсь, вам понравился мой Instructable, теперь защитите весь Wi-Fi !!