Сегодня я опубликую практическую заметку, как в своей локальной сети поднять Socks сервис в связке: 3proxy + Tor для использования доступа к мессенджеру Telegram. Все ниже описанное представлено только в образовательных целях и только для себя. Любое Вашего злоупотребление остается на Вашей совести.

Работает

ekzorchik@srv-bionic:~$ hg clone --insecure https://ekzorchik@172.35.35.8/hg/proxy

ekzorchik@srv-bionic:~$ sudo ./proxy/proxy.sh

tips_ubuntu_18_04_3proxy_v1.odt

а после эта заметка

ekzorchik@srv-bionic:~$ sudo apt-get install tor curl -y

ekzorchik@srv-bionic:~$ sudo nano /etc/3proxy/3proxy.cfg

#!/bin/3proxy

daemon

pidfile /var/run/3proxy/3proxy.pid

setgid 1001

setuid 1001

nserver 8.8.8.8

nserver 8.8.4.4

nscache 65536

timeouts 1 5 30 60 180 1800 15 60

daemon

log /var/log/3proxy/3proxy.log D

logformat "- +_L%t.%. %N.%p %E %U %C:%c %R:%r %O %I %h %T"

fakeresolve

allow *

parent 1000 socks5+ 127.0.0.1 9050

maxconn 50

socks -a -n -p50000 -i172.33.33.4 -e127.0.0.1
ekzorchik@srv-bionic:~$ sudo systemctl restart 3proxy && sudo systemctl status 3proxy | head -n5

Проверка:

ekzorchik@srv-bionic:~$ curl -v -x socks5://172.33.33.4:50000 https://www.ekzorchik.ru | head -n10

Отправлять DNS-запросы через прокси при использовании SOCKS 5: отмечаю галочкой

Проверка через сайт 2ip.ru какой мой текущий IP адрес — отображается другой не тот что предоставляет мне мой интернет провайдер. Так и задумано при использовании TOR, работает.

Отличный от IP-адреса провайдера у меня теперь адрес.

Проверяю, как будет работать мессенжер Telegram установленный на Ubuntu 18.04 Desktop amd64: Telegram — Настройки — Продвинутые настройки — (Сеть и прокси) — Тип соединения — и изменяю:

  • Использовать собственный прокси: отмечаю галочкой
  • Добавить прокси -
  • выбираю Socks5
  • Хост: 172.33.33.4
  • Порт: 50000

и нажимаю «Сохранить»

Прописываю настройки IP адреса и порта в настройках мессенджера Telegram на использование собственного Socks 5.

Задача: добавить в конфиг 3proxy возможность подключения к админке (вывод не информативно и не нужно к использованию)

ekzorchik@srv-bionic:~$ sudo nano /etc/3proxy/3proxy.cfg

#доступ к админке (адрес 172.33.33.4:8080) по паролю из Home-Lan подсети 172.33.33.0

flush

auth strong

users ekzorchik:CL:712mbddr@

allow ekzorchik 172.33.33.0/24 * 8080 *

deny *

admin -n -p8080

ekzorchik@srv-bionic:~$ sudo systemctl restart 3proxy && sudo systemctl status 3proxy | head -n5

● 3proxy.service - 3Proxy SOCKS5 Daemon

Loaded: loaded (/lib/systemd/system/3proxy.service; enabled; vendor preset: enabled)

Active: active (running) since Sun 2019-03-10 12:54:43 MSK; 36ms ago

Process: 3268 ExecStart=/bin/3proxy /etc/3proxy/3proxy.cfg (code=exited, status=0/SUCCESS)

Main PID: 3269 (3proxy)

Если обратиться через браузер на Web-страницу админке: URL: http://172.33.33.4:8080

Авторизация в админку собственного 3proxy + Tor

То вот что ниже на представленном скриншоте будет представлено. Правда не знаю зачем это и какую полезную нагрузку получу, но не важно, опробовал, посмотрел, не использую.

Web-интерфейс админки - за чем он мне, вывод не нужен.

Задача: Добавить возможность аутентифицировать на данном прокси сервере работающем через Tor:

ekzorchik@srv-bionic:~$ sudo nano /etc/3proxy/3proxy.cfg

#!/bin/3proxy

daemon

pidfile /var/run/3proxy/3proxy.pid

setgid 1001

setuid 1001

nserver 8.8.8.8

nserver 8.8.4.4

nscache 65536

#timeouts 30 30 60 60 180 1800 60 120

#Таймауты по умолчанию могут быть слишком быстрыми для Tor, и потому

#они были увеличены, согласно рекомендации его разработчиков:

#https://trac.torproject.org/projects/tor/wiki/doc/TorifyHOWTO/WebBrowsers#CircumventingTorblocksusingopenHTTPproxies

timeouts 1 5 30 60 180 1800 15 60

daemon

log /var/log/3proxy/3proxy.log D

logformat "- +_L%t.%. %N.%p %E %U %C:%c %R:%r %O %I %h %T"

rotate 60

flush

auth strong

users ekzorchik:CL:712mbddr@

#Для заворачивания DNS-запросов внутрь Tora

fakeresolve

allow *

#перенаправляем запросы на порт Tor

parent 1000 socks5+ 127.0.0.1 9050

#Ограничение на количество соединений

maxconn 50

# -a -> делаем прокси анонимным

# -n -> отключает несовместимую с Unix аутентификацию по NTLM

# -p -> указывает на порт для прослушивания

# -i -> на интерфейс для прослушивания запросов

# -e -> на интерфейс для отправки запросов

socks -a -n -p50000 -i172.33.33.4 -e127.0.0.1

Теперь в Telegram указываем:

  • Host: 172.33.33.4
  • Port: 50000
  • Username: ekzorchik
  • Password: 712mbddr@

и подключение происходит

Задача: Настройка работу данного прокси сервера, как с использование авторизации так и нет:

ekzorchik@srv-bionic:~$ cat /etc/3proxy/3proxy.cfg | grep -v "#"

daemon

pidfile /var/run/3proxy/3proxy.pid

setgid 1001

setuid 1001

nserver 8.8.8.8

nserver 8.8.4.4

nscache 65536

timeouts 1 5 30 60 180 1800 15 60

daemon

log /var/log/3proxy/3proxy.log D

logformat "- +_L%t.%. %N.%p %E %U %C:%c %R:%r %O %I %h %T"

rotate 60

flush

auth strong

users ekzorchik:CL:712mbddr@

fakeresolve

allow *

parent 1000 socks5+ 127.0.0.1 9050

maxconn 50

socks -a -n -p50000 -i172.33.33.4 -e127.0.0.1

flush

fakeresolve

allow *

parent 1000 socks5+ 127.0.0.1 9050

maxconn 50

socks -a -n -p50001 -i172.33.33.4 -e127.0.0.1

ekzorchik@srv-bionic:~$ sudo netstat -tulpn | grep 3proxy

tcp 0 0 172.33.33.4:50000 0.0.0.0:* LISTEN 3357/3proxy

tcp 0 0 172.33.33.4:50001 0.0.0.0:* LISTEN 3357/3proxy

Только вот когда настраиваю проксю в Moziila Firefox на 50001 ничего не работает, а если Telegram на 50000 то все работает.

Настройки мессенджера Telegram на собственный 3proxy + TOR

Вопрос почему не работает Mozilla Firefox?

Решение: нужно конфигурацию без пароля поднять выше конфигурации с паролем

Итоговый конфиг:

ekzorchik@srv-bionic:~$ cat /etc/3proxy/3proxy.cfg | grep -v "#"

daemon

pidfile /var/run/3proxy/3proxy.pid

setgid 1001

setuid 1001

nserver 8.8.8.8

nserver 8.8.4.4

nscache 65536

timeouts 1 5 30 60 180 1800 15 60

daemon

log /var/log/3proxy/3proxy.log D

logformat "- +_L%t.%. %N.%p %E %U %C:%c %R:%r %O %I %h %T"

rotate 60

flush

fakeresolve

allow *

parent 1000 socks5+ 127.0.0.1 9050

maxconn 50

socks -a -n -p50001 -i172.33.33.4 -e127.0.0.1

flush

auth strong

users ekzorchik:CL:712mbddr@

fakeresolve

allow *

parent 1000 socks5+ 127.0.0.1 9050

maxconn 50

socks -a -n -p50000 -i172.33.33.4 -e127.0.0.1

ekzorchik@srv-bionic:~$ sudo systemctl restart 3proxy && sudo systemctl status 3proxy | head -n5

ekzorchik@srv-wiki:/opt/3proxy$ sudo netstat -tulpn | grep 9050

tcp 0 0 127.0.0.1:9050 0.0.0.0:* LISTEN 13249/tor

На своем сервере в локальной сети для работы в моем случае я еще прописываю правила фаервола ( у меня несколько сетей дома: Одна пользовательская, Другая серверная/сервисная и т.д)

ekzorchik@srv-wiki:~$ sudo ufw allow to 172.40.40.8 port 9050 from 172.33.33.0/24 proto tcp

ekzorchik@srv-wiki:~$ sudo ufw allow to 172.40.40.8 port 50000 from 172.33.33.0/24 proto tcp

Rule added

ekzorchik@srv-wiki:~$ sudo ufw allow to172.40.40.8 port 50001 from 172.33.33.0/24 proto tcp

Rule added

Полученные правила

172.40.40.8 9050/tcp ALLOW 172.33.33.0/24

172.40.40.8 50000/tcp ALLOW 172.33.33.0/24

172.40.40.8 50001/tcp ALLOW 172.33.33.0/24

На заметку: Применил обе заметки

tips_ubuntu_18_04_3proxy_v1.odt

tips_ubuntu_18_04_3proxy_tor_v1.odt – а это текущая заметка.

к 172.40.40.8 чтобы к прокси можно было подключиться только из локальной сети и все заработало.

и после все заработало. Если сервис поднят во все то обязательно стоит использовать связку с применением логина и пароля, а то все кому не лень каким-либо способом найдут и подключаться к Вам и будут использовать не по назначению. На этом у меня всё, с уважением автор блога Олло Александр aka ekzorchik.

От ekzorchik

Всем хорошего дня, меня зовут Александр. Я под ником - ekzorchik, являюсь автором всех написанных, разобранных заметок. Большинство вещей с которыми мне приходиться разбираться, как на работе, так и дома выложены на моем блоге в виде пошаговых инструкции. По сути блог - это шпаргалка онлайн. Каждая новая работа где мне случалось работать вносила новые знания и нюансы работы и соответственно я расписываю как сделать/решить ту или иную задачу. Это очень помогает. Когда сам разбираешь задачу, стараешься ее приподнести в виде структурированной заметки чтобы было все наглядно и просто, то процесс усвоения идет в гору. Также прошу на https://win.ekzorchik.ru https://lin.ekzorchik.ru https://net.ekzorchik.ru https://voip.ekzorchik.ru https;//home.ekzorchik.ru