Раздача socks5 через wifi

Create Wifi Hotspot for sharing SOCKS Proxy on Ubuntu Server

I’m using Ubuntu Server and I have a SOCKS Proxy server on my client which is created with ssh -D command. I want to create a Wifi Hotspot on this computer which passes the traffic through this SOCKS Proxy. I’m connected to Internet through ethernet, so Wifi is idle. Is this possible? How can I achieve this?

1 Answer 1

TCP traffic from the hotspot can be passed through the ssh -D socks proxy using redsocks . With redsocks installed and configured one can use iptables to redirect all traffic from the wifi hotspot to redsocks which then passes it through the socks proxy.

For instance if your wifi hotspot is on the 10.42.0.1/24 subnet and the incoming redsocks port is 12345 issue:

sudo iptables -F sudo iptables -t nat -F sudo iptables -t nat -A PREROUTING -s 10.42.0.0/24 -p tcp -j REDIRECT --to-ports 12345 

You must log in to answer this question.

Hot Network Questions

Subscribe to RSS

To subscribe to this RSS feed, copy and paste this URL into your RSS reader.

Site design / logo © 2023 Stack Exchange Inc; user contributions licensed under CC BY-SA . rev 2023.7.17.43537

Linux is a registered trademark of Linus Torvalds. UNIX is a registered trademark of The Open Group.
This site is not affiliated with Linus Torvalds or The Open Group in any way.

By clicking “Accept all cookies”, you agree Stack Exchange can store cookies on your device and disclose information in accordance with our Cookie Policy.

Источник

Раздача Socks5 по Wi Fi Raspberry Pi

Добрый вечер ув. форумчане!
Нужна помощь в настройке Малинки.
Малинка используется в качестве роутера.
Задача: установить 3proxy с последующей раздачей Socks5 по Wi Fi, что бы другие устройства могли подключаться к этой точке доступа и «юзать» веб и приложения с IP Socks5 (dns должен быть от этого же Socks5).
Точка доступа уже настроена, но вот как настроить конфиг под 3proxy, сделать переадрессацию на порт 3proxy и подтянуть dns, возникает проблема, т. к. не до конца понимаю, как создавать правила для iptables.

Добрый человек, протяни руку помощи на небезвозмездной основе)))

GoodOkk

New member

Чтоб сам весь трафик от wifi заворачивался в Socks5? Боюсь такого не выйдет, или работать будет от силы 50% приложений. Мб нужно хттп только траффик заворачивать и пропускать через сокс, то возможно, но iptables на сколько знаю не умеет переадресовывать пакеты+еще заворачивать их в сторонние протоколы. Можно только заворачивать все в другого демона, который бы разбирал и понимая, заворачивал и переправлял траф

Apple_B

New member

Чтоб сам весь трафик от wifi заворачивался в Socks5? Боюсь такого не выйдет, или работать будет от силы 50% приложений. Мб нужно хттп только траффик заворачивать и пропускать через сокс, то возможно, но iptables на сколько знаю не умеет переадресовывать пакеты+еще заворачивать их в сторонние протоколы. Можно только заворачивать все в другого демона, который бы разбирал и понимая, заворачивал и переправлял траф

Читайте также:  Wi fi calling поддержка

Если правильно понимаю, то это делается как раз таки через iptables, малинка берет интернет с модема/роутера (через юсб), далее идет редирект на порт 3proxy (как раз через iptables) + настройка dns, а малинка уже в свою очередь раздает Wi Fi c ипом сокса. Подключенные устройства выходят в «свет» с ипом этого сокса (без каких доп манипуляций), хоть через web, хоть через apk.

KaPToHHbIu_EHoT

Если правильно понимаю, то это делается как раз таки через iptables, малинка берет интернет с модема/роутера (через юсб), далее идет редирект на порт 3proxy (как раз через iptables) + настройка dns, а малинка уже в свою очередь раздает Wi Fi c ипом сокса. Подключенные устройства выходят в «свет» с ипом этого сокса (без каких доп манипуляций), хоть через web, хоть через apk.

ХМ.
Делается «ЭТО» (я имею ввиду заворачивание трафика в socks5), возможно, и с помощью iptables. По аналогии с заворачиванием трафика в локальный tor-socks.
Но вот только выбор программы 3proxy — сомнителен.
Ведь программа 3proxy предназначена для того, чтобы поднять сокс или прокси.
Таким образом, если ты установишь 3proxy на свою малинку и поднимешь на ней сокс или прокси, то ip адрес на ней будет тот, что выдаёт твой провайдер. Какой в этих действиях смысл ? Ведь подмены ip не произойдёт !

Может быть ты планируешь сдавать свой «малиновый » сокс в аренду ? То есть предоставлять доступ к нему «третьим » лицам ? Чтобы не ты, а кто-то другой маскирован свой внешний ip и выдавал за твой ?

Источник

Wi-Fi через прокси без шума и пыли (почти)

Если раздать Wi-Fi через VPN задача простая и решаемая, вот даже статья «WiFi-портал в Россию» недавно вышла, то с прокси дело обстоит чуть сложнее, нужно немного костылей и напильников, а так же замечательное ПО под названием tun2socks.

Но, в отличие от VPN, прокси дешевле, и если нужно тестировать мобильные устройства с разных геолокаций — то прокси будет неплохим выходом. Конечно, существуют готовые решения, такие как Double SSH Tunnel Manager и Raspberry с прошивкой «Linux Mars», но мы, как водится, пойдём своим путём, да и готовые решения выше предназначены для другого.

Disclaimer. Статья пишется больше для себя, как заметки на полях, поэтому подробного мануала тут не будет. Тем не менее, материал может быть полезен и неограниченному кругу лиц, кто захочет реализовать самостоятельно. Понадобятся небольшие знания по сетям и линуксам.

Немного за технологию

Для работы с прокси будем использовать такую славную вещь, как tun2socks. На хабре уже была статья про это ПО (настоятельно рекомендую к ознакомлению), где рассказывается как настроить шлюз через прокси на Linux или Windows машине. Я же расскажу чуть подробнее, как настроить такой шлюз на роутере.

  1. Роутер на OpenWrt или роутер, который можно прошить в OpenWrt (я тестировал на незабвенном Tp-Link TL-MR3020 и на не менее незабвенном MikroTik hAP ac²). Помимо работы OpenWrt от роутера понадобится 128 и более мегабайт оперативной памяти и столько же места на внутреннем накопителе — или же возможность установить внешний.
  2. Под внешний накопитель вполне подойдёт обычная usb-флешка или sd-карточка минимального размера. Я экспериментировал с древней флешкой на 4гб. Для ценителей — usb-модем с sd-карточкой:)
  3. Прокси-провайдер (предпочтительнее socks5 c поддержкой udp)
  4. Немного свободного времени
Читайте также:  Работа тв приставки через вай фай

Прошивка роутера

Берём нашу модель и идём на сайт OpenWrt, дальше смотрим-курим поддержку и мануалы по установке. Например, для hAP ac² применимы стандартные методы прошивки для микротиков — https://openwrt.org/toh/mikrotik/common

Подробно расписывать я не буду, но небольшая памятка-TL;DR для микротиков — копируем лицензионный ключ к себе (на всякий случай) выставляем приоритет загрузки на сеть, по BOOTP при помощи например tftp32 грузим sysupgrade.bin, затем при помощи вебморды или ssh+scp прошиваем уже ось initramfs.bin. Если понадобилось вернуть RouterOS, то можно это сделать через netinstall, или через утилиту командной строки rbcfg.

Считаем что роутер у нас перепрошит в OpenWrt. Для роутеров с небольшой внутренней памятью (16мб в hAP ac²!) понадобится перенос системы на внешнюю флешку. Инструкцией в сети полно, поэтому опять же кратенько:

  1. форматируем флешку — можно сделать сразу два раздела, под систему и swap. Под винду я использовал Minitool Partition Wizard. Выбор файловой системы — по вкусу, я вот взял ext4. По размерам — хватит минимального, я подкинул на swap 256мб, под систему — 1Гб
  2. ставим в OpenWrt нужные пакеты (роутер надо будет выпустить в инет):
opkg update opkg install block-mount kmod-usb-core kmod-usb2 kmod-usb-ohci kmod-usb-storage kmod-fs-ext4
  1. Ротуер в ребут, через dmseg можно проверить, что флешка нашлась. Формируем fstab, можно через block-detect (block detect >> /etc/config/fstab), приводим fstab примерно к такому виду (честно стянуто с инета):
config 'global' option anon_swap '0' option anon_mount '1' option auto_swap '1' option auto_mount '1' option delay_root '5' option check_fs '0' option from_fstab '1' config 'swap' option uuid 'b91e3bff-9e15-4fd0-82e7-25d75d889ce6' option enabled '1' config 'mount' option target '/overlay' option uuid '7ee9d192-239f-4401-b749-3fb60b4f8eaa' option fstype 'ext4' option options 'rw,sync' option enabled '1'
mkdir /mnt/sda2 mount /dev/sda2 /mnt/sda2 tar -C /overlay -cf - . | tar -C /mnt/sda2 -xf - umount /mnt/sda2 rm -rf /mnt/sda2

Теперь у нас есть роутер, на OpenWrt и с достаточным свободным местом. Едем дальше.

Магия tun2socks

Берём tun2socks под нужную нам платформу из гитхаба разработчика — https://github.com/xjasonlyu/tun2socks/releases. Например, для нашего hAP ac² нужна будет arm-архитектура. Я закинул бинарник сюда — /usr/bin/tun2socks

Ставим необходимые пакеты:

opkg update opkg install ip-full kmod-tun

Создаём таблицу маршрутизации (в неё будем пихать весь трафик, который хотим завернуть в прокси):

echo -e '\n300 tun2socks\n' >> /etc/iproute2/rt_tables

Формируем файл для init.d, чтобы tun2socks работал как сервис. У меня он вышел примерно такой (/etc/init.d/tun2socks):

#!/bin/sh /etc/rc.common START=90 USE_PROCD=1 #PROCD_DEBUG=1 #имя туннельного интерфейса tun_name='t2s0' #адрес туннельного интерфейса tun_ip='10.254.1.1' #самое главное - адрес прокси proxy='socks5://192.168.88.201:123456' loglevel='warn' #запускаем tun2socks tun2socks() < procd_open_instance procd_set_param command /usr/bin/tun2socks -device tun://$tun_name -proxy $proxy -loglevel $loglevel procd_close_instance >#правила iptables при старте rulesup()< iptables -t mangle -N tun2socks #отправляем всё, что с бриджа в прокси iptables -t mangle -I PREROUTING -i br-lan -j MARK --set-mark 3 #отправляем https трафик в прокси iptables -t mangle -A OUTPUT -p tcp --dport 443 -j MARK --set-mark 3 #запускаем туннельный интерфейс ip tuntap add dev $tun_name mode tun ip addr add $/24 dev $tun_name ip link set dev $tun_name up #формируем таблицу маршрутизации ip route add default dev $tun_name table 300 ip rule add fwmark 3 lookup 300 #iptables -A forwarding_lan_rule -o $tun_name -j ACCEPT > #подчищаем правила, когда стопим сервис rulesdown() < ip rule del fwmark 3 lookup 300 iptables -t mangle -D PREROUTING -i br-lan -j MARK --set-mark 3 iptables -t mangle -D OUTPUT -p tcp --dport 443 -j MARK --set-mark 3 ip tuntap del dev $tun_name mode tun >start_service() < rulesup tun2socks >service_stopped()

Теперь можно включить и запустить сервис, и наслаждаться вайфаем через прокси (настройку собственно вайфая на OpenWrt тоже пожалуй оставим за кадром):

/etc/init.d/tun2socks enable /etc/init.d/tun2socks start

Из нюансов — для Tp-Link мне пришлось брать не самый свежий релиз tun2socks, свежий выпадал в ошибку. Зато если на роутере есть кнопка или переключатель — можно повесить на неё старт-стоп сервиса:) Для Tp-Link TL-MR3020 это может выглядеть, как скрипт /etc/hotplug.d/button/00-button :

#!/bin/sh if [ $ACTION == "released" ] ; then if [ $BUTTON == "BTN_1" ] ; then /etc/init.d/tun2socks stop #logger "Slider 3G" elif [ $BUTTON == "BTN_0" ] ; then /etc/init.d/tun2socks start #logger "Slider WISP" fi elif [ $BUTTON == "BTN_0" ] || [ $BUTTON == "BTN_1" ] ; then if grep -qe "sw1.*in hi" /sys/kernel/debug/gpio ; then if grep -qe "sw2.*in hi" /sys/kernel/debug/gpio ; then #logger "Slider AP" fi fi fi

Tp-Link TL-MR3020 как бы проксирует Wi-Fi

В принципе всё, за некоторым исключением, про которое поговорим отдельно.

Читайте также:  Wifi мост через лес

Утечка DNS

Внимательный читатель заметит, что я зачем-то кидаю https-трафик от роутера в прокси тоже. Делается это по причине, чтоб не «подтекал» DNS, что обнаруживается всякими прокси-детекторами. Конечно, DNS работает по UDP:53.. А вот DoH (DNS over HTTPS) нет.

Поэтому не забудем включить поддержку DoH на нашем роутере, поставив соответствующий пакет:

opkg update opkg install https-dns-proxy

В стандартных настройках используются DNS-серверы от Google и Cloudflare. Вы можете настроить на любой другой сервер, и, выбрав определённые IP серверов, маркировать трафик до них для отправки в прокси. Я же для простоты промаркировал весь https 🙂

Не хочу прошивать Микротик, он классный

С появлением RouterOS 7 и доработки функционала контейнеров в ней, можно и не сносить прекрасный RouterOS, а запихать tun2socks в контейнер. Оно работает, но с оговорками (поскольку создаётся tap-интерфейс, в процессе дебага может понадобится поребутать роутер). Контейнер можно приготовить на основе образа от разработчика — https://hub.docker.com/r/xjasonlyu/tun2socks , изменив в нём работу с таблицами маршрутизации и iptables по вкусу, и потом силами микротика и его nat (или route rule) отправлять нужный трафик в контейнер. Подробностей не будет, поскольку вариант хоть и занятный, но не каждый MikroTik умеет в контейнеры, да и задачу реализовывал ещё до поддержки контейнеров в ROS7, поэтому дальше так сказать MVP 🙂 реализовывать не стал.

Но если кому захочется — документация о работе с контейнерами — https://help.mikrotik.com/docs/display/ROS/Container, в общем случае понадобится одна переменная среды — PROXY. Из коробки работать не будет, нужно адаптировать образ, ну и конечно понадобится флешка под хранилище — куда без неё:)

Статья вышла немного сумбурной, но надеюсь может быть полезной кому-то, кроме меня. Удачного проксирования!

Источник

Оцените статью
Adblock
detector