mirror of
https://github.com/3proxy/3proxy.git
synced 2026-11-07 02:05:49 +08:00
NTLM authentication of proxy clients was gone but for what was left of it: the 407 answer offering NTLM before Basic (12, under NOCRYPT, which nothing else used) and the one for its handshake (13), sent by nothing, and the prototypes of genchallenge() and mschap(), defined nowhere. The strings after them in proxy_stringtable move up two: 403 with <pre> is 12, 503 13, 401 of the FTP server 14, 100 Continue 15. rus.3ps, StringsPlugin's translation, follows: the two strings go, the 403 with <pre> is UTF-8 as the rest, the XML of the running services has its Content-disposition, and the table of counters the columns of its rows (Action and #/Description were one). NT: passwords, MD4 hashes as Windows keeps them, stay. The documents no longer tell to give proxy -n to turn off NTLM. Plugin binary compatibility: a plugin indexing proxy_stringtable finds the strings from 12 on two places earlier, and a .3ps file of its own with the NTLM strings has two more than 3proxy (StringsPlugin warns). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
98 lines
6.5 KiB
Plaintext
98 lines
6.5 KiB
Plaintext
KOI8-R
|
||
|
||
Kirill Lopuchov, lopuchov at mail ru
|
||
|
||
<3proxy>
|
||
Довольно часто перед системным администратором встает задача предоставить доступ к Internet-ресурсам группе пользователей (небольшой офис, Internet-кафе). Данную задачу можно решить, настроив на Internet-шлюзе proxy-сервер, службу NAT (трансляция сетевых адресов) или раздать каждому пользователю реальный IP адрес.
|
||
|
||
Давайте рассмотрим самый простой способ подключения - установку proxy-сервера. Традиционно для этих целей применяется популярный proxy Squid, но не всегда бывает необходимость в столь тяжеловатой программе :), да и в squid отсутствуют такие иногда необходимые вещи как SOCKS4/5-сервер, TCP/UP порт-маппинг. Поэтому вторым номером хочется представить вашему вниманию PROXY-сервер, под названием "3proxy" (http://3proxy.ru/), разработанный нашим программистом из г. Нижний Новгород. Одним из главных его достоинств является компактность и высокая переносимость. Код сервера написан так, что легко компилируется как для Win9x/2000/XP так и для Linux и FreeBSD.
|
||
|
||
Сервер поддерживает следующие возможности:
|
||
|
||
HTTP(S) proxy;
|
||
FTP over HTTP proxy;
|
||
SOCKS4/5 proxy;
|
||
POP3 proxy;
|
||
TCP & UDP маппинг портов;
|
||
листы доступа к различным службам и адресам;
|
||
ограничение пропускной способности канала каждого пользователя (чтобы пользователь не съел весь канал, качая кучу файлов в несколько потоков :) );
|
||
ограничение трафика пользователя на день, неделю и месяц;
|
||
авторизацию пользователей ко всем proxy-службам по имени и паролю или по ip адресам;
|
||
ведение журналов через ODBC (по-моему, такого нет ни в одном proxy) и syslog и т. д.
|
||
|
||
К недостаткам можно отнести отсутствие кэширования информации :-|. Но в последнее время Inernet-контент становится все более динамичным (то есть не поддающийся кэшированию) и может быть для кого-то экономия в 25% трафика за счет его кэширования не будет столь критична. Для тех пользователей, кому она может оказаться критичной, автор предлагает использовать цепочку из 2-х серверов и в качестве кэша такие сервера как wwwoffle или им подобные, либо ждать появления поддержки кеша в 3proxy :)
|
||
|
||
Установка
|
||
|
||
# wget http://3proxy.ru/current/3proxy.tgz
|
||
# tar -xvzf 3proxy.tgz
|
||
# cd 3proxy
|
||
# make -f Makefile.FreeBSD
|
||
# mkdir /usr/local/3proxy
|
||
# mkdir /usr/local/3proxy/logs
|
||
# mkdir /usr/local/3proxy/stat
|
||
# cp src/3proxy /usr/local/3proxy
|
||
# touch /usr/local/3proxy/3proxy.cfg
|
||
# chown -R nobody:nogroup /usr/local/3proxy
|
||
|
||
Далее приведу небольшой пример конфигурационного файла 3proxy.cfg с
|
||
комментариями, более подробную информацию по конфигурированию можно
|
||
найти файле 3proxy.cfg.sample или в
|
||
HowTo http://3proxy.ru/howtor.asp
|
||
и FAQ http://3proxy.ru/faqr.asp
|
||
|
||
-------------3proxy.cfg-------------
|
||
# ВНИМАНИЕ !! не должны быть пробелов
|
||
# перед любыми опциями конфигурации !!
|
||
|
||
# ip-адрес DNS-сервера провайдера или локального
|
||
nserver 127.0.0.1
|
||
timeouts 1 5 30 60 180 1800 15 60
|
||
|
||
# Создаем двух пользователей vasia, petia и vova
|
||
# и назначаем им пароли 24555, 14656 и 45455 соответственно
|
||
users vasia:CL:24555
|
||
users petia:CL:14656
|
||
users vova:CL:45455
|
||
|
||
# Лог-файл со списком запросов пользователей
|
||
# будет создаваться каждый день новый
|
||
log /usr/local/3proxy/logs/3proxy.log D
|
||
logformat "%d-%m-%Y %H:%M:%S %U %C:%c %R:%r %O %I %T"
|
||
|
||
# Внешний интерфейс,
|
||
# через который будут уходить запросы от сервера
|
||
external 10.1.1.1
|
||
|
||
# ip-адрес интерфейса, на котором будут приниматься
|
||
# запросы от клиентов
|
||
internal 192.168.1.1
|
||
|
||
# Устанавливаем тип авторизации по имени и паролю
|
||
auth strong
|
||
# Разрешаем доступ к портам 80,8080-8088
|
||
allow * * * 80,8080-8088
|
||
# Расскоментировать секцию parent, если у вас есть прокси верхнего
|
||
# уровня и заменить ip, порт, имя пользователя и пароль на свои значения
|
||
# parent 1000 http 192.168.0.1 8080 username passwd
|
||
# allow *
|
||
# Запускаем службу HTTP-proxy на порту 3128
|
||
proxy -p3128
|
||
|
||
# Ограничиваем толшину канала для пользователей
|
||
# vasia и petia в 20000 bps,
|
||
# а для vova 10000 bps
|
||
bandlimin 20000 vasia,petia
|
||
bandlimin 10000 vova
|
||
|
||
# Запускаем сервер от пользователя nobody
|
||
# (возможно в вашей ОС uid и gid пользователя nobody
|
||
# будут другими. Для их определения воспользуйтесь коммандой id nobody)
|
||
setgid 65534
|
||
setuid 65534
|
||
------------------------------------
|
||
|
||
После того как мы создали конфигурационный файл сервера, запускаем 3proxy командой:
|
||
/usr/local/3proxy/3proxy /usr/local/3proxy/3proxy.cfg
|
||
|