Из VPS системы которая приобретена через хостера AdminVPS для нужно моего тестового почтового сервера на базе связки через WireGuard туннель до сети Server 2008 R2 Ent + Exchange 2010 Version 14.03.0513.00VPS система расположена в Беларуссии. А исходя из этого то не гоже ей простаивать покуда я не тестирую какой-либо функционал на Exchange прежде чем его внедрить в боевой среде, так почему бы не настроить на ней прокси.  Тут я вспомнил, что ранее использовал связке 3proxy + Tor, да было время, потом Tor заблокировали или частично ограничили его использование на территории России, ну да ладно, но вот в той связке была одна утилита с помощью, которой я реализую задуманное.

Мои текущие характеристики VPS системы:

  • CPU: 1
  • RAM: 1Gb
  • NVMe: 20Gb
  • Траффик: 1Tb
  • WAN-IP: статический
  • OS: Ubuntu 22.04 Server

Шаг №1: Подключаюсь к своей VPS системе по связке SSH + Private Key и устанавливаю приложение privoxy:

ekzorchik@mail:~$ apt-cache search privoxy && apt-cache show privoxy | grep Version
privoxy - Privacy enhancing HTTP Proxy
Version: 3.0.33-1build1
ekzorchik@mail:~$
ekzorchik@mail:~$ sudo apt-get install -y privoxy

Шаг №2: Настраиваем конфигурационный файл privoxy, т.к. по умолчанию порт прокси прослушивается на 127.0.0.1:8118:

ekzorchik@mail:~$ sudo netstat -tulpn | grep privoxy
tcp        0      0 127.0.0.1:8118          0.0.0.0:*               LISTEN      34148/privoxy
tcp6       0      0 ::1:8118                :::*                    LISTEN      34148/privoxy
ekzorchik@mail:~$
ekzorchik@mail:~$ whereis privoxy
privoxy: /usr/sbin/privoxy /etc/privoxy /usr/share/privoxy /usr/share/man/man8/privoxy.8.gz
ekzorchik@mail:~$
ekzorchik@mail:~$ sudo nano /etc/privoxy/config
listen-address WAN-IP:8118
#listen-address [::1]:8118
listen-address 185.251.38.97:8118

После нажимаем Ctrl + O, Enter - Ctrl + X (для выхода из редактора).

ekzorchik@mail:~$ sudo systemctl restart privoxy && sudo systemctl status privoxy | head -n5
● privoxy.service - Privacy enhancing HTTP Proxy
Loaded: loaded (/lib/systemd/system/privoxy.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2024-04-18 11:24:06 MSK; 22ms ago
Docs: man:privoxy(8)
https://www.privoxy.org/user-manual/
ekzorchik@mail:~$
ekzorchik@mail:~$ sudo netstat -tulpn | grep 8118
tcp        0      0 127.0.0.1:8118          0.0.0.0:*               LISTEN      34390/privoxy
tcp        0      0 185.251.38.97:8118      0.0.0.0:*               LISTEN      34390/privoxy
ekzorchik@mail:~$

Шаг №3: Добавляем правило в firewalld:

ekzorchik@mail:~$ sudo firewall-cmd --zone=external --add-port=8118/tcp --permanent
success
ekzorchik@mail:~$ sudo firewall-cmd --reload
success
ekzorchik@mail:~$

Шаг №4: Настраиваю браузер на выход через Proxy:

Браузер Mozilla Firefox - Открыть меню приложений - Настройки - Основные - (Настройка сети) Настроить… -

  • Ручная настройка прокси: Выбираю
  • HTTP прокси: 185.251.38.97
  • Порт: 8118
  • Также использовать этот прокси для HTTPS: отмечаю галочкой

Работа Mozilla Firefox через прокси IP&DNS сервиса Privoxy.

и нажимаю ОК, после чего открыв в браузере URL: 2ip.ru вижу, что мой внешний IP это IP адрес моей VPS системы.

Шаг №5: Все конечно хорошо, но нужно свой proxy закрыть связкой логин и пароль, разбираю как это сделать:

пробывал связать 3proxy + privoxy но как http работает,

ekzorchik@mail:~$ sudo nano /etc/3proxy/3proxy.cfg
daemon
setgid 5001
setuid 5001
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 http 127.0.0.1 8118
maxconn 1000
proxy -n -p50001 -i185.251.38.97 -e127.0.0.1
auth strong

После нажимаем Ctrl + O, Enter - Ctrl + X (для выхода из редактора).

ekzorchik@mail:~$ sudo systemctl stop 3proxy && sudo systemctl start 3proxy && sudo systemctl status 3proxy | head -n 10 && sudo netstat -tulpn | grep 3proxy
● 3proxy.service - 3Proxy SOCKS5 Daemon
Loaded: loaded (/lib/systemd/system/3proxy.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2024-04-18 14:19:17 MSK; 24ms ago
Process: 45701 ExecStart=/bin/3proxy /etc/3proxy/3proxy.cfg (code=exited, status=0/SUCCESS)
Main PID: 45702 (3proxy)
Tasks: 2 (limit: 1013)
Memory: 2.9M
CPU: 3ms
CGroup: /system.slice/3proxy.service
└─45702 /bin/3proxy /etc/3proxy/3proxy.cfg
tcp        0      0 185.251.38.97:50001     0.0.0.0:*               LISTEN      45702/3proxy
ekzorchik@mail:~$
ekzorchik@mail:~$ sudo firewall-cmd --zone=external --remove-port=8118/tcp --permanent
ekzorchik@mail:~$ sudo firewall-cmd --zone=external --add-port=50001/tcp --permanent
ekzorchik@mail:~$ sudo firewall-cmd --reload

Прописываю настройки к примеру, в Telegram Desktop на рабочей станции под управлением Windows 10 Pro:

Win - Telegram - Настройки - Продвинутые настройки - Тип соединения — выбираю "Использовать собственный прокси"

  • Выбираю: HTTP
  • Хост: 185.251.38.97
  • Порт: 50001

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

Указываю настройки IP&DNS и сервис Privoxy в Telegram Desktop.

также и в Mozilla Firefox

Win - Firefox - Открыть меню приложения - Настройки - Основные - (Настройки сети) нажимаю "Настроить…"

  • Ручная настройка прокси: отмечаю
  • HTTP прокси: 185.251.38.97
  • Порт: 50001
  • Также использовать этот прокси для HTTPS: отмечаю галочкой

и нажимаю "ОК"

После, проверяю к примеру, обратившись на URL https://myip.ru и вижу

  • Ваш IP-адрес: 185.251.38.97
  • Имя вашего хоста: mail.ekzorchikdom.ru

Т.е. выход в интернет идет через VPS систему.

Выход в интернет идет через VPS систему связки: 3proxy + privoxy.

Вот только оставлять вот таким вот образом, открытый доступ без авторизации ну как-то не совсем не по секъюрному:

ekzorchik@mail:~$ sudo firewall-cmd --zone=external --remove-port=50001/tcp --permanent
success
ekzorchik@mail:~$ sudo firewall-cmd --reload
success
ekzorchik@mail:~$

Шаг №6: А можно через 3proxy указать что с определенного IP адреса можно подключаться использую proxy, если Вам такое подходит, то смотрите у меня в приватных заметках блога https://lin.ekzorchik.ru как это сделать.

Шаг №7: Вот еще один вариант использования VPS как прокси, кстати ранее я уже говорил об этом варианте в заметке: "Доступ через SSH туннель с Windows в офис"

скачиваем клиент putty настраиваем соединение до VPS системы и прописываем настройки создания туннеля:

Connection - SSH - Tunnels

  • Source port: 3128
  • Destination: 127.0.0.1:8118

после переходим в Category: session и сохраняем текущую конфигурацию подключения к VPS системе путем присвоения имение

  • Saved Sessions: srv-vps

и нажимаем Save

Теперь переподключаемся к VPS системе клиентом Putty, как пример или как я использую mRemoteNG, покуда он запущен и подключен к VPS системе на Вашей системе прослушивается порт 3128

Win + R -> cmd.exe

C:\Users\ekzorchik>netstat -a | findstr /I "3128"
TCP    127.0.0.1:3128         w10x64a:0            LISTENING
TCP    [::1]:3128             w10x64a:0            LISTENING

Это нам дает возможность в браузере, который Вы используете прописать настройки прокси и выходить в интернет через VPS систему, к примеру, в браузере Google Chrome:

Google Chrome - Настройки и управление Google Chrome - Настройки - Система - Открыть настройки прокси-сервера для компьютера

(Настройки прокси вручную)

  • Использовать прокси-сервер: Активирую
  • Адрес: 127.0.0.1
  • Порт: 3128

и нажимаю "Сохранить", после чего браузер выходит в интернет через прокси.

Проверяю посредством сайта 2ip.ru, и вижу, как и приводил скриншоты выше, что WAN-IP у меня WAN-IP VPS системы.

Так даже лучше использовать чем выставлять наружу порт privoxy.

На заметку: активация настроек прокси-сервера для компьютера — это для всех программ на компьютере.

Итого, что у меня получилось, получить на VPS системе поднять privoxy, настройки подключения к ней через браузер позволяют выходить в интернет посредством браузера через VPS систему, но вот так оставлять неправильно, кто угодно может воспользоваться Вашей системой и в логах куда он подключается будет именно Ваша система, оно Вам надо. Лучше использовать функционал подключения через putty к VPS системе, а уже потом пускать трафик с Windows системы через ssh туннель до privoxy.

На заметку: В Вашем браузере все плагины относящиеся к VPN должны быть деактивированы иначе наши настройки прокси не будут работать.

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

На этом моя пошаговая заметка успешно завершена, с уважением автор блога Олло Александр aka ekzorchik.