Назначение IP адресов пользователям в 3proxy
12 Jan 2013 | Автор: dd |Не успели закончиться праздники, как дела навалились с удесятеренными объемами. На выходных ломал голову на тему того каким образом можно разделить IP адреса для разных пользователей для доступа через прокси 3proxy, о настройках которого я писал некоторое время назад, но ничего умного мне в голову так и не пришло кроме того как разнести настройки прокси по нескольким конфигам, с которыми демон и запускался в нескольких копиях.
Вроде ничего выдумка, но конечно в варианте 3 и более пользователей уже превращается в гемор, да и к тому же если эти пользователи сидят на одном IP, то приходится назначать другой порт, так что сегодня пришлось поковырять конфиг на тему актуальной настройки.
Расписывать, что там да как я не буду, ибо уже писал на счет настройки прокси сервера на базе пакета 3proxy, а лишь углублюсь в теорию аутентификации.
Собственно все делается на уровне описания пользователей и обнуления заданного выше списка командой flush.
То есть нам нужно задать трех пользователей user1, user2 и user3 для адресов от 1.1.1.1 до 1.1.1.7, так чтобы у каждого было два собственных адреса и один общий 1.1.1.7 для всех.
Для того чтобы прописать это все, начинаем от момента определения пользователей в конфиге
### /usr/local/3proxy/3proxy.cfg ###
users user1:CL:passuser1
users user2:CL:passuser2
users user3:CL:passuser3
auth strong
allow user1
allow user2
allow user3
proxy -n -a -i1.1.1.7 -e1.1.1.7 -p5555
flush
auth strong # мануалы говорят что необходимо, хотя работает и без него
allow user1
proxy -n -a -i1.1.1.1 -e1.1.1.1 -p5555
proxy -n -a -i1.1.1.2 -e1.1.1.2 -p5555
flush
auth strong
allow user2
proxy -n -a -i1.1.1.3 -e1.1.1.3 -p5555
proxy -n -a -i1.1.1.4 -e1.1.1.4 -p5555
flush
auth strong
allow user3
proxy -n -a -i1.1.1.5 -e1.1.1.5 -p5555
proxy -n -a -i1.1.1.6 -e1.1.1.6 -p5555
flush
#########
В таком варианте каждая связка логинов будет отрабатывать на собственных двух IP адресах, а также на общем адресе. Если flush не указывать, то права пользователей пойдут по нисходящей как обработка правил в фаерволе, то есть если опустить первое объединяющее права правило, то user1 сможет логиниться через все IP адреса, user2 через все кроме IP первого пользователя и только user3 будет иметь возможность подключаться только через свой пул.
Назначение IP адресов пользователям в 3proxy,Теги: IT безопасность, прокси, Сети
Автор:Егор на 23 Apr 2016
Не корректно работает, если все пользователи на одном порту сидят. У меня, пользователи на одном порту, и у них ip меняются в случайном порядке.
[Reply]
anchous Reply:
April 24th, 2016 at 9:21 pm
айпи рандомно меняется только в старых версиях 3прокси если вы накосячили в конфиге и попутали айпишники (т.е входной и выходной у вас отличаются) – тогда весь конфиг рандомно меняет айпишники.
несколько пользователей на одном порту тут не причем
З.Ы тем более что в данном случае – один порт он на разных айпишниках и прокси, а не на одном. так что порты вообще никак не пересекаются
[Reply]
Автор:apq на 14 Feb 2017
вот тольно не понятно, почему в конфиге указываете ип 1.1.1.10 а в описании пишете что общим задаете 1.1.1.7.
Только что попробовал, при тамком конфиге пользователь который ниже имеет доступ к ИП пользователей выше (ну или всех) Пробуйте сами
[Reply]
anchous Reply:
February 14th, 2017 at 9:57 pm
с 7 адресом описался, поправил. спасибо за замечание.
что касается доступа – если вы забыли flush, о чем сказано в последних абзацах, то вышестоящие будут иметь доступ по ходу конфига вниз; если же вы ничего не забыли и все корректно прописали, то каждый юзверь будет иметь доступ только к собственному блоку
[Reply]
apq Reply:
February 14th, 2017 at 10:34 pm
@anchous, Вот мой конфиг, flush стоит в конце, как и рекомендуется в статье.
user2 имеет доступ ко всем ип, которые приведены под user1 а должен иметь только допступ к одному общему IP (последний в списке user1)
# We can configure nservers to avoid unsafe gethostbyname() usage
nserver 8.8.8.8
nserver 10.2.2.2
# nscache is good to save speed, traffic and bandwidth
nscache 65536
timeouts 1 5 30 60 180 1800 15 60
allow * * * 80-88,8080-8088 HTTP
allow * * * 443,8443 HTTPS
deny * * 127.0.0.1,192.168.1.1
daemon
auth strong
# maxconn 50
users user1:CL:user1 user2:CL:user2
auth strong
allow user1
proxy -n -a -i193.124.87.127 -e193.124.87.127 -p3128
proxy -n -a -p3128 -i185.125.18.78 -e185.125.18.78
proxy -n -a -i193.124.84.193 -e193.124.84.193 -p3128
proxy -n -a -i193.124.91.224 -e193.124.91.224 -p3128
flush
auth strong
allow user2
proxy -n -a -i193.124.91.224 -e193.124.91.224 -p3128
flush
[Reply]
anchous Reply:
February 14th, 2017 at 10:43 pm
попробуйте юзеров одного под другим написать
users user1:CL:user1
users user2:CL:user2
и да, у вас верхний блок разрешений для портов будет работать только для первого блока ровно до флаша
apq Reply:
February 14th, 2017 at 10:59 pm
@anchous, да как только не писал…
даже вот так пробовал, доступ имеют все ко всем ИП, вы на своем сервере пробовали, у вас точно сквозного доступа нету ?:
users user1:CL:user1
auth strong
allow user1
proxy -n -a -i193.124.87.127 -e193.124.87.127 -p3128
proxy -n -a -p3128 -i185.125.18.78 -e185.125.18.78
proxy -n -a -i193.124.84.193 -e193.124.84.193 -p3128
proxy -n -a -i193.124.91.224 -e193.124.91.224 -p3128
flush
users user2:CL:user2
auth strong
allow user2
proxy -n -a -i193.124.91.224 -e193.124.91.224 -p3128
flush
anchous Reply:
February 14th, 2017 at 11:25 pm
естественно пробовал, коли у меня тут пачки статей по настройке. у меня все корректно работает, да и у вас не может снизу вверх работать, ибо файл вниз читается
Автор:apq на 14 Feb 2017
Вот мой конфиг, flush стоит в конце, как и рекомендуется в статье.
user2 имеет доступ ко всем ип, которые приведены под user1 а должен иметь только допступ к одному общему IP (последний в списке user1)
# We can configure nservers to avoid unsafe gethostbyname() usage
nserver 8.8.8.8
nserver 10.2.2.2
# nscache is good to save speed, traffic and bandwidth
nscache 65536
timeouts 1 5 30 60 180 1800 15 60
allow * * * 80-88,8080-8088 HTTP
allow * * * 443,8443 HTTPS
deny * * 127.0.0.1,192.168.1.1
daemon
auth strong
# maxconn 50
users user1:CL:user1 user2:CL:user2
auth strong
allow user1
proxy -n -a -i193.124.87.127 -e193.124.87.127 -p3128
proxy -n -a -p3128 -i185.125.18.78 -e185.125.18.78
proxy -n -a -i193.124.84.193 -e193.124.84.193 -p3128
proxy -n -a -i193.124.91.224 -e193.124.91.224 -p3128
flush
auth strong
allow user2
proxy -n -a -i193.124.91.224 -e193.124.91.224 -p3128
flush
[Reply]