Calcweb.ru

Информационный портал
21 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Создаем и настраиваем собственный прокси-сервер

Как создать свой собственный интернет-прокси-сервер в считанные минуты

На прошлой неделе у меня было довольно много проблем в компании, связанных с запрещенными сайтами. В ней использовался обширный каталог «запрещенных сайтов», в котором хранились все сайты, кроме нескольких популярных. По сути, нет доступа к игровым сайтам, нет личной электронной почты и нет Сисадминства.

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

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

Предпосылки

Если мы хотим сделать это, то вот что нам нужно:

  • Веб-хостинг

Теоретически работать будет на любом веб-хостинге, даже на таком, как старый компьютер в вашем подвале или даже бесплатный онлайн-хостинг.

  • PHP5 или выше c функцией cURL

Найдите это на веб-сайте своего веб-хостинга. Если это платный хостинг, вы можете почти рассчитывать на это. Особенно cURL — это функция, которая будет отключена на большинстве бесплатных веб-серверов.

  • Разрешение на создание прокси-сервера

Да, это так. Некоторые веб-хостинги явно запретят вам создавать прокси-сервер (или чат-комнату, если на то пошло) в их содержании. И наверняка они узнают об этом.

1. Загрузите и установите GlypeProxy

GlypeProxy — это бесплатный, автономный PHP-скрипт. Это означает, что он легкий и невероятно прост в настройке. Вы можете скачать его с репозитория на GitHub (https://github.com/k1995/glype).

Затем загрузите файлы в подкаталог на вашем веб-сервере. Если вы видите папку с именем «www» или называющуюся так после папки вашего доменного имени (например, domain.com), то создайте там подпапку. Вам нужно избегать использования слова «прокси», потому что некоторые компании распознают это. Вместо этого используйте «web» или «surf».

Существует несколько способов загрузки файлов. Если вы уже знаете это, перейдите к следующему абзацу. Здесь они отсортированы от степени усилий.

  • Загрузка и распаковка ZIP

Посмотрите в менеджере файлов опции «unpack (распаковать)» или «extract (извлечь)». Затем вы можете загрузить его за один прием. Это поддерживается не везде.

  • Доступ к FTP

Используйте FTP-клиент (например, FileZilla) для FTP доступа к вашему веб-хосту и перенесите туда все файлы. Поддерживается многими хостингами.

  • Загрузка вручную

Вам действительно не захочется этого делать — вы точно уверены, что у вас нет альтернатив выше? Последним решением будет вручную загрузить все файлы и структуры папок. Или начните искать другого хостера — это может быть не такая плохая идея.

2. Готово к использованию

Нет никакой реальной настройки. Просто введите в браузере каталог, в который будут помещены все эти файлы (например, domain.com/surf) и GlypeProxy. Если вам не нравится логотип, вам придется заменить его вручную. Но если вы хотите использовать прокси-сервер для личного использования, некоторый небольшой брендинг не имеет значения.

Создание прокси-сервера для просмотра веб-страниц

Создание прокси-сервера для просмотра веб-страниц

Пользователи могут вводить любой URL-адрес и, после расширения опций, выбрать кодирование URL-адреса, страницы, разрешить куки-файлы, скрипты и объекты. Кодирование страницы может помочь вам получить доступ к некоторым сайтам, к которым все еще не удается получить доступ, но иногда может привести к повреждению веб-страницы.

3. Настройки администратора

Хотя Glype — мощный прокси-скрипт, инструменты администрирования, очевидно, являются основой поддержки. Возможно, вы этого не знаете, но многие инструменты онлайн-прокси работают на Glype, как и тот, который вы только что создали. Настройки администратора оставляют место не только для настройки, но и для улучшения. Вы можете назначить специальные коды для проблемных веб-сайтов и изменить списки пользовательских агентов и прокси.

Создание прокси-сервера для просмотра веб-страниц

Создание прокси-сервера для просмотра веб-страниц

Наиболее полезными для начинающих пользователей будут инструменты кэширования (на фото выше), журналы и черные списки. Инструменты кэширования могут помочь вам улучшить скорость просмотра, сохранив некоторые файлы со всех или на некоторые из уже посещенных веб-сайтов. Журналы отключены по умолчанию, но могут иметь законное основание в будущем, в зависимости от того, кто использует ваш прокси-сервер. Всегда указывайте, что вы храните эти журналы. Наконец, черные списки позволят вам блокировать (все, кроме) несколько сайтов или пользователей.

Чтобы получить доступ к панели администратора, введите в браузере admin.php на своем веб-сервере (например, domain.com/surf/admin.php).

Если GlypeProxy кажется вам слишком примитивным, то по этой ссылке — https://proxy-sale.com/amerikanskie-proksi.html можно купить американские прокси, которые можно использовать для различных целей, будь то парсинг, соцсети, игры, или просто веб-серфинг.

Вы настраиваете свой собственный прокси-сервер? Есть ли у вас какие-либо другие советы или опыт по этому вопросу? Дайте нам знать в комментариях ниже!

Пишем HTTP proxy сервер с плагинами

imageОдно время всплыла тема, что в одной из онлайн-игр появилась такая довольно досадная штука, как каптча. Само по себе, отвлекаться от игры для ввода каптчи может обернуться не слишком хорошими последствиями, особенно, если вводишь её не с первого раза, могут и враги насолить. Но не в этом соль. Особенно плоха вещь для тех, кто использует локальных ботов. Те то, маленькие, спотыкаются об каптчу, и за это игра мнгновенно их штрафует потерей юнитов и ресурсов. Неприятная штука, что говорить.

Читайте так же:
Red Star OS 3.0 – национальная Северокорейская операционная система

Итак, задача:
Хочется, чтобы каптчу вводить не приходилось. Хоть если играешь сам, хоть если играет за тебя бот, если ты спишь.
Дополнительное условие: 40 часов времени (ибо паника на корабле).
Желательное условие: установочный файл под Windows.
Ещё одно желательное условие: результат должен занимать не более мегабайта.

Скажу сразу, что я не игроман, и даже наоборот, являюсь некоторым противником онлайн игр, и для внесения в эту отрасль дополнительной энтропии и решил взяться за это дело. Дело, возможно, могло принести определённую прибыль на волне появления каптчи и паники, связанной с этим, но не принесло по определённым причинам.

Итак, что же делать?

Попытка 1

Написать системную тулзу, которая бы перехватывала HTTP запросы и ответы от всёх установленных программ, и фильтровала бы те ответы, на которые бы требовалось ввести каптчу, вводя её самостоятельно. Над программой, которая в том числе должна была решать и эту задачу корпели примерно полгода два белорусских программиста, меняя платформу с C на C#, и потом на Java, и мирясь с тем, что им может понадобится установленный на машину OpenSSL. Задача каждый раз обрастала ненужными подробностями. Ну, в целом, не вышло.

Попытка 2: Сам, всё сам

Вполне понятно, что способов не так много, и выбор встал только между SOCKS прокси и HTTP прокси. Через некоторое время стало понятно, что SOCKS прокси поддерживают далеко не все пользовательские приложения, и выбор стал однозначным.

Выбор платформы

Выбор был не сложен, особенно учитывая попытку 1. C и C# были быстро отметены, учитывая полное отсутствие опыта. Были выявлены следующие, богатые необходимыми библиотеками, платформы:

Java Тяжело предположить, что для установки такой маленькой утилитки пользователи бы захотели устанавливать JVM, весящий страшно сказать сколько десятков мегабайт. Java отвалилась.

Python Как известно, работает везде и всё включено (batteries included). Весит 7Мб. По современным меркам, конечно, немного, но всё же хотелось компактнее. Остался вопрос, как этот инсталлятор внедрить в инсталлятор моей утилиты. Не знаю, как это делается у питоновских приложений, возможно, намного проще, но инсталлятор в инсталляторе я как-то раз уже делал и больше не хочу.

Ruby На момент начала моих поисков отсутствовал одношаговый инсталлятор под винду. Целиком и полностью. Сейчас есть, подразумевает установку MinGW, MSYS и прочего, при установке могущего испугать юзера. Вес 7Мб.
Про инсталлятор в инсталляторе вопрос остался.

Lua Очень давний и популярный среди скриптовщиков С++ игр язык. Вялое community, разрозненные библиотеки. Вес кастомной сборки VM в нужными библиотеками — всего 800Кб. Инсталлятор не предоставляется, есть набор exe файлов, которым в качестве параметра передаётся lua скрипт для его запуска. То, что нужно, так ещё и откомпилено под Win, MacOS, Linux, каждое из них в версиях 32 и 64 отдельно. То, что надо.

Итак, я взялся за изучение Lua (сбылось новогоднее пожелание, я изучил новый язык программирования).
Язык обладает чудесными свойствами, такими как:
— sandboxing (в ruby был только патч для версии 1.8.5): позволяет запускать сторонний код, ограничивая ему окружение;
— coroutines (типа ruby fibers из 1.9): позволяет сделать очень легковесную кооперативную многозадачность;
— очень простые (точнее, простая — есть только ассоциативный массив) структура данных, которой, как оказалось, хватает, для выполнения большинства задач по обработке данных;
… ещё много всего, тяжко так в одном посте.

Проще всего было сделать такую систему в виде фильтрующего запросы и ответы HTTP прокси сервера, что и было решено сделать (от добра добра не добра).

Идея проста: повесить сервер TCP, слушать, что клиент просит, разбирать заголовки HTTP, искать HOST, убирать HTTP header «Proxy-Connection», отсылать запрос тому, кому он предназначался, получать ответ, направлять клиенту и т.п.

Ответ сервера нужно фильтровать, и делать это можно, если сервер не применяет HTTPS, а он по счастью его не применяет. Сделать это оказалось довольно просто, достаточным оказалось написать сокращённый до 190 строк Lua аналог mechanize для Ruby, который делает с заголовками и телом запроса что ни взбредёт в голову, позволяя писать какие хочется фильтры для HTTP запросов.

Ну вот, всё стало работать параллельно, а по скорости лишь незаметно отставать от того, как это работает без прокси.

Как же велико было моё удивление, когда я получил от сервера страницу с (в том числе) заголовками:
Content-Encoding: gzip
Transfer-Encoding: chunked
и собственно полные кракозябры в качестве тела ответа.

Первая мысль была отключить в запросе Accept-Encoding, чтобы сервер не пытался паковать данные, и переделать HTTP 1.1 в HTTP 1.0, чтобы не посылало «чанками». Но подумал об падении скорости и увеличении трафика, и сжалился над пользователями.
Вышло так:
if headers(pipe, target)[‘Transfer-Encoding’] == ‘chunked’ then
target.body = dechunk(target.body)
end

function dechunk(chunkie)
local chunk_size
local chunk
local chunks = <>
chunkie, chunk_size = readline(chunkie)

while chunk_size and tonumber(chunk_size, 16) > 0 do
chunkie, chunk = readbytes(chunkie, tonumber(chunk_size, 16))

table.insert(chunks, chunk)
chunkie, chunk_size = readline(chunkie)
if not chunk_size or chunk_size == » then — sometimes there’s a crlf, sometimes not
chunkie, chunk_size = readline(chunkie)
end
end

return table.concat(chunks)
end

Читайте так же:
Лучшие приложения для чтения книг на Android

Ушёл читать матчасть. Слава богу, по этим пунктам документации порядочно.
Склеиваем «чанки», получаем gzip файл (иногда deflate, но мне не встречался пока). Распаковываем (спасибо David Manura за библиотеку).
Распаковка вышла ещё проще:
if headers(pipe, target)[‘Content-Encoding’] == ‘gzip’ and #target.body > 0 then
local decoded = <>
gzip.gunzip
target.body = table.concat(decoded)
end

Осталось немного
— сделать HTTPS-туннелирование для HTTPS сайтов (слава богу, OpenSSL бандлить не надо, просто данные прозрачно передавать туда-сюда):
if request.method() == ‘CONNECT’ then
local sent_to_server, err = client.send(«HTTP/1.0 200 Connection establishedrnProxy-agent: BotHQ-Agent/1.2rnrn»)
print(‘https transparent connection’)
https(client, server)
return
end

local function https(client, server)
close_callback = function()
client.close()
server.close()
end

client.receive_subscribe(function(data)
server.send(data)
end, close_callback)

server.receive_subscribe(function(data)
client.send(data)
end, close_callback)
end

— положить в инсталлятор:
В целом приключения с запуском 7zip sfx на Heroku стоят отдельного поста. Радость победы затмевает любые сложные моменты разработки.

Ну что же, не знаю, как вам, а мне было интересно и увлекательно этим заниматься. Не жалею потраченного времени.

В итоге:
Сам прокси сервер на 71 строку здесь.
Асинхронная библиотека TCP-сервер-клиент на 272 строки тут.
Некий аналог HTTP клиента на 190 строк.
Фильтр для разгадывания каптчи на 150 строк тут.
Установочный файл размером менее мегабайта.

Как сделать свой прокси сервер на виртуальном хостинге?

С собственным прокси-сервером вам не страшны никакие блокировки в интернете. По очевидным причинам, такой прокси не подходит для анонимности, но он вполне сможет удовлетворять потребности, например, для обхода блокировок сайтов, либо использоваться в качестве дополнительного IP адреса при доступе к сервису, количество запросов к которому с одного IP ограничено.

Proxy позволяет перенаправлять трафик с вашего компьютера на сервер. Например, вы хотите открыть некий сайт через прокси. Тогда ваш компьютер обращается к прокси, прокси подключается к сайту, получает его содержимое и перенаправляет его на ваш компьютер. Таким образом, сайт видит внешний IP прокси-сервера, а не вашего компьютера, а если сайт заблокирован, например, Роскомнадзором или президентом Украины, то можно сделать прокси-сервер в другой стране, в которой нужные вам ресурсы не заблокированы, и тем самым получить к ним доступ в обход блокировок. Главное, чтобы из вашей страны не был заблокирован сам прокси-сервер.

Специально платить за виртуальный хостинг ради прокси не имеет смысла — тогда уж проще арендовать самый дешёвый VPS (виртуальный частный сервер) и настроить на нём VPN — это будет более стабильное и более безопасное соединение, чем прокси на виртуальном хостинге. Тем не менее если вы веб-мастер и всё равно каждый месяц платите за хостинг, то, если есть потребность, можно заодно настроить и прокси.

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

Благодаря хостинговым услугам, сайт постоянно присутствует в интернете. При этом имеется возможность выбрать:

  • хостинг виртуальный. Он относится к наиболее дешевой услуге и рекомендуется новичкам;
  • VPS сервер. Он же виртуальный сервер. Эта услуга как бы промежуточная после обычного хостинга и до аренды сервера. На такой сервер переводятся проекты с большой посещаемостью;

Нам понадобиться доступ в консоль (SSH), который в настоящее время предоставляется на многих современных хостингах — иногда доступ в консоль доступен по умолчанию, иногда предоставляется по запросу. Иногда это полноценный сервер SSH, иногда это эмулятор SSH с веб интерфейсом — нам подойдёт любой вариант, большой разницы это не играет (хотя с полноценным SSH будет более стабильная связь).

Настройка хостинга под прокси

1. Проверка и установка ncat

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

На многих серверах она доступна по умолчанию

В случае отсутствия легко установить (имеются официальные бинарные файлы для популярных дистрибутивов Linux, то есть не нужно компилировать самому)

Эта программа хорошо мне знакома (кстати, рекомендую соответствующую статью «Как пользоваться netcat (nc), ncat»)

Итак, начнём с проверки, имеется ли на хостинге программа ncat. Для этого откройте консоль и выполните там:

Если будет выведено что-то вроде:

Значит программа установлена по умолчанию и можно сразу переходить к следующему пункту. Если будет сообщение, что программа не найдена, значит нужно начать с установки.

Обратите внимание: для данной инструкции НЕ подходят аналоги вроде netcat и nc.

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

/bin, чтобы запускать по имени файла. Для прослушивания портов начиная с номера 1024 и более высоких, прав суперпользователя также не требуется. То есть для всех операций нам хватит наших обычных ограниченных прав клиента Shared хостинга.

Нам нужно начать с того, чтобы определить, на каком дистрибутиве Linux работает хостинг, чтобы знать, какой пакет использовать.

Читайте так же:
Windows File Recovery — восстановление удаленных данных

Если хостинг работает на Red Hat Enterprise Linux (RHEL), Fedora, CentOS, Suse, Mandrake, Yellow Dog и их производных, то будем использовать официальный пакет RPM.

Если хостинг работает на Debian, Ubuntu и их производных то… всё равно будет использовать пакет RPM, так как пакет .deb отсутствует. Но нам нужжно будет сделать дополнительное действие.

Узнать какой используется дистрибутив Linux можно командой:

Ещё один надёжный вариант — это проверить, какая из программ присутствует в системе: yum или apt. Это можно сделать, например, с помощью команды which:

значит в системе присутствует yum, которая является менеджером пакетов RPM.

А если команда отсутствует как в следующем случае:

то будет показано примерно следующее:

/usr/bin/which: no apt in (/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/host900000/bin)

Это означает, что apt отсутствует в системе, значит это не Debian или производный дистрибутив.

Создайте папку bin и перейдите в неё:

Теперь скачиваем установочный пакет Ncat:

wget -O ncat.rpm `curl -s ‘https://nmap.org/download.html’ | grep -E -o ‘https://nmap.org/dist/ncat[0-9.-]+.x86_64.rpm’ | head -n 1`

Если у вас Red Hat Enterprise Linux (RHEL), Fedora, CentOS, Suse и их производные, то просто распакуйте скаченный файл:

rpm2cpio ncat.rpm | cpio -idv

Перемещаем исполнимый файл и делаем очистку:

Если у вас Debian, Ubuntu и их производны, то вам также достаточно распаковать скаченный файл. Проблема в том, что по умолчанию пакет rpm2cpio может быть не установлен и поэтому нужно выбрать другой вариант. Файлы .rpm можно распаковать различными способами, но, скорее всего, вам придётся это сделать на своём домашнем компьютере и выгрузите файл (нужен всего лишь один файл из распакованного пакета: ./usr/bin/ncat) на хостинг. На своём компьютере с Linux (Debian, Ubuntu, Kali Linux, Linux Mint) вы можете сделать распаковку установив пакет rpm2cpio:

sudo apt install rpm2cpio

rpm2cpio ncat.rpm | cpio -idv

Также распаковать можно используя архиватор 7z или программу alien.

2. Запуск прокси

Если программа Ncat установлена у вашего хостера и вы пропустили первый этап, то создайте папку bin и перейдите в неё:

Сделайте тестовый запуск прокси и проверьте его работоспособность:

ncat -l ПОРТ –proxy-type http

В предыдущей команде замените ПОРТ на желаемое значение. Дополнительно используйте следующие опции чтобы посторонние лица не могли воспользоваться вашим прокси:

–allow Разрешить подключаться к Ncat только заданному хосту

–allowfile Файл со списком хостов, разрешённым для подключения к Ncat

–deny Запретить указанным хостам подключаться к Ncat

–denyfile Файл со списком хостов, кому запрещено подключаться к Ncat

Не нужно надеяться, что никто не наткнётся на ваш прокси — обязательно выберите способ закрыть доступ от посторонних. Если у вас постоянный IP или ваш IP всегда в определённом диапазоне, то ограничьте доступ этим диапазоном. Либо установите сложные логин и пароль.

Когда вы составите команду запуска ncat, настроите ограничения от посторонних и всё проверите, то запустите её следующим образом:

К примеру, моя команда запуска следующая:

ncat –allow IP -l ПОРТ –proxy-type http

Тогда мне нужно запустить её так:

nohup ncat –allow IP -l ПОРТ –proxy-type http &

Эта конструкция используется для того, чтобы команда не завершала работу даже после закрытия окна консоли.

Если вдруг понадобиться остановить запущенную таким образом команду (а CTRL+c в данном случае не поможет), то это можно сделать узнав её PID, с помощью, например:

test=`ps -A -f`; echo «$test» | grep -E ‘ncat’

Когда получите PID данного процесса, то закрыть его можно так:

Добавление в Cron задания для проверки работы прокси и запуск прокси в случае остановки

В полноценном SSH запущенный показанным способом процесс должно оставаться постоянно работающим. Но, как я уже сказал, у моего хостера в качестве SSH используется какой-то эмулятор SSH с веб интерфейсом, поэтому в моём случае после примерно 20 минут процесс ncat завершает работу.

Эту ситуацию можно исправить добавив в Cron соответствующее задание.

Для этого в текущей папке

/bin создайте файл checkProxy.sh и скопируйте в него примерно следующее:

Обратите внимание на часть ncat –allow IP -l PORT –proxy-type http — вам нужно отредактировать её в соответствии с вашей командой запуска прокси.

Данный скрипт проверяет, запущен ли уже процесс ncat, если он не запущен, то делается запуск; если запущен, то ничего не делается.

Добавьте разрешение на выполнение:

Теперь нам нужно узнать абсолютный путь до этого файла:

readlink -e checkProxy.sh

/home/host000000/bin/checkProxy.sh

Теперь в панели управления хостингом переходим во вкладку Cron и добавляем новую запись:

Запись должна быть следующего вида:

К примеру в моём случае:

Вместо вывода

Настроенный таким образом прокси даже в случае непредвиденного завершения работы будет автоматически перезапущен не более чем в течение минуты.

Напомню, что Ncat поддерживает в качестве прокси сервера только HTTP прокси. Вы можете запускать команду ncat без nohup и & (то есть без отделения её от терминала), но зато с опциями -vvv для увеличения вербальности. Таким образом вы сможете анализировать HTTP запросы. Кстати, для этого ненужен хостинг или сервер — это можно делать и на локальном компьютере, в одной консоли запускаем прокси:

ncat -vvv -l 34567 –proxy-type http

Создаем и настраиваем собственный прокси-сервер

Использование VPN является действенным и надежным способом обхода региональных блокировок, он настолько эффективен, что позволяет преодолевать ограничения даже великого китайского фаервола, считающегося одним из самых продвинутых инструментов фильтрации контента. Тем же целям служит и VPS или виртуальный сервер, только вот в отличие от VPN, он не получил такого широкого распространения среди рядовых пользователей.

Читайте так же:
Как включить или отключить боковую панель в Google Chrome

Причина тому очень проста, вы сами всё поймете, когда уясните себе разницу между этими двумя технологиями. По сути, VPN и VPS это одно и то же, оба они используют промежуточный сервер со своим IP-адресом, но в VPN применяется шифрование трафика, а в прокси нет. Использование VPN более безопасно, но это не единственное его преимущество, — дополнительное шифрование пакетов позволяет противодействовать даже такой технологии фильтрации как DPI.

Впрочем, сбрасывать VPS со счетов тоже не стоит. Если вы не нуждаетесь в шифровании трафика и хотите изменить IP-адрес только для конкретных программ, можете смело юзать прокси, причем будет лучше всего, если станете использовать свой собственный виртуальный прокси сервер.

Купить услугу у прокси-провайдеров, главное, чтобы сервер располагался в стране отличной от той, в которой действуют блокировки.

Примечание: цена в месяц на VPS для частных пользовательских нужд составляет в пределах от 2 до 5 долларов США.

Такие прокси-сервера нередко используются для поднятия полноценного VPN, но в данном примере речь идет о выделенном IP, который вы станете использовать для обхода блокировок и который будет указан в письме, переданном вам предоставившим услугу провайдером. В этом же письме вам будут переданы логин и пароль для подключения к серверу. Также вам понадобится специальная программа-клиент, с помощью которой вы станете подключаться к серверу. Называется она Putty.

Установив и запустив утилиту, в разделе настроек Session укажите IP-адрес, выданный вам прокси провайдером.

Putty

Затем перейдите к настройкам SSH -> Tunnels и укажите в порт (Source Port) 3128. Включите радиокнопки Auto и Dynamic, нажмите кнопку «Add».

SSH

Переключитесь в раздел Connection и задайте время соединения с сервером не менее 60 секунд. Нажмите «Open».

Connection

Введите полученные в письме логин и пароль и соединитесь с сервером.

Console

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

Например, в Google Chrome необходимо будет зайти в настройки Система -> Настройки прокси-сервера.

Google Chrome

В открывшемся окне свойств интернета включите автоопределение параметров подключения и использование прокси-сервера для локальных подключений. Нажмите «Дополнительно».

Свойства - Интернет

В поле Socks в качестве адреса прокси-сервера вбейте localhost, а порт укажите 3128.

Параметры прокси-сервера

Примерно так же настраивается прокси и в других программах его поддерживающих. Localhost — это адрес хоста, его дает Putty, 3128 — используемый в ней порт.

Что лучше, VPN или VPS

Поскольку мы затронули тему VPS, у читателей может возникнуть вопрос так что же всё таки лучше, готовый VPN или выделенный прокси-сервер? Однозначно ответить на этот вопрос не так просто. Используя выделенный VPS, вы знаете какая информация хранится на вашем сервере, с другой стороны передаваемый трафик не шифруется, что создает угрозу безопасности.

Использование VPN как готового продукта обеспечивает надежное шифрование, но при этом вы не контролируете сервера, через которые передается трафик. По идее, наилучшим решением было бы совместное использование обеих этих технологий, то есть поднятие собственного VPN на базе VPS, если только техническая реализация окажется под силу юзеру, решившему воспользоваться всеми преимуществами такого тандема.

Как создать прокси сервер

Вам нужен собственный прокси сервер? Вы не знакомы с Linux? Тогда эта статья для вас. Выполняя пошагово действия описанные ниже, вы сможете самостоятельно создать элитный прокси сервер (не определяется различными сервисами как прокси и скрывает ваш реальный IP), работающий на HTTP/HTTPS или SOCKS5 протоколах с авторизацией. Он просто незаменим, если имеются повышенные требования к качеству прокси. На выделенном вам IP будете только вы, а не ещё куча других пользователей, что отразится в конечном счете на качестве и стабильности. Даже так называемые «приватные прокси» не всегда могут быть приватными, вы не сможете проверить, сколько людей в реальности им пользуются. Учитывая сэкономленные деньги, ваши расходы составят только аренду VPS (от 5 Евро в мес.) и доп. IP (от 1 Евро) если потребуются, что сравнимо с ценой «приватных прокси».

Итак, для начала нам нужен VPS (виртуальный выделенный сервер) желательно с KVM виртуализацией, т.к. на других типах виртуализации создание прокси часто запрещено и установленной операционной системой CentOS 7. Многие хостинги вообще запрещают создание прокси, поэтому, перед заказом VPS уточните этот нюанс у тех. поддержки. Пример подходящего московского хостинга. Имеют сервера в России (Москва), Швейцарии и Великобритании. Аренда VPS стоит от 5 Евро, доп. IP стоит 1 Евро, можно подключить до 32 доп. IP на один сервер. Или вариант, имеют сервера на Украине, в Болгарии, Нидерландах и США. Сервер от 5 Евро. Их тех. поддержка произвела хорошее впечатление. Эти два примера хостингов подобраны так, что страны расположения их серверов не повторяются, выбор за вами.

Читайте так же:
Опросы за робуксы

Получив данные доступа к заказанному серверу, приступаем к работе.

1. Подключаемся к серверу по ssh. Сделать это можно через программу PuTTY. В поле «Host name» вводите IP вашего сервера, порт оставляете по умолчанию 22 если не изменили его.

При попытке входа ваш браузер может выдать сообщение, что-то вроде «Это соединение является недоверенным…», игнорируем его, добавляем в исключения и входим. После входа появится окно с командной строкой. Вводите логин и пароль данные вам. Обратите внимание, при вводе пароля он не отображается, т.е. как будто ничего не происходит.

После ввода нажав <ENTER>, вы увидите либо сообщение «Access denied», значит пароль введён не правильно или ваш логин в скобках подобно как на скрине.

2. Устанавливаем редактор nano:

3. Инсталируем библиотеку gcc необходимую для компиляции:

4. Загружаем 3proxy. Данную программу мы и будем использовать для создания прокси сервера. Версия 3proxy может измениться, укажите в строке ниже актуальную. (Актуально на 29.09.2018)

5. Разархивируем скачанный архив командой:

6. Переходим в папку с распакованными файлами:

Во время компиляции могут появляться следующие ошибки: «3proxy.c:1103: warning: pointer targets in passing…».

Ошибки при компиляции, кроме fatal, не страшны.

8. Создаем папки:

*Набрав и выполнив первую строку из списка ниже, не спешите печатать новую заново, досточно нажать стрелку «Вверх» на клавиатуре и будет набрана последняя команда. Допишите недостающее и всё.

mkdir /usr/local/etc/3proxy

mkdir /usr/local/etc/3proxy/bin

mkdir /usr/local/etc/3proxy/logs

mkdir /usr/local/etc/3proxy/

9. Переносим исполняемый файл:

10. Переносим файл для автозапуска:

11. Записываем информацию в файл автозагрузки:

12. Создаем новый конфигурационный файл:

13. Выставляем права:

chown -R nobody:nobody /usr/local/etc/3proxy

14. Переходим в папку:

15. Входим в файл который хотим редактировать:

16. Настраиваем 3proxy.cfg. Вариантов его настройки масса, ниже приведём относительно простой вариант соотвествующий нашим требованиям описанным в начале статьи.

daemon

#logs and shelf life

log /var/log/3proxy.log Drotate 3

nserver 8.8.8.8

nserver 8.8.4.4

nscache 65536

pidfile /usr/local/etc/3proxy/3proxy.pid

#user and pass

users login:CL:pas

auth strong

flush

allow login

maxconn 200

proxy -n -p7459 -i111.111.111.111 -e111.111.111.111

proxy -n -p7459 -i222.222.222.222 -e222.222.222.222

socks -p2233 -i111.111.111.111 -e111.111.111.111

socks -p2233 -i222.222.222.222 -e222.222.222.222

Вставляем вместо «login» и «pas» ваши логин и пароль которые вы будете использовать при авторизации. Далее вместо едениц вписываете ваш IP, если у вас будет несколько IP — копируете эти строки и в каждой ставите новые IP, -p — номер порта, он тоже меняется на ваше усмотрение. В данной конфигурации используется 2 IP для работы по HTTP/HTTPS и SOCKS протоколам, если не нужен SOCKS — не прописывайте последние строки начинающиеся с socks. Сохраняем и выходим из редактора нажатием CTRL+X и подтверждаем изменения.

17. Отключаем фаервол, если на сервере нет ничего кроме прокси и он явно не нужен.

Если нужен, то можно добавть нужные нам порты в исключение.

iptables -I INPUT -p tcp —dport 7459 -m e —e NEW -j ACCEPT

iptables -I INPUT -p tcp —dport 2233 -m e —e NEW -j ACCEPT

service iptables save

iptables -A INPUT -p tcp -m conntrack —cte NEW -m multiport —dports 7459 -j ACCEPT

iptables -A INPUT -p tcp -m conntrack —cte NEW -m multiport —dports 2233 -j ACCEPT

service iptables save

Либо вручную прописываем эти строки в /etc/sysconfig/iptables и перезагружаем iptables

Вместо «7459» и «2233» вписываете ваши порты.

18. Если у вас более 1 IP, их нужно прописать в систему:

ifconfig eth0:1 inet 222.222.222.222 netmask 255.255.255.0

Где 222.222.222.222 ваш доп. IP. Если IP адресов больше, ещё кроме IP каждый раз меняйте значение eth0:1 на eth0:2, eth0:3 и т.д.

19. Запускаем 3proxy:

Поздравляем! Теперь у вас есть свой элитный прокси сервер. Возможно, что после запуска может появиться сообщение как на скрине ниже — не обращайте внимание.

P.S. Недавно снова потребовался прокси сервер, попытался его поднять по своей же статье и… не получилось. Статье 4 года, за это время поменял хостинг, а там видимо свои нюансы. Если кратко, они используют внутренний IP отличный от внешнего, хотя это и предусмотрено в файле конфигурации сервера, но не работало. Устанавливалось соеденение, происходила авторизация, а дальше ошибка. Сервер на CentOS 7, версия 3proxy 0.8.12. Если у вас похожая проблема — попробуйте такой вот конфиг (3proxy.cfg):

daemon

log /usr/local/etc/3proxy/logs/3proxy.log Drotate 3

pidfile /usr/local/etc/3proxy/3proxy.pid

nserver 8.8.8.8

nserver 8.8.4.4

nscache 65536

users login:CL:pas

auth strong

socks -p1234 -i111.111.111.111 -e111.111.111.111

Если вам нужен прокси (в данном случае socks 5 с авторизацией) без заморочек и лишних настроек — попробуйте этот конфиг, либо замените socks на proxy если нужно, главное — не указывайте IP. Не забудьте заменить логин и пароль на свои, ну и порт само собой. При попытке запустить прокси выдало ошибку о недостаточных правах. С помощью chmod нашел нужный файл и поставил права немного выше 644 для владельца и группы, этого оказалось достаточно — запустилось.

голоса
Рейтинг статьи
Ссылка на основную публикацию