В данной статье я расскажу о том, как я сделал из Raspberry Pi маршрутизатор, способный перенаправлять отдельные сайты, отдельные подсети, да хоть все запросы через tor.
Клонируем мой репозиторий с github и производим настройку. Все действия также описаны на странице репозитория.
Выполняем сделующие команды, не забывая заменить username на имя своего пользователя:
mkdir build
cd build
wget https://openresty.org/download/openresty-1.19.9.1.tar.gz # or latest release from https://openresty.org/en/download.html
tar -xzvf openresty-1.19.9.1.tar.gz
mv openresty-1.19.9.1 openresty
git clone https://github.com/fffonion/lua-resty-openssl
git clone https://github.com/fffonion/lua-resty-openssl-aux-module
git clone https://github.com/Evengard/lua-resty-getorigdest-module
git clone https://github.com/iryont/lua-struct
git clone https://github.com/Evengard/lua-resty-socks5
cd openresty
./configure --prefix=/home/username/nginxdpi --with-cc=gcc --add-module=/home/username/build/lua-resty-openssl-aux-module --add-module=/home/username/build/lua-resty-openssl-aux-module/stream --add-module=/home/username/build/lua-resty-getorigdest-module/src
make -j4 && make install
cp -r /home/username/build/lua-resty-getorigdest-module/lualib/* /home/username/nginxdpi/lualib/
cp -r /home/username/build/lua-resty-openssl/lib/resty/* /home/username/nginxdpi/lualib/resty/
cp -r /home/username/build/lua-resty-openssl-aux-module/lualib/* /home/username/nginxdpi/lualib/
cp /home/username/build/lua-resty-socks5/socks5.lua /home/username/nginxdpi/lualib/resty/
cp /home/username/build/lua-struct/src/struct.lua /home/username/nginxdpi/lualib/
Далее отредактируйте /scripts/startDpi.sh:
sudo apt install tor
sudo nano /etc/tor/torrc
Вставьте в файл следующие настройки и замените 192.168.1.1 на адрес вашего raspberry pi:
SocksPort 192.168.1.1:9050
SocksPort 127.0.0.1:9050
SocksPolicy accept 192.168.1.0/24
RunAsDaemon 1
DataDirectory /var/lib/tor
VirtualAddrNetwork 10.0.0.0/10
AutomapHostsOnResolve 1
TransPort 9040
DNSPort 192.168.1.1:9053
Откройте scripts/startTorDns.sh и замените 192.168.1.1:9053 на DNS вашего TOR
go run server.go
Либо скомпилировать файл для более быстрой работы
go build server.go
./server
Зайдите на web панель по адресу ip_your_raspberrypi:8080
Описание функций:
Также можете поучавствовать в разработке, ссылка на репозиторий - https://github.com/yyasha/raspberrypi_router
Клонируем мой репозиторий с github и производим настройку. Все действия также описаны на странице репозитория.
Этап первый: настройка DPI
Центром нашего маршрутизатора будет DPI, созданный пользователем @Evengard (ссылка на статью - https://habr.com/ru/post/548110/).Выполняем сделующие команды, не забывая заменить username на имя своего пользователя:
mkdir build
cd build
wget https://openresty.org/download/openresty-1.19.9.1.tar.gz # or latest release from https://openresty.org/en/download.html
tar -xzvf openresty-1.19.9.1.tar.gz
mv openresty-1.19.9.1 openresty
git clone https://github.com/fffonion/lua-resty-openssl
git clone https://github.com/fffonion/lua-resty-openssl-aux-module
git clone https://github.com/Evengard/lua-resty-getorigdest-module
git clone https://github.com/iryont/lua-struct
git clone https://github.com/Evengard/lua-resty-socks5
cd openresty
./configure --prefix=/home/username/nginxdpi --with-cc=gcc --add-module=/home/username/build/lua-resty-openssl-aux-module --add-module=/home/username/build/lua-resty-openssl-aux-module/stream --add-module=/home/username/build/lua-resty-getorigdest-module/src
make -j4 && make install
cp -r /home/username/build/lua-resty-getorigdest-module/lualib/* /home/username/nginxdpi/lualib/
cp -r /home/username/build/lua-resty-openssl/lib/resty/* /home/username/nginxdpi/lualib/resty/
cp -r /home/username/build/lua-resty-openssl-aux-module/lualib/* /home/username/nginxdpi/lualib/
cp /home/username/build/lua-resty-socks5/socks5.lua /home/username/nginxdpi/lualib/resty/
cp /home/username/build/lua-struct/src/struct.lua /home/username/nginxdpi/lualib/
Далее отредактируйте /scripts/startDpi.sh:
- Измените eth0 на ваш интерфейс
- Измените /opt/nginxdpi/bin/openresty и /opt/nginxdpi/cfg/nginx.conf на ваш путь
- Замените 127.0.0.1 и 9050 на ваш SOCKS5 server (его мы настроим далее в статье)
- Также замените 192.168.1.1 на IP адрес вашего of the DNS сервера (если он у вас есть, если нет, то можете, напимер написать 1.1.1.1 или 8.8.8.8)
Этап второй: настройка TOR
Установите тор и откройте файл конфигурации:sudo apt install tor
sudo nano /etc/tor/torrc
Вставьте в файл следующие настройки и замените 192.168.1.1 на адрес вашего raspberry pi:
SocksPort 192.168.1.1:9050
SocksPort 127.0.0.1:9050
SocksPolicy accept 192.168.1.0/24
RunAsDaemon 1
DataDirectory /var/lib/tor
VirtualAddrNetwork 10.0.0.0/10
AutomapHostsOnResolve 1
TransPort 9040
DNSPort 192.168.1.1:9053
Этап третий: установка golang
Установить golang вы можете следуя оффициальному гайдуЭтап четвёртый: заключительные действия
Откройте scripts/startDefaultDns.sh и замените 192.168.1.1:53 на ваш статический DNSОткройте scripts/startTorDns.sh и замените 192.168.1.1:9053 на DNS вашего TOR
Этап пятый: запуск
Вы можете стразу запустить скрипт командойgo run server.go
Либо скомпилировать файл для более быстрой работы
go build server.go
./server
Зайдите на web панель по адресу ip_your_raspberrypi:8080
Описание функций:
- Включение и выключение DPI: Полностью включает и выключает маршрутизацию
- Маршрутизация добавленных пользователем сайтов и подсетей через тор
- Изпользование DNS от тора, возможность заходить на .onion сайты
- Маршрутизация всех заблокированных в России подсетей через тор
- Использование правила 'MASQURADE' в iptables для создания NAT
- Маршрутизация всего трафика через тор
Спасибо за внимание
На этом все! Спасибо всем, кто дочитал статью.Также можете поучавствовать в разработке, ссылка на репозиторий - https://github.com/yyasha/raspberrypi_router
Тёмный маршрутизатор из Raspberry Pi
В данной статье я расскажу о том, как я сделал из Raspberry Pi маршрутизатор, способный перенаправлять отдельные сайты, отдельные подсети, да хоть все запросы через tor. Клонируем мой репозиторий с...
habr.com