Tinyproxy - установка и настройка прокси-сервера.

tinyproxy

Статья описывает установку и настройку прокси-сервера Tinyproxy для операционной системы Ubuntu Server 16.04.

Tinyproxy - HTTP/HTTPS прокси-сервер имеющий небольшой размер и потребляющий мало системных ресурсов, что позволяет ему работать на слабых конфигурациях без заметного влияния на производительность. А метод CONNECT позволяет передавать защищенные HTTPS-соединения.

Я полагаю что у вас уже есть VPS/VDS сервер расположенный за рубежом или вы его вот-вот заведете. Если у вас совсем туго с финансами, то есть вариант за 1 евро в месяц, но с лимитированным в 2 ТБ месячным объемом трафика (ссылку не даю, ибо там нет партнерки, а за бесплатно рекламу не делаю, кто гуглит - тот всегда найдет).

Установка Tinyproxy

Чтобы установить Tinyproxy достаточно выполнить следующую команду.

Настройка Tinyproxy

Чтобы настроить прокси-сервер нужно отредактировать файл tinyproxy.conf, который располагается в каталоге /etc.

Стоит обратить внимание на следующие директивы.

  • Port - порт на котором работает прокси-сервер. По умолчанию используется 8888 порт. Можно изменить на любой другой.
  • ConnectPort - данная директива определяет использование метода CONNECT позволяющего передавать зашифрованные HTTPS-соединения. По умолчанию Tinyproxy настроен на прослушивание двух портов по методу CONNECT - 443 и 563. Если выставить значение данных директив в 0 или закомментировать их, то Tinyproxy не сможет подключаться к HTTPS сайтам.
  • Listen - по умолчанию закомментирована/отключена. Listen используется для указания сетевого интерфейса, с использованием которого будет работать прокси-сервер, если на машине несколько сетевых интерфейсов и каждый из них имеет свой ip-адрес.
  • Allow - разрешает доступ к прокси-серверу. По умолчанию разрешены подключения на только localhost (Allow 127.0.0.1). Чтобы разрешить подключение к серверу нужно добавить свой ip-адрес/подсеть или ip-адрес/подсеть того человека, которому вы хотите дать доступ на сервер. Если вы хотите разрешить доступ всем подряд, то нужно добавить Allow 0.0.0.0/0 (категорически не стоит этого делать).
  • Timeout - определяет временной отрезок, по истечении которого неактивное соединение будет закрыто. Значение по умолчанию равно 600 секунд, можно уменьшить до 300 (если у вас хороший канал).
  • MaxClients - определяет максимальное количество одновременно подключенных клиентов. Если сервер используется в частных целях (не публичный), то количество можно уменьшить, например до 20.
  • MinSpareServers - минимальное количество процессов. Если количество процессов меньше минимального значения, то будут созданы новые. По умолчанию 5.
  • MaxSpareServers - максимальное количество процессов. Если количество процессов больше максимального, то лишние будут закрыты. По умолчанию 20.
  • StartServers - количество одновременно запускаемых процессов при загрузке. Значение не должно быть меньше чем MinSpareServers.

Остальные настройки оставляем со значениями по умолчанию. Tinyproxy и по дефолту неплохо работает. Настройки отвечающие за анонимность рассмотрим отдельно.

Анонимность Tinyproxy

По уровню анонимности HTTP прокси разделяются на несколько видов:

  • Прозрачные - передают в HTTP заголовках реальный ip-адрес клиента и указывают на факт использования прокси-сервера (отправляется заголовок что при подключении используется прокси-сервер). Анонимности нет.
  • Анонимные - указывают на факт использования прокси-сервера, но не раскрывают реальный ip-адрес клиента. Средний уровень анонимности.
  • Элитные - не передают реального ip-адреса и не указывают на использование прокси. Высокий уровень анонимности.

Уровень анонимности определяется передачей специфических HTTP заголовков при каждом подключении к конечному узлу. По умолчанию Tinyproxy передает заголовок указывающий название и версию сервера, но не передает реального ip-адреса клиента, то есть обеспечивает средний уровень анонимности.

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

tinyproxy

На изображении видно что прокси-сервер передал свое название и версию. Но ничего указывающего на реальный ip-адрес клиента нет. Адрес 93.170.169.118 - это ip-адрес моего сайта и по совместительству прокси-сервера, поэтому я его не прячу.

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

Мы добились высокого уровня анонимности (элитный прокси) заголовок Via исчез и ничего не указывает на использование прокси-сервера.

tinyproxy

По умолчанию присутствует включенная директива ViaProxyName "tinyproxy". Если ее отключить (закомментировать), то прокси сервер вместе со своей версией будет передавать еще и название вашего хоста.

XTinyproxy - еще одна из важнейших директив. По умолчанию она отключена и включать ее не стоит, она должна быть или закомментирована или выставлена в значение No. Именно она передает ваш реальный ip-адрес!

Вот что бывает если включить XTinyproxy.

tinyproxy

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

Для применения настроек перезапустим Tinyproxy.

Чтобы сервер не разжирался оперативной памятью будем перезапускать его каждые сутки ровно в 23:50. Добавим задание в cron.

На этом все спасибо за внимание.