Настройка анонимного прокси сервера 3proxy

25 Sep 2012 | Автор: dd |

Попросили меня тут люди настроить им прокси сервер под Debian, с которым я особо никогда не работал,  да и не рвался никогда. С проксями я возился последний раз лет десять назад, ибо с того момента как полосы пропускания разрослись достаточно- в проксировании внутри офиса отпала нужда, а все билинги можно поднять на уровне шлюза. Ну а если они мне вдруг нужны под какие то seo’шные задачи, то мне проще купить прокси, чем с ним колупаться.  Но тут вот надо.

Поскольку ничего толком не помню, то решил что в любом случае буду разбираться снова с нуля, так что решил остановиться на еще одном opensourse пакете 3proxy, который в настоящее время является конкурентом squid и nginx, но при этом легковеснее и, как пишут, гораздо проще в настройках.

Что я и решил проверить.

Итак начинаем с установки компилятора:
# apt-get install gcc

Сразу же я получил отличный ответ от системы
E: Unable to locate package gcc
говорящий о том, что система не знает такого пакета в помине, так что говорим ей обновиться:
# apt-get update
и повторяем все сначала.

Затем устанавливаем качалку для файлов
# apt-get install wget
Накатываем обновления, которые нам понадобятся при установке нашего прокси сервера:
# apt-get install –reinstall build-essential

И переходим к установке прокси.

Один из основных недостатков 3proxy в том, что он отсуствует в пакетах деба, поэтому его приходится выкачивать с офф.сайта, но учитывая что он весит около 500кб (еще один +), то это не занимает много времени:
# wget http://3proxy.ru/0.6/3proxy-0.6.tgz
# tar -xvzf 3proxy-0.6.tgz
# cd 3proxy-0.6

так как 3proxy все обвиняют в том, что у него имеются проблемы с анонимностью, включаем перед компиляцией эту галку в файле src/proxy.h
# vi src/proxy.h
и добавляем следующую строку (хотя вроде все работает и без неё)
#define ANONYMOUS 1
после чего собираем пакет
# make -f Makefile.Linux

тут его можно проинсталировать make -f Makefile.Linux install, но у меня что то он не захотел ставиться по-людски, так что скажу откровенно я на него забил и решил пойти напрямки.

Создаем структуру необходимых подпапок для работы прокси сервера:
# mkdir /usr/local/3proxy
# mkdir /usr/local/3proxy/logs
# mkdir /usr/local/3proxy/stat

После этого, находясь в структуре скомилированной папки с прокси сервером, раскидываем файлики по нужным путям:
# cp -Rf ../3proxy-0.6/* /usr/local/3proxy/
# cp ./src/3proxy /usr/local/3proxy/
# cp ./scripts/rc.d/proxy.sh /etc/init.d/3proxy

Создаем конфиг файл 3proxy.cfg в корне родной папки:
# touch /usr/local/3proxy/3proxy.cfg
# chown -R nobody:nogroup /usr/local/3proxy

Редактируем актуальные пути в файле /etc/init.d/3proxy до актуальных и записываем информацию в файл автозагрузки:
# update-rc.d 3proxy defaults

Правим конфиг файл /usr/local/3proxy/3proxy.cfg (его подробный пример можно найти в папке cfg/3proxy.cfg.sample). В моей ситуации мне надо было обеспечить работу прокси серверов на нескольких IP через HTTP прокси, поэтому я в конфиге добавлю комменты, чтобы было понятно что и как, так как в большинстве примеров фигурирует не несколько IP под 3proxy, а классическая топология офисного прокси сервера.

##### /usr/local/3proxy/3proxy.cfg
#!/usr/local/3proxy/3proxy
# вешаем процесс демоном

daemon
# говорим куда класть файл процесса
pidfile /usr/local/3proxy/3proxy.pid
# DNS из /etc/resolv.conf и настройки для него
nserver 8.8.8.8
nscache 65536
timeouts 1 5 30 60 180 1800 15 60
# описываем формат, ротацию лога (30 дней) и чем жать
log /usr/local/3proxy/logs/3proxy.log
rotate 30
logformat “- +_L%t.%. %N.%p %E %U %C:%c %R:%r %O %I %h %T”
archiver gz /usr/bin/gzip %F
# логин, пароль в тексте о чем говорит CL и то что
# использовать аутентификацию по паролю

users USR1:CL:PASS1
users USR2:CL:PASS2
auth strong
# разрешенные пользователи
allow USR1, USR2
# максимальное число одновременных подключений
maxconn 100
# Настраиваем access-листы:
# закрываем работу через loopback

deny * * 127.0.0.1,192.168.1.1
# разрешаем HTTP и HTTPS трафик
allow * * * 80-88,8080-8088 HTTP
allow * * * 443,8443 HTTPS
######## Отсюда идут различия конфига моей схемы ***
# настройка проксирования нескольких IP, порт 33333 (по умолчанию
# идет порт 3128), анонимность прокси, отключаем ntlm-авторизацию

proxy -n -a -i1.1.1.1 -e1.1.1.1 -p33333
proxy -n -a -i2.2.2.2 -e2.2.2.2 -p33333
proxy -n -a -i3.3.3.3 -e3.3.3.3 -p33333
# Если нужны socks, то для каждой строки добавляем дубляж
socks  -i1.1.1.1 -e1.1.1.1 -p33333
socks  -i2.2.2.2 -e2.2.2.2 -p33333
socks  -i3.3.3.3 -e3.3.3.3 -p33333
##############################################

*** Если бы у меня была схема с одним IP, или шлюзом о двух разных IP, то часть конфига бы выглядела следующим образом:
##########################
internal 1.1.1.1
external 1.1.1.1
# запускаем анонимный прокси
proxy -n -a
# Настраиваем access-листы:
# закрываем работу через loopback

deny * * 127.0.0.1,192.168.1.1
# разрешаем HTTP и HTTPS трафик
allow * * * 80-88,8080-8088 HTTP
allow * * * 443,8443 HTTPS
# очищаем access-листы от HTTP проксей
flush
# запускаем socks
socks
##########################

Проверяем конфиг на корректность:
# /usr/local/3proxy/3proxy /usr/local/3proxy/3proxy.cfg

Поскольку никаких ошибок нет, то перегружаем сервер и смотрим как работает
# ps ax | grep proxy
# netstat -an | grep -i listen

после чего проверяем анонимность на www.whatismyip.com и радуемся, так как сайт на грит, что не видит никаких проксей.

VN:F [1.9.21_1169]
Rating: 6.4/10 (7 votes cast)
VN:F [1.9.21_1169]
Rating: 0 (from 2 votes)
Настройка анонимного прокси сервера 3proxy, 6.4 out of 10 based on 7 ratings

Теги: , , ,

Отзывов: 2 на «Настройка анонимного прокси сервера 3proxy»

  1. Автор: Денис на 24 Dec 2013

    Спасибо огромное за ваш мануал. Он реально помог!!!!!!

    [Reply]

    VA:F [1.9.21_1169]
    Rating: 5.0/5 (1 vote cast)
    VA:F [1.9.21_1169]
    Rating: +2 (from 2 votes)
  1. 1 Trackback(s)

  2. 26 May 2014: Установка прокси сервера 3proxy v.0.7 и настройка системы | Одминский блог

Ваш отзыв