Назначение IP адресов пользователям в 3proxy

12 Jan 2013 | Автор: anchous |

Не успели закончиться праздники, как дела навалились с удесятеренными объемами. На выходных ломал голову на тему того каким образом можно разделить 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 будет иметь возможность подключаться только через свой пул.

VN:F [1.9.21_1169]
Rating: 10.0/10 (3 votes cast)
VN:F [1.9.21_1169]
Rating: +1 (from 1 vote)
Назначение IP адресов пользователям в 3proxy, 10.0 out of 10 based on 3 ratings

Теги: , ,

Отзывов: 9 на «Назначение IP адресов пользователям в 3proxy»

  1. Автор: Егор на 23 Apr 2016

    Не корректно работает, если все пользователи на одном порту сидят. У меня, пользователи на одном порту, и у них ip меняются в случайном порядке.

    [Reply]

    anchous Reply:

    айпи рандомно меняется только в старых версиях 3прокси если вы накосячили в конфиге и попутали айпишники (т.е входной и выходной у вас отличаются) – тогда весь конфиг рандомно меняет айпишники.
    несколько пользователей на одном порту тут не причем

    З.Ы тем более что в данном случае – один порт он на разных айпишниках и прокси, а не на одном. так что порты вообще никак не пересекаются

    [Reply]

    VN:F [1.9.21_1169]
    Rating: 5.0/5 (1 vote cast)
    VN:F [1.9.21_1169]
    Rating: 0 (from 0 votes)
  2. Автор: apq на 14 Feb 2017

    вот тольно не понятно, почему в конфиге указываете ип 1.1.1.10 а в описании пишете что общим задаете 1.1.1.7.
    Только что попробовал, при тамком конфиге пользователь который ниже имеет доступ к ИП пользователей выше (ну или всех) Пробуйте сами

    [Reply]

    anchous Reply:

    с 7 адресом описался, поправил. спасибо за замечание.
    что касается доступа – если вы забыли flush, о чем сказано в последних абзацах, то вышестоящие будут иметь доступ по ходу конфига вниз; если же вы ничего не забыли и все корректно прописали, то каждый юзверь будет иметь доступ только к собственному блоку

    [Reply]

    apq Reply:

    @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:

    попробуйте юзеров одного под другим написать
    users user1:CL:user1
    users user2:CL:user2
    и да, у вас верхний блок разрешений для портов будет работать только для первого блока ровно до флаша

    VN:F [1.9.21_1169]
    Rating: 0.0/5 (0 votes cast)
    VN:F [1.9.21_1169]
    Rating: 0 (from 0 votes)

    apq Reply:

    @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:

    естественно пробовал, коли у меня тут пачки статей по настройке. у меня все корректно работает, да и у вас не может снизу вверх работать, ибо файл вниз читается

    VN:F [1.9.21_1169]
    Rating: 0.0/5 (0 votes cast)
    VN:F [1.9.21_1169]
    Rating: 0 (from 0 votes)
  3. Автор: 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]

    VA:F [1.9.21_1169]
    Rating: 0.0/5 (0 votes cast)
    VA:F [1.9.21_1169]
    Rating: 0 (from 0 votes)

Ваш отзыв