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

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

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

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

Автор: Kirill Lopuchov, lopuchov at mail ru

Источник: 3proxy.ru, SECURITYVULNS.RU

Довольно часто перед системным администратором встает задача предоставить доступ к Internet ресурсам группе пользователей (небольшой офис,Internet кафе). Данную задачу можно решить несколькими способами, это настройка на Internet шлюзе:

  • proxy сервера
  • службы NAT (трансляция сетевых адресов)
  • раздать каждому пользователю реальный IP адрес

Давайте рассмотрим первый самый простой способ подключения, это proxy сервер традиционно для таких целей применяется популярный proxy Squid, но не всегда бывает необходимость в столь тяжеловатой программе :), да и в squid отсутствует такие иногда необходимые вещи как SOCKS4/5 сервер, TCP/UP порт маппинг. Поэтому вторым номером хочется представить вашему вниманию PROXY сервер, по названием "3proxy" адрес сайта http://3proxy.ru/ разработанный нашим программистом из г. Нижний Новгород. Одним из главных его достоинств мне кажется это компактность и высокая переносимость. Код сервера написан так, что легко компилируется как для Win9x/2000/XP так и для Linux и FreeBSD.

Возможности 3proxy

Сервер поддерживает следующие возможности:

  • HTTP(S) proxy
  • FTP over HTTP proxy
  • SOCKS4/5 proxy
  • POP3 proxy
  • TCP & UDP маппинг портов
  • листы доступа к различным службам и адресам
  • ограничение пропускной способности канала каждого пользователя (чтобы пользователь не съел весь канал, качая кучу файлов в несколько потоков :) )
  • ограничение трафика пользователя на день, неделю и месяц
  • ведение журналов через ODBC (по моему такого нет ни в одном proxy) и syslog и т.д
  • авторизацию пользователей ко всем proxy службам по имени и паролю или по ip адресам

К недостаткам можно отнести это отсутствие кэширования информации :-|. Но в с последнее время Inernet контент становится все более динамическим (то есть не поддающийся кэшированию) и может быть для кого-то экономия в 25% трафика за счет его кэширования не будет столь критична. Для тех кому все же критична, автор предлагает пока использовать цепочку из 2х серверов и в качестве кэша такие сервера как wwwoffle или им подобные, либо ждать появления поддержки кеша в 3proxy :)

Установка 3proxy

# wget http://3proxy.ru/current/3proxy.tgz
# tar -xvzf 3proxy.tgz
# cd 3proxy
# make -f Makefile.unix
# mkdir /usr/local/3proxy
# mkdir /usr/local/3proxy/logs
# mkdir /usr/local/3proxy/stat
# copy 3proxy /usr/local/3proxy
# copy 3proxy.cfg.sample /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

-------------3proxy.cfg-------------
# ВНИМАНИЕ !! не должны быть пробелов
# перед любыми опциями конфигурации !!

# ip адрес DNS сервера провайдера или локального
nserver 127.0.0.1
timeouts 1 5 30 60 180 1800 15 60

# создаем двух пользователей vasia и petia
# и назначаем им пароли 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 0.0.0.0

# ip адрес интерфейса на котором будут приниматься
# запросы от клиентов
internal 172.16.0.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 и
# -n c отключенной NTLM авторизацией)
proxy -p3128 -n

# ограничиваем толшину канала для каждого
# пользователя vasia и petia в 20000 bpsv # а для 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

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


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