3PROXY или HTTP,FTP,SOCKS прокси за 5 минут [2008]
3PROXY (или ЗаразаПрокси) - маленький, очень простой в настройке HTTP,FTP,SOCKS,POP прокси. Данный прокси сервер будет хорош для маленьких и средних предприятий а так же (что по моему самое главное) для начинающих админов. По своему опыту знаю, как начинающие админы пугаются огромного количества настроек штатного Squid и иже с ним, и начинают заваливать глупыми вопросам типа “а что будет если я пропишу вот-так или так”, хотя (опять же мое мнение) если почитать маны и поразбираться пару дней – проще squid не очень много програм. И так начнем.
#cd /usr/ports/net/3proxy/
# make install clean
Собственно с установкой покончено. Пишем свой конфиг для прокси.Предположим у нас внешний IP в интернет 85.85.85.85, Внутренний в локальную сеть 192.168.1.1 и 192.168.5.1, а DNS 192.168.1.2 и 85.85.85.1 (пишу по 2 IP для наглядности).Все прокси будут осбслуживать ТОЛЬКО IP из локальных сетей. # ee /usr/local/etc/3proxy.cfg
#-------------3proxy.cfg-------------
# ВНИМАНИЕ !! не должны быть пробелов
# перед любыми опциями конфигурации !!
# ip адрес DNS сервера провайдера или локального
nserver 192.168.1.2
nserver 85.85.85.1
timeouts 15306018018001560
# лог файл со списком запросов пользователей
# будет создаваться каждый день новый
# D – день H – час W - неделя
log /var/log/3proxy/3proxy.log D
#Зададим формат лог файла (люблю красоту :)
logformat "G%d-%m-%Y %H:%M:%S | %U | %C | %R:%r | %O | %I |%n"
#И добавляем команду rotate для хранения лишь последних 7 файлов
#с логами
rotate 7
#ну и сожмем по желанию
#archiver "/usr/bin/gzip" gzip -9 %F
# внешний интерфейс (через который будут уходить запросы от сервера)
external 85.85.85.85
# ip адрес (а) интерфейсов на которых будут приниматься запросы от
#клиентов
internal 192.168.1.1,192.168.5.1
# устанавливаем тип авторизации по IP
flush
auth iponly
#Для всей сетки с понедельника-пятницу с 8:30-18:00
allow * 192.168.1.0/24 * * * 1-508:30:00-18:00:00
#для отдельных IP с понедельника-субботу с 9:00-17:30
allow * 192.168.5.234,192.168.5.235 * * * 1-609:00:00-17:30:00
proxy
ftppr
socks
#ограничиваем толшину канала для каждого пользователя по IP bps
#(тоже неплохо иногда)
#bandlimin 24000 * 192.168.1.81,192.168.1.55,192.168.5.235
#запускаем сервер от пользователя nobody
#(если в вашей ОС uid и gid пользователя nobody
#будут другими для их определения воспользуйтесь коммандой id nobody)
setgid 65534
setuid 65534
#будем собирать статистику по трафику некоторых IP
counter "/var/log/3proxy/3proxy.3cf" D "/var/log/3proxy/traf"
countin "1/Иванов" M 300 * 192.168.1.246 * * *
countin "2/Петрова" M 300 * 192.168.5.235 * * *
#и наконец последнее!!! В случае изменения настроек, сервер
#перегружать не нужно, он сам мониторит изменения
#monitor "/usr/local/etc/3proxy.users"
monitor "/usr/local/etc/3proxy.cfg"
# ну и для примера перенаправим запросы на sex.ru на yandex.ru
nsrecord sex.ru weather.yandex.ru
Рихтуем скрипт запуска (ну не умеют еще разработчики доводить все до ума!)
# ee /usr/local/etc/rc.d/3proxy
Ищем строку start_cmd="echo \"Starting ${name}.\";
${command} ${threeproxy_flags}"
И меняем на start_cmd="echo \"Starting ${name}.\";
${command} ${threeproxy_flags} &"
Запускаем
#/usr/local/etc/rc.d/3proxy start
Ну и начинаем тренировать свой английский читая маны.
На последок : прокси неплохой,работает стабильно,имеет множество дополнительных функций (если будет кому-то интересно могу дописать их) например : авторизация по логину,админка, логи в форматах для различных анализаторов логов , логи с хранением в БД (к сожалению только через ODBC работает), POP через прокси и т.д.