SOCKS proxy

Настройка, программирование, распределённые вычисления

Модераторы: Olej, bellic, vikos

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

SOCKS proxy

Непрочитанное сообщение Olej » 21 мар 2023, 12:39

Olej писал(а):
21 мар 2023, 11:48
Сегодняшний день проводим под знаком: сливаем всех прокси-халявщиков в сортир нахер
Итак ... поехали! :-D
Я знаю, на пока, 3 способа ограничить использование прокси сервера для посторонних:
1. изменить стандартный порт 1080 ... на малоизвестный ...
2. установить авторизованный доступ к прокси пользователей ... по паролю или PAM;
3. разрешить доступ к прокси только для группы исходящих IP доступа ... или, в предельном случае - для одного IP себя любимого :lol:

Причём, они могут использоваться и не по "или", а по "и": и 1 и 2 и 3 ... одновременно.

Поскольку мне может понаобится каждый из них, то опробую все по очереди.
Всё это, естественно, делается через конфиг-файл /etc/danted.conf

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

SOCKS proxy

Непрочитанное сообщение Olej » 21 мар 2023, 13:30

Olej писал(а):
21 мар 2023, 12:39
Поскольку мне может понаобится каждый из них, то опробую все по очереди.
Всё это, естественно, делается через конфиг-файл /etc/danted.conf
Но прежде почистить журнал:

Код: Выделить всё

root@277938:/var/log# ls -l daemon.log*
-rw-r----- 1 root adm  1294299010 мар 21 13:09 daemon.log

Код: Выделить всё

olej@277938:~$ df /dev/vda1
Файловая система 1K-блоков Использовано Доступно Использовано% Cмонтировано в
/dev/vda1         15389720      7933284  6653680           55% /
Как его усечь, чтобы сохранить себе 20-30 последних строк не придумал ... поэтому:

Код: Выделить всё

root@277938:/var/log# > daemon.log

Код: Выделить всё

root@277938:/var/log# ls -l daemon.log
-rw-r----- 1 root adm 0 мар 21 13:24 daemon.log

Код: Выделить всё

olej@277938:~$ df /dev/vda1
Файловая система 1K-блоков Использовано Доступно Использовано% Cмонтировано в
/dev/vda1         15389720      6774416  7812548           47% /
Ну так так - гораздо лучше :!:
Особенно для удалённого VDS сервера с очень ограниченными ресурсами.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

SOCKS proxy

Непрочитанное сообщение Olej » 21 мар 2023, 13:41

Olej писал(а):
21 мар 2023, 12:39
3. разрешить доступ к прокси только для группы исходящих IP доступа ... или, в предельном случае - для одного IP себя любимого
Начну с вот этого...
Тут любопытно получается - прежде всего чтоб экспериментировать нужно знать свой IP который провайдер выкидывает в сеть.
Ну ... https://2ip.ru/
Ваш IP адрес:
193.28.177.124
И так:

Код: Выделить всё

olej@R420:~$ curl ifconfig.co
curl: (7) Failed to connect to 90.156.230.27 port 1080 after 115 ms: В соединении отказано
О-ба-на :!: :-o
Это все браузеры производные от Chromium так тупо устанавливают для себя прокси через :-o системный прокси. См. в NetManager :
Снимок экрана от 2023-03-21 11-15-46.png
Снимок экрана от 2023-03-21 11-15-46.png (36.66 КБ) 430 просмотров
Убрать!:
Снимок экрана от 2023-03-21 11-16-05.png
Снимок экрана от 2023-03-21 11-16-05.png (21.96 КБ) 430 просмотров
Отключить и включить сетевые интерфейсы...
Хрен вам :-( :

Код: Выделить всё

olej@R420:~$ curl ifconfig.co
curl: (7) Failed to connect to 90.156.230.27 port 1080 after 115 ms: В соединении отказано
Он прописал в shell окружении:

Код: Выделить всё

olej@R420:~$ env | grep proxy
no_proxy=localhost,127.0.0.0/8,::1
all_proxy=socks://90.156.230.27:1080/
И только открыв новый терминал (с новым environment):

Код: Выделить всё

olej@R420:~$ env | grep proxy
olej@R420:~$

Код: Выделить всё

olej@R420:~$ curl ifconfig.co
193.28.177.124

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

SOCKS proxy

Непрочитанное сообщение Olej » 21 мар 2023, 14:06

Olej писал(а):
21 мар 2023, 12:39
в предельном случае - для одного IP себя любимого
Было:

Код: Выделить всё

root@277938:/etc# grep -A3 ^client /etc/danted.conf
client pass {
        from: 0/0 to: 0/0
        log: connect disconnect error ioop
}
Стало:

Код: Выделить всё

root@277938:/etc# grep -A3 ^client /etc/danted.conf 
client pass {
        from: 193.28.177.124/0 to: 193.28.177.124/0
        log: connect disconnect error ioop
}
Запуск:

Код: Выделить всё

root@277938:~# systemctl start danted

Код: Выделить всё

root@277938:~# systemctl status --no-pager --full danted
● danted.service - SOCKS (v4 and v5) proxy daemon (danted)
   Loaded: loaded (/lib/systemd/system/danted.service; enabled; vendor preset: enabled)
   Active: active (running) since Tue 2023-03-21 14:03:37 MSK; 1s ago
     Docs: man:danted(8)
           man:danted.conf(5)
  Process: 1934 ExecStartPre=/bin/sh -c   	uid=`sed -n -e "s/[[:space:]]//g" -e "s/#.*//" -e "/^user\.privileged/{s/[^:]*://p;q;}" /etc/danted.conf`;  	if [ -n "$uid" ]; then  		touch /var/run/danted.pid;  		chown $uid /var/run/danted.pid;  	fi  	 (code=exited, status=0/SUCCESS)
 Main PID: 1938 (danted)
    Tasks: 20 (limit: 1149)
   Memory: 6.6M
   CGroup: /system.slice/danted.service
           ├─1938 /usr/sbin/danted
           ├─1939 danted: monitor
           ├─1940 danted: negotia
           ├─1941 danted: request
           ├─1942 danted: request
           ├─1943 danted: request
           ├─1944 danted: request
           ├─1945 danted: request
           ├─1946 danted: request
           ├─1947 danted: request
           ├─1948 danted: request
           ├─1949 danted: request
           ├─1950 danted: request
           ├─1951 danted: request
           ├─1952 danted: request
           ├─1953 danted: request
           ├─1954 danted: request
           ├─1955 danted: request
           ├─1956 danted: request
           └─1957 danted: io-chil

мар 21 14:03:37 277938.local systemd[1]: Starting SOCKS (v4 and v5) proxy daemon (danted)...
мар 21 14:03:37 277938.local systemd[1]: Started SOCKS (v4 and v5) proxy daemon (danted).
мар 21 14:03:38 277938.local danted[1938]: Mar 21 14:03:38 (1679396618.059830) danted[1938]: info: Dante/server[1/1] v1.4.2 running

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

SOCKS proxy

Непрочитанное сообщение Olej » 21 мар 2023, 14:12

Olej писал(а):
21 мар 2023, 14:06
Запуск:
Проверка ... такого вот ... персонального прокси :lol: :

Код: Выделить всё

olej@R420:~$ curl -x socks5://90.156.230.27:1080 ifconfig.co
90.156.230.27

Код: Выделить всё

olej@R420:~$ time curl check-host.net/ip
real	0m0,516s
user	0m0,006s
sys	0m0,011s

Код: Выделить всё

olej@R420:~$ time curl --socks5 90.156.230.27:1080 check-host.net/ip
real	0m0,657s
user	0m0,007s
sys	0m0,008s

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

SOCKS proxy

Непрочитанное сообщение Olej » 21 мар 2023, 14:31

Olej писал(а):
19 мар 2023, 22:44
Сравнение времени доступа - без прокси и с прокси ...
Olej писал(а):
21 мар 2023, 13:41
olej@R420:~$ env | grep proxy
no_proxy=localhost,127.0.0.0/8,::1
all_proxy=socks://90.156.230.27:1080/
Так как (оказалось), при установке системных переменных (environment) для прокси, curl использует прокси по умолчанию, и в этом случае оценивать/сравнивать время доступа можно только так (режим "без прокси"):

Код: Выделить всё

olej@R420:~$ time curl --noproxy '*' check-host.net/ip
real    0m0,122s
user    0m0,009s
sys     0m0,005s
Через прокси (явно указано):

Код: Выделить всё

olej@R420:~$ time curl --socks5 90.156.230.27:1080 check-host.net/ip
real    0m0,627s
user    0m0,009s
sys     0m0,005s
В данном случае переменная окружения прокси не установлена:

Код: Выделить всё

olej@R420:~$ time curl check-host.net/ip
real    0m0,112s
user    0m0,000s
sys     0m0,012s
P.S. Режим "без прокси", как пишут, работает только в версиях curl после 7.19.4 :

Код: Выделить всё

olej@R420:~$ curl -V
curl 7.81.0 (x86_64-pc-linux-gnu) libcurl/7.81.0 OpenSSL/3.0.2 zlib/1.2.11 brotli/1.0.9 zstd/1.4.8 libidn2/2.3.2 libpsl/0.21.0 (+libidn2/2.3.2) libssh/0.9.6/openssl/zlib nghttp2/1.43.0 librtmp/2.3 OpenLDAP/2.5.14
Release-Date: 2022-01-05
Protocols: dict file ftp ftps gopher gophers http https imap imaps ldap ldaps mqtt pop3 pop3s rtmp rtsp scp sftp smb smbs smtp smtps telnet tftp 
Features: alt-svc AsynchDNS brotli GSS-API HSTS HTTP2 HTTPS-proxy IDN IPv6 Kerberos Largefile libz NTLM NTLM_WB PSL SPNEGO SSL TLS-SRP UnixSockets zstd

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

SOCKS proxy

Непрочитанное сообщение Olej » 21 мар 2023, 14:45

Olej писал(а):
21 мар 2023, 12:39
3. разрешить доступ к прокси только для группы исходящих IP доступа ... или, в предельном случае - для одного IP себя любимого
Этот способ настроен, проверен и состоялся:

Код: Выделить всё

olej@R420:~$ curl ifconfig.co
193.28.177.124

Код: Выделить всё

olej@R420:~$ curl --socks5 90.156.230.27:1080 ifconfig.co
90.156.230.27
Пусть теперь так день-другой поработает, а я понаблюдаю...

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

SOCKS proxy

Непрочитанное сообщение Olej » 21 мар 2023, 14:47

Olej писал(а):
21 мар 2023, 14:45
а я понаблюдаю...
Нет!
Это так не работает:

Код: Выделить всё

root@277938:/etc# tail -n5 /var/log/daemon.log
Mar 21 14:45:47 277938 danted[1938]: Mar 21 14:45:47 (1679399147.334588) danted[2735]: info: pass(1): tcp/connect -: 95.142.206.145.443 90.156.230.27.40160 -> 90.156.230.27.1080 193.28.177.124.40160 (5792)
Mar 21 14:45:47 277938 danted[1938]: Mar 21 14:45:47 (1679399147.334818) danted[2735]: info: pass(1): tcp/connect -: 95.142.206.145.443 90.156.230.27.40160 -> 90.156.230.27.1080 193.28.177.124.40160 (5792)
Mar 21 14:45:47 277938 danted[1938]: Mar 21 14:45:47 (1679399147.337318) danted[2735]: info: pass(1): tcp/connect -: 95.142.206.145.443 90.156.230.27.40160 -> 90.156.230.27.1080 193.28.177.124.40160 (689)
Mar 21 14:45:47 277938 danted[1938]: Mar 21 14:45:47 (1679399147.360807) danted[2735]: info: pass(1): tcp/connect -: 193.28.177.124.53036 90.156.230.27.1080 -> 90.156.230.27.53036 92.53.116.191.443 (726)
Mar 21 14:45:47 277938 danted[1938]: Mar 21 14:45:47 (1679399147.631963) danted[2735]: info: pass(1): tcp/connect -: 92.53.116.191.443 90.156.230.27.53036 -> 90.156.230.27.1080 193.28.177.124.53036 (846)
Моментально посыпались халявщики:

Код: Выделить всё

root@277938:/etc# whois 95.142.206.145 | grep ^address
address:        Prem.1-N, Bld. 12-14, Lit. A, Khersonskaya str.
address:        191024
address:        Saint-Petersburg
address:        RUSSIAN FEDERATION
address:        39/79, Leningradsky prospect
address:        Moscow, Russia,125167

Код: Выделить всё

root@277938:/etc# whois 185.240.242.35 | grep ^address
address:        Marco Witzgall Internetdienstleistungen
address:        Lindenstr. 1
address:        91217 Hersbruck
address:        Germany
За 1-1.5 часа:

Код: Выделить всё

root@277938:/var/log# grep ": tcp/connect -:" /var/log/daemon.log | wc -l
37229
Будем искать на них конфигурации! :lol:

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

SOCKS proxy

Непрочитанное сообщение Olej » 21 мар 2023, 19:35

Olej писал(а):
21 мар 2023, 14:47
Будем искать на них конфигурации!
ОК ... ребяты-демократы
Olej писал(а):
21 мар 2023, 12:39
2. установить авторизованный доступ к прокси пользователей ... по паролю или PAM;
Довольно долго пришлось повозиться с конфигурацией...
- добавить пользователя (любого, только для прокси и без логина):

Код: Выделить всё

root@277938:/var/log# useradd --shell /usr/sbin/nologin proxy_user_01
- создать его пароль:

Код: Выделить всё

root@277938:/var/log# passwd proxy_user_01
Новый пароль : 
Повторите ввод нового пароля : 
passwd: пароль успешно обновлён
- добавить пользователя в группу proxy (она уже существует, может при инсталляции):

Код: Выделить всё

olej@277938:~$ sudo usermod -a -G proxy proxy_user_01

Код: Выделить всё

olej@277938:~$ cat /etc/group | grep proxy
proxy:x:13:proxy_user_01
proxy_user_01:x:1003:
- проверить все значимые поля конфига (у меня только при таких настройках всё запустилось ... ну не считая client pass - это с прошлого раза осталось):

Код: Выделить всё

root@277938:/etc# grep ^socksmethod: /etc/danted.conf
socksmethod: username

Код: Выделить всё

root@277938:/etc# grep -A3 ^client /etc/danted.conf
client pass {
        from: 193.28.177.124/24 to: 0/0
        log: connect error ioop
}

Код: Выделить всё

root@277938:/etc# grep -A3 ^"socks " /etc/danted.conf
socks pass {
        from: 0/0 to: 0/0
        log: connect disconnect error ioop
        group: proxy

Код: Выделить всё

root@277938:/etc# grep eth0 /etc/danted.conf
internal: eth0 port = 1080
external: eth0

Код: Выделить всё

root@277938:/etc# grep ^user\. /etc/danted.conf
user.privileged: root
user.unprivileged: nobody
user.libwrap: nobody
Только после этого ... с 5-6 перезапуска :-( ... оно у меня стартонуло как надо!

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

SOCKS proxy

Непрочитанное сообщение Olej » 21 мар 2023, 19:39

Olej писал(а):
21 мар 2023, 19:35
Только после этого ... с 5-6 перезапуска :-( ... оно у меня стартонуло как надо!

Код: Выделить всё

root@277938:/etc# systemctl restart danted

Код: Выделить всё

root@277938:/etc# systemctl status --no-pager --full danted
● danted.service - SOCKS (v4 and v5) proxy daemon (danted)
   Loaded: loaded (/lib/systemd/system/danted.service; enabled; vendor preset: enabled)
   Active: active (running) since Tue 2023-03-21 19:12:12 MSK; 6s ago
     Docs: man:danted(8)
           man:danted.conf(5)
  Process: 12726 ExecStartPre=/bin/sh -c        uid=`sed -n -e "s/[[:space:]]//g" -e "s/#.*//" -e "/^user\.privileged/{s/[^:]*://p;q;}" /etc/danted.conf`;
 Main PID: 12731 (danted)
    Tasks: 20 (limit: 1149)
   Memory: 16.5M
   CGroup: /system.slice/danted.service
           ├─12731 /usr/sbin/danted
           ├─12732 danted: monitor
           ├─12733 danted: negotia
           ├─12734 danted: request
           ├─12735 danted: request
           ├─12736 danted: request
           ├─12737 danted: request
           ├─12738 danted: request
           ├─12739 danted: request
           ├─12740 danted: request
           ├─12741 danted: request
           ├─12742 danted: request
           ├─12743 danted: request
           ├─12744 danted: request
           ├─12745 danted: request
           ├─12746 danted: request
           ├─12747 danted: request
           ├─12748 danted: request
           ├─12749 danted: request
           └─12750 danted: io-chil

мар 21 19:12:12 277938.local systemd[1]: Starting SOCKS (v4 and v5) proxy daemon (danted)...
мар 21 19:12:12 277938.local systemd[1]: Started SOCKS (v4 and v5) proxy daemon (danted).
мар 21 19:12:13 277938.local danted[12731]: Mar 21 19:12:13 (1679415133.168613) danted[12731]: info: Dante/server[1/1] v1.4.2 running

Код: Выделить всё

olej@R420:~$ curl -x socks5://proxy_user_01:xxxxxx@90.156.230.27:1080 ifconfig.co
90.156.230.27

Ответить

Вернуться в «Сети»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 16 гостей