Бесплатный безопасный VPN в локальной сети с Raspberry PI
В связи в последними событиями, как никогда остро встала проблема получения доступа к определенным ресурсам.
Множество компаний предоставляет услуги VPN сервисов. Делятся они на 2 категории: платные и бесплатные. В случае с бесплатными все достаточно просто и очевидно, никаких требований к пользователю, но в тоже время никаких гарантий со стороны провайдера услуг. В случае с платными ситуация защиты ваших персональных данных обстоит (хотелось бы сильно в это верить) несколько лучшим способом, однако также вызывает недоверие, да и цены на подписки кусаются.
В качестве решение обоих этих проблем хочу предложить бесплатное и, на мой взгляд, наиболее безопасное решение в условиях локальной сети, в основах которого лежит использование Raspberry Pi в качестве прокси сервера для перенаправления всего трафика через Tor протокол.
Кому интересно, прошу под кат.
Входящие данные
Raspberry Pi - 1 штука
Базовые навыки пользования терминалом - 1 штука
Настройка Raspberry Pi
Для начала не будет лишним обновить малинку следующими командами
sudo apt get update
sudo apt get upgrade
Далее устанавливаем непосредственно сам Tor и сервис для работы мостов, которые наверняка пригодятся в дальнейшем
sudo apt install tor obfs4proxy
После установки проверяем все ли мы сделали правильно командой
sudo systemctl status tor@default.service
Вывод должен выглядеть примерно следующим образом
Loaded: loaded (/lib/systemd/system/tor@default.service; enabled-runtime; vendor preset: enabled)
Active: active (running) since Wed 2022-03-16 11:56:20 UTC; 15min ago
...
Переходим к конфигурации нашего прокси сервера. Для начала не будет лишним сделать backup конфига
sudo cp /etc/tor/torrc /etc/tor/torrc.backup
Затем с помощью любого редактора дописываем в конец /etc/tor/torrc следующие параметры:
SocksPort 192.168.1.2:9050
SocksPolicy accept 192.168.1.0/24
RunAsDaemon 1
DataDirectory /var/lib/tor
Где вместо 192.168.1.2 указываем ip вашей малинки, который можно получить командой
hostname -I
Вместо 9050 можно выбрать любой доступный порт.
Далее перезапускаем Tor service командой
sudo systemctl restart tor@default.service
Первоначальная настройка готова
Подключение к proxy
Для дальнейшего использования все что нужно это просто в настройках сети устройства зайти в настройки сети и указать в качестве Proxy Socks 5 IP адрес Raspberry PI и выбранный порт примерно как на скриншоте ниже

Настройка для мобильных устройств
Не знаю как на Android, а на iOS банально нет опции указания Socks 5 proxy в настройках сети. Но это опять же достаточно легко решить при помощи той же Raspberry PI и Python
Для начала создаем файл proxy.pac на Rapsberry Pi со следующим содержимым:
function FindProxyForURL(url, host)
{
return "SOCKS 192.168.xx.xx:yyyy";
}
Указывая IP Raspberry Pi и порт заданный нами ранее
После чего создаем новый файл в /etc/systemd/system с названием simplehttp.service, содержащий в себе
[Unit]
Description=Job that runs the python SimpleHTTPServer daemon
Documentation=man:SimpleHTTPServer(1)
[Service]
Type=simple
WorkingDirectory=/home/ubuntu/server
ExecStart=/usr/bin/python3 -m http.server
ExecStop=/bin/kill `/bin/ps aux | /bin/grep SimpleHTTPServer | /bin/grep -v grep | /usr/bin/awk '{ print $2 }'`
[Install]
WantedBy=multi-user.target
Где вместо /home/ubuntu/server указываем абсолютный путь к папке, в которой находится proxy.pac
Далее выполняем следующие команды
sudo systemctl daemon-reload
sudo systemctl enable simplehttp.service
sudo systemctl start simplehttp.service
На этом подготовка окончена.
Использование на мобильных устройствах
Далее все, что нужно сделать это в настройках нашего сети устройства задать параметры как на скрине ниже

Заменив 192.168.1.2 на IP Raspberry Pi
Конфигурация мостов
Для настройки мостов все, что нужно - это получить саму строку с мостом, как это сделать можно посмотреть здесь https://bridges.torproject.org/
Затем в /etc/tor/torrc нужно дописать следующие строки:
ClientTransportPlugin obfs4 exec /usr/bin/obfs4proxy
Bridge <Строка с мостом>
UseBridges 1
После чего перезапустить Tor service командой
sudo systemctl restart tor@default.service
Заключение
Вот такими несложными методами можно за 15 минут обеспечить свою локальную сеть бесплатным и надежным перенаправление всего трафика через сеть Tor.