Установка proxy-сервера на VDS

В последнее время многие seo-шники столкнулись с проблемой быcтрого «бана» IP адреса при парсинге выдачи поисковых систем. Конечно бан — условно, это всего лишь просьба ввести капчу. Одни из столкнувшиеся с проблемой — пользователи программы yazzle, им в первую очередь и хочется рассказать как можно поднять простой некеширующий прокси-сервер на своём сервере или VDS.

Конечно, можно использовать тяжёлый программный пакет SQUID, который зарекомендовал себя как надёжный кеширующий прокси-сервер, но я предпочту разработку отечественного программиста из Нижнего Новгорода. Да, если кто уже догадался, это будет прокси-сервер 3proxy.

Не смотря на его функциональность (подробнее на официальном сайте 3proxy.ru), нам будет достаточно просто организация HTTP прокси-сервера.

Рассмотрим установку и настройку сервера на примере VDS на базе FreeBSD 6.3 от FirstVDS.

Для начала сделаем нового пользователя VDS, для этого cоздаём в ISPmanager нового юзера, пусть имя ему будет 3proxy.

Подключаемся с помощью putty по ssh (справочник по ssh) к серверу и проходим аунтефикацию.

Далее нам надо скачать, установить, настроить и сделать автоматический запуск 3proxy.

Установка и настройка прокси-сервера

%mkdir 3proxy
%cd 3proxy
%pwd
/home/3proxy/data/3proxy

Далее загружаем исходники последней версии прокси-сервера (на момент написания статьи 0.5.3):

%wget http://3proxy.ru/0.5.3k/3proxy-0.5.3k.tgz
%tar -zxf 3proxy-0.5.3k.tgz
%cd src

Всё что нам надо сделать перед компиляцией, это добавить в конфиг одну строчку, чтобы сервер был анонимным.

%ee proxy.h
Вставить строчку вверху, в блоке определения переменных
#define ANONYMOUS 1

Всё, теперь смело компилируем:

%cd ..
%make -f Makefile.unix

Секунд через 20-30 всё будет готово и можно продолжать.

Теперь создадим файл конфига для нашего прокси-сервера:

%cd src
%ee config.cfg

А в конфиге укажем что для использования прокси-сервера необходимо авторизоваться:

daemon
auth strong
users login:CL:password
proxy -i92.92.92.92 -e92.92.92.92

Где 92.92.92.92 — ваш IP адрес.

Чтобы сохраниться, жмём ctrl+c и вводим exit enter. Я интуитивно в первый раз всё нашёл, хотя и немного другим способом.

Вот и всё, если не терпится, то можно запустить и проверить работоспособность:

%./3proxy config.cfg
%top

Если в списке процессов (команда top или ps -ax | grep 3proxy) есть 3proxy — значит установка и запуск прошли успешно. Пробуем прописать в браузере IP адрес и порт 3128 (стандартный, например изменяется добавлением в конфиге -p8080 к команде proxy для порта 8080) и заходим на страничку http://gogolev.net/tools/ip/, где сервер выдаст вам ваш IP адрес, с которого поступил запрос. Увидели адрес своего VDS? Тогда не надо рвать клочь на голове перечитывая статью.

Настройка автоматического запуска прокси-сервера

Одна из сложностей, которая возникла (лично для меня), это запуск прокси-сервера при старте VDS под правами пользователя, а не рута. Спасибо друзьям, без вашей помощи статья бы не вышла в таком виде.

Для начала подключаемся через ssh к VDS под юзером с правами root.

%cd /usr/local/etc/rc.d/
%ee 3proxy.sh

В файл 3proxy.sh записываем:

#!/bin/sh
cd /home/3proxy/data/3proxy/src/
su 3proxy -c ’./3proxy config.cfg’

Не забывайте в последней строчке поставить ковычки, а то можете потерять полтора часа как я, думая: «какого фига не работает ssh и ftp, но по 80 порту отдаётся правильная информация?»

Сохраняем файл, и добавляем файлу права на выполнение:

%chmod 0555 3proxy.sh

Теперь можно перезагрузить наш VDS:

%reboot

Через минуту опять подключаемся по ssh, и если видим процесс 3proxy командой top или ps -ax | grep 3proxy, то можно считать установку прокси-сервера 3proxy законченной.

Установка прокси-сервера на несколько IP

Первая мысль была, создать в IPSmanager ещё одного пользователя и повторить для него все шаги. Вторая — для того же пользователя сделать копию папки 3proxy cp -r 3proxy 3proxy2 и отредактировать конфиг. Но самый простой способ, добавить в конфиг прокси строчку:

proxy -i93.93.93.93 -e93.93.93.93

Да, да. Готово. Ещё раз перезагрузите VDS и можете начинать работать.

Спасибо что дочитали статью, надеюсь на ваши комментарии, пожелания и замечания.


Желающие помочь с установкой сервера teeworlds-0.4.3 на тот же VDS для домена teeworlds.ru, пишите в аську. Пару суток мучаюсь :)

Кстати, мой хороший друг отжигает. Вот так надо жить, чтобы все говорили: «Яркая у тебя жизнь, чувак!»

А так как недавно был Helloween, смотрим как гугл, яху и другие его отмечали.

Работа не от рута

в самом низу конфига (3proxy.cfg) добавить строчки типа:

chroot /usr/local/jail
setgid 1002
setuid 1015

в этом примере
1002 - ID группы (надо создать группу)
1015 - ID юзера (надо создать юзера)

а в /usr/local/etc/rc.d положить файлик proxy.sh из папки scripts/rc.d/ с исходниками

Отправил Alex_K (не зарегистрирован) (пн., 11/03/2008 - 23:49)
Спасибо :)

Спасибо :)

Отправил GogA (ср., 11/05/2008 - 02:50)
вконтакте

Спасибо за замечательную статью.

Подскажите плиз,в каком направлении думать)) почему по дефолтным настройкам не открывает некоторые сайты(vkontakte.ru например). выдает 502 ошибку.

Отправил kritic (не зарегистрирован) (сб., 11/08/2008 - 13:49)
Даже представить не могу,

Даже представить не могу, интересно самому.

Отправил GogA (сб., 11/08/2008 - 15:42)
А что из портов не поставили,

А что из портов не поставили, 3proxy есть в портах, ставится элементарно, да и обновлять потом проще его ;)

Отправил Гость (не зарегистрирован) (чт., 11/20/2008 - 14:27)
вот-вот, тож подумалось, а

вот-вот, тож подумалось, а чего не из портов то?

Отправил mult (не зарегистрирован) (пт., 11/21/2008 - 04:35)
Слукавлю: так интересней :)

Слукавлю: так интересней :)

Отправил GogA (пт., 11/21/2008 - 21:15)
Anonymity ^_^

Привет. Спасибо за статью - очень помогла, т.к. не хотел ставить к себе на сервер squid - тяжеловесным он мне кажется.
Хочу добавить, что если в конфиге дописать "-n -a" то проксик будет анонимным и не будет показывать HTTP_X_FORWARDED_FOR. Делается это так:
proxy -i92.92.92.92 -e92.92.92.92 -n -a
-n не знаю что такое, в офф манах нет - может и не нужно. А вот -a - это анонимность.

Отправил Lord Alfred (не зарегистрирован) (пт., 11/28/2008 - 00:24)
-n - это не использовать

-n - это не использовать NTLM-авторизацию

Отправил Гость (не зарегистрирован) (чт., 01/15/2009 - 20:18)
Жаль вы про соксы не

Жаль вы про соксы не написали...

Кстати, о вконтакте:
А теперь предположим, что нам нужно по ряду причин запретить доступ на некоторые сайты, например, общеизвестный www.anekdot.ru. Для этого используем команду nsrecord:

nsrecord www.anekdot.ru 127.0.0.3
тем самым перенаправляем любые запросы сайта с анекдотами на локальный адрес. Можно использовать эту команду в более изощренном варианте, например,

nsrecord www.anekdot.ru 87.250.251.11
будет вместо сайта www.anekdot.ru перенаправлять на сайт www.yandex.ru. Вместо яндекса можно было бы сделать перенаправление, к примеру, на корпоративный сайт.
Впрочем, в версии 0.6 появилась возможность более удобно управлять списком доступа на сайты. Для этого можно использовать уже хорошо знакомую нам команду deny с использованием шаблонов, например:

deny * * www.anekdot.ru *

- безусловно запрещает доступ на сайт www.anekdot.ru

deny * * anekdot* *

 запрещает доступ на все сайты, в названии которых встречается anekdot.

Впрочем, продвинутые пользователи могут обойти этот запрет, обращаясь к сайту по его IP или используя анонимные сайты.

У себя я использую целый список шаблонов, возможно, кому-то пригодится:

deny * * *sex*,*porn*,*adult*,*xxx*,*gamepark*,*vagina*,*mpp3*,*seks*,*virgin*,*pipisk*,*pastushka*,*1xuk.ru*,*teens*,*zaycev*,*lubovmorkov*,*mp3*,*bannerbank*,*yadro*,*dosug.nu*,*lesbo*,*lesbian*,*eroti*,*viporg.ru*,*intim*,*erohost*,*eross*,*teenfant*,*nudist*,*pimpserver*,*banner*,*ads.sup.com*,*rb.mail.ru*,*counter.rambler.ru*,*carol.ru*,*video.mail.ru*,*pelotka*,*akadostream*,*media.kino-govno.com*,*odnoklassniki.ru*,*vkontakte.ru*,*zhuki.mail.ru*,*fishki.net*,*dofiga.net*

Чтобы на загромождать конфиг длинными списками, можно использовать команду include и макрос $. Например, предыдущая команда могла бы выглядеть так:
deny * * $c:\3proxy\ban.txt

где файл ban.txt — это текстовый файл, содержащий список запретных ресурсов (через запятую, без пробелов)

либо так:

include c\3proxy\ban¬include.txt

где файл ban_include.txt содержал бы в себе всю строку конфига с запретами.

Желающие могут найти списки бан-листов в интернете и адаптировать к формату конфига 3proxy, благо что ограничений на размер конфига нет. Так же как нет ограничений на файлы, включенные через include. На файлы, включенные через макрос $, существует ограничение в 64 килобайта.

Для удобства дальнейшего пользования конфиг можно разбить на логические разделы и пополнить комментариями. Я это делаю с помощь символа #. Напомню, что любая строка конфига, начинающаяся с пробела или с символа #, воспринимается сервером как комментарий. В нашем случае окончательно "вылизанный" конфиг может выглядеть так (версия 7):

Отправил Lord Alfred (не зарегистрирован) (пт., 11/28/2008 - 01:34)
Спасибо за ценное

Спасибо за ценное дополнение.

В данном случае такой проблемы не возникает, так как данные прокси сервера используются для личных целей и не предназначены для массового использования.

Отправил GogA (пт., 11/28/2008 - 10:48)
спасибо з за объяснекние по deny

У меня стоит UBUNNU и на ней 3proxy 0.6
прописывал там nsrecord www.odnaklassniki.ru www.ya.ru
не работает а вот deny сработало нормально не понимаю почему не работает nsrecord хотя на версии 0.5 работала под windows.

Отправил casper (не зарегистрирован) (пт., 12/19/2008 - 09:38)
Скажите, на сколько прокси

Скажите, на сколько прокси нагрузит сервер? Ведь у VDS ресурсы ограничены. В частности, как много оперативной памяти занимает работающий процесс?

Отправил Гость (не зарегистрирован) (чт., 01/08/2009 - 20:42)
аутентификация

Как отключить аутентификацию? (запрос логина и пароля)

Отправил FoLk (не зарегистрирован) (пн., 03/02/2009 - 17:31)
В конфиге вместо "auth

В конфиге вместо "auth strong" пишите "auth none"

подробней 3proxy.ru/howtor.asp

Отправил GogA (ср., 03/04/2009 - 03:36)
Спасибо за статью, буду

Спасибо за статью, буду рекомендовать :)

Отправил Semen (не зарегистрирован) (сб., 03/14/2009 - 15:16)
Спасибо за статью, сидим на

Спасибо за статью, сидим на работе всем отделом читаем)

Отправил Гость (не зарегистрирован) (пн., 05/04/2009 - 20:09)
> 21:09 На здоровье,

> 21:09

На здоровье, спамеры.

Ссылки вычистил, посмотрим как отомстить вам.

110 тИЦ пр4, продажные ссылки :) ну-ну.

Отправил GogA (вт., 05/05/2009 - 07:25)
Ненадо мы больше не будем

Ненадо мы больше не будем чесно)

Отправил Гость (не зарегистрирован) (вт., 05/05/2009 - 21:48)
GogA ботинок лучше бы

GogA ботинок лучше бы поинтереснее писал чем хрень про тиц и пр и продажные ссылки

Отправил dfsss (не зарегистрирован) (вт., 05/05/2009 - 22:50)
Уважаемый, крестик находится

Уважаемый, крестик находится в углу браузера.

Отправил GogA (ср., 05/06/2009 - 09:20)
У меня VPS стоит на

У меня VPS стоит на Linux
Дошел до момента
%./3proxy config.cfg
%top

мой шелл говорит что нету такой команды и все.

Отправил Гость (не зарегистрирован) (пт., 06/05/2009 - 15:31)
а можно видео по настройки

а можно видео по настройки прокси сервера? по этой статье.

Отправил Гость (не зарегистрирован) (пт., 10/09/2009 - 18:49)
Извините, но и так всё

Извините, но и так всё подробно написано. Если это не смогли повторить, возможно рентабельней будет обратиться к за платной настройкой вдса. Поищите на форумах, предлагают люди такие услуги.

Отправил GogA (пн., 10/19/2009 - 05:20)
Я вот про вдс вообще не

Я вот про вдс вообще не сильно понял. Зачем он нужен? Вот ты разместил на нем несколько сайтов, а дальше все это вместе упало. Да и еще какая заморочка с администрированием..

Отправил Online (не зарегистрирован) (вт., 11/17/2009 - 13:39)
Зачем нужны автомобили? Есть

Зачем нужны автомобили? Есть же велосипеды!

Аналогичное утверждение.

Отправил GogA (ср., 11/18/2009 - 14:32)
Да кст. видео урок был бы

Да кст. видео урок был бы очень полезен! А насч. "обратиться за платной", то хотелось бы самому научиться... хотя все же спасибо! Бум ковыряться! :)

Отправил Dan (не зарегистрирован) (вт., 11/24/2009 - 13:38)

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
КАПЧА
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.
  _      _       ____   _  __      _         
(_) / \ / ___| | |/ / __| | _ _
| | / _ \ | | _ | ' / / _` | | | | |
| | / ___ \ | |_| | | . \ | (_| | | |_| |
|_| /_/ \_\ \____| |_|\_\ \__,_| \__,_|
Введите код, изображенный в стиле ASCII-арт.

rss - подписка

Подпишись на RSS!

Подпишись на RSS!

Друзья сайта

Последние комментарии

Регистрация доменов ru | Конкурс сладкий сеопультенок