Сервер в кармане, или просто о сложном!

главная - Статьи - Microsoft Windows - Прокси-сервер 3proxy

Управление пользователями 3proxy

Теги: 3proxy Настройка прокси

Как создать список пользователей

Список пользователей задается с помощью команды users.

users USERDESC ...

С помощью одной команды можно задать несколько пользователей, можно давать несколько команд users. USERDESC - описание пользователя. Описание пользователя состоит из трех полей разделенных : (двоеточием) - имени (login) типа пароля и пароля. Например:

users admin:CL:bigsecret test:CL:password test1:CL:password1 \
users "test2:CR:$1$lFDGlder$pLRb4cU2D7GAT58YQvY49." users test3:NT:BD7DFBF29A93F93C63CB84790DA00E63

В примере выше символ "\" означает, что перевода строки на самом деле нет.

Обратите внимание на двойные кавычки - они необходимы для второго пользователя, т.к. в его пароле встречается знак $, который для файла 3proxy.cfg означает включение другого файла. Поддеживается следующие типы паролей:

  • тип не указан - использовать системную авторизацию для данного пользователя (пока не реализовано).
  • CL - пароль в открытом тексте
  • CR - пароль в формате crypt() (только MD5)
  • NT - пароль в формате NT в шестнадцатеричной кодировке

NT и crypt пароли могут быть использованы для импорта учетных записей из Windows/Samba и Unix соответственно (для Windows можно использовать утилиты семейства pwdump). Учетные записи удобно хранить в отдельном файле (в таком случае можно хранить их построчно в формате, типичном для файлов паролей). Включить файл можно с помощью макроса $:

users $/etc/.3proxypasswd

или

users $"c:\Program Files\3proxy\passwords"

Шифрованные NT и crypt пароли можно создавать с помощью утилиты mycrypt.

Список пользователей един для всех служб. Разграничение доступа по службам необходимо производить с помощью списков доступа.

Как ограничить доступ пользователей к ресурсам

Для построения списков доступа используются команды allow, deny и flush. Команды имеют следующую структуру:

allow <userlist> <sourcelist> <targetlist> <targetportlist> <commandlist> <weekdays> <timeperiodslist>
deny <userlist> <sourcelist> <targetlist> <targetportlist> <commandlist> <weekdays> <timeperiodslist>
flush

Команда flush используется для сброса существующего списка доступа (это необходимо для того, чтобы можно было задать различные списки доступа для различных служб). allow служит для разрешения соединения, deny - для запрета соединения. Команда parent используется в качестве расширения команды allow для управления перенаправлениями соединений (о перенаправлении см. Как управлять перенаправлениями). В момент установки исходящего соединения просматривается список доступа и находится первая запись, соответствующая запрошенному клиентом соединению. Если запись соттветствует allow - соединение разрешается, deny - запрещается. Если список пуст, то соединение разрешается. Если список не пуст, но подходящей записи нет, то соединение запрещается. При этом:

  • <userlist> - список логинов пользователей через запятую
  • <sourcelist> - список сетей клиентов через запятую. Сеть задается в формате xxx.yyy.zzz.mmm/l, где l - длина маски сети (количество ненулевых байт). Например, 192.168.1.0/24 соответствует сети с маской 255.255.255.0.
  • <targetlist> - список сетей назначения через запятую
  • <targetportlist> - список портов назначения через запятую. можно задать диапазон портов через -, например, 80,1024-65535
  • <commandlist> - список команд, через запятую, для которых применяется правило:
    CONNECT - установить исходящее TCP соединение (например, SOCKSv4/5, POP3 proxy, и т.д.)
    BIND - разрешить входящее TCP соединение (SOCKSv5)
    UDPASSOC - создать UDP-ассоциацию (SOCKSv5)
    ICMPASSOC - создать ICMP-ассоциацию (не реализовано)
    HTTP_GET - HTTP GET запрос (HTTP proxy)
    HTTP_PUT - HTTP PUT запрос (HTTP proxy)
    HTTP_POST - HTTP POST запрос (HTTP proxy)
    HTTP_HEAD - HTTP HEAD запрос (HTTP proxy)
    HTTP_CONNECT - HTTP CONNECT запрос (HTTP proxy)
    HTTP_OTHER - другой HTTP запрос (HTTP proxy)
    HTTP - соответствует любому HTTP запросу кроме HTTP_CONNECT (HTTP proxy)
    HTTPS - тоже, что HTTP_CONNECT (HTTP proxy)
    FTP_GET - FTP get запрос
    FTP_PUT - FTP put запрос
    FTP_LIST - FTP list запрос
    FTP - соответствует любому FTP запросу
    ADMIN - доступ к интерфейсу администрирования
  • <weekdays> задает список дней недели, 1 соответствует понедельнику, 0 или 7 - воскресенье. 1-5 означает с понедельника по пятницу (включительно). 1,3,5 задает нечетные дни недели.
  • <timeperiodslist> список интервалов дня в формате ЧЧ:ММ:СС-ЧЧ:ММ:СС, например, 00:00:00-08:00:00,17:00:00-24:00:00 задает нерабочее время.

Примеры использования листов доступа можно найти в файле 3proxy.cfg.sample.

***
Источник: SECURITYVULNS.RU

Авторизуйтесь для добавления комментариев!


    забыли пароль?    новый пользователь?