Андрей Смирнов
Время чтения: ~17 мин.
Просмотров: 13

Прокси-сервер на Windows 7: запуск и настройка

Лайфхакер уже рассказывал о том, как купить виртуальный сервер (VPS) и настроить свой VPN для обхода блокировок в интернете. Но VPN работает для всех программ, которые имеют доступ в интернет. Если вы хотите, чтобы трафик перенаправлялся на другой сервер только в браузере, создайте собственный прокси.

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

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

О том, как выбрать и купить VPS, подробно рассказано в материале о поднятии VPN. Не будем повторяться и перейдём сразу к настройке прокси-сервера.

Скачайте и установите утилиту Putty. На вкладке Session пропишите IP-адрес, который был в письме при создании VPS.

ippp_1524808188.jpg

Перейдите на вкладку Tunnels в разделе SSH. Введите в строку Source Port номер 3128. Выберите значения Auto и Dynamic. Нажмите Add.

port_1524808221.jpg

Откройте вкладку Connection и установите время 100 секунд, чтобы исключить разрыв соединения.

time_1524808275.jpg

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

root_1524808302.jpg

Осталось настроить прокси в браузере. Посмотрим, как это сделать, на примере Google Chrome. Откройте настройки браузера, вызовите дополнительные настройки и найдите настройки прокси-сервера в разделе «Система».

settings_1524808336.jpg

В поле «Настройка параметров локальной сети» нажмите на кнопку «Настройка сети». Отметьте пункты «Автоматическое определение» и «Использовать для локальных подключений». Нажмите «Дополнительно». В строке SOCKS укажите адрес localhost и порт 3128.

connect_1524808371.jpg

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

Как запустить прокси на отдельных сайтах

Чтобы прокси-сервер использовался только на определённых сайтах, установите в браузере расширение FoxyProxy.

FoxyProxy Standard Разработчик: Сайт Цена: 0 FoxyProxy Standardот Eric H. Jung Разработчик: Разработчик Цена: Бесплатно

Откройте настройки расширения и нажмите Add New Proxy. На вкладке Proxy Details введите IP-адрес и номер порта, которые вы прописывали ранее в Putty. Отметьте опцию SOCKS Proxy.

foxyproxy_1524808430.jpg

Перейдите на вкладку URL Patterns и добавьте маски сайтов, на которых должны использоваться прокси. Чтобы добавить маску сайта, нажмите Add New Patterns, введите его адрес со звёздочками по обеим сторонам: например, *site.com*.

pattern_1524808463.jpg

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

Можно не создавать список в FoxyProxy, а использовать расширение «Обход блокировок Рунета». В нём есть перечень «Антицензорити», который охватывает большую часть заблокированных в России сайтов.

obhod_1524808560.jpg

Нажмите на значок расширения на панели задач, откройте вкладку «Свои прокси». Отметьте пункт «Использовать СВОИ прокси», введите IP-адрес и номер порта.

Как сохранить сессию

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

Запустите Putty. Настройте подключение, как показано выше, и перейдите на вкладку Data в разделе Connection. Пропишите имя для автоматической авторизации: обычно это root, но хостер может назначить в письме другое.

session_1524808624.jpg

Перейдите на вкладку Session, введите любое название в поле Saved Sessions и нажмите Save.

save_1524808669.jpg

В списке сессий сохранится ваше подключение.

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

Настройте прокси-сервер в Windows, и приложения отправят ваш сетевой трафик через прокси-сервер. Например, вам может потребоваться использовать прокси-сервер, предоставленный вашим работодателем.

Как правило, вы будете использовать прокси-сервер, если ваша школа или работа предоставит вам его. Вы также можете использовать прокси-сервер, чтобы скрыть свой IP-адрес или доступ к закрытым сайтам, которые недоступны в вашей стране, но для этого рекомендуется использовать VPN (В чём отличие прокси-сервера от VPN?). Если вам нужно настроить прокси для школы или работы, получите необходимые учетные данные и изучите их.

Выбранные вами параметры будут использоваться для Microsoft Edge, Google Chrome, Internet Explorer и других приложений, использующих настройки прокси-сервера. Некоторые приложения, в том числе Mozilla Firefox, позволяют настраивать параметры прокси-сервера, которые переопределяют ваши системные настройки. Вот как настроить системный прокси в Windows 10, 8 и 7.

Windows 8 и 10

В Windows 10 вы найдете эти параметры в разделе «Настройки» → «Сеть и Интернет» → «Прокси». В Windows 8 тот же экран доступен в настройках ПК → Сетевой прокси.

Настройки здесь применяются, когда вы подключены к сетевым соединениям Ethernet и Wi-Fi, но не будете использоваться, когда вы подключены к VPN .

По умолчанию Windows пытается автоматически определить ваши настройки прокси с параметром «Автоматически определять настройки». В частности, Windows использует протокол автоматического обнаружения веб-прокси или WPAD. Бизнес и школьные сети могут использовать эту функцию для автоматического предоставления настроек прокси-сервера для всех ПК в своих сетях. Если для сети, к которой вы подключены, требуется прокси-сервер, и он предоставляет этот прокси через WPAD, Windows автоматически настроит и использует прокси-сервер. Если сеть не предоставляет прокси-сервер, он вообще не будет использовать прокси-сервер.

Если вы не хотите, чтобы Windows автоматически определяла настройки прокси-сервера, установите для параметра «Автоматическое определение настроек» значение «Выкл.». Затем Windows будет использовать прокси-сервер, если вы настроите его под настройкой прокси-сервера вручную.

windows-proxy.png

В некоторых случаях вам может потребоваться вручную ввести адрес сценария установки для вашей конфигурации прокси. Для этого включите параметр «Использовать сценарий установки». Подключите сетевой адрес сценария в поле «Адрес сценария» и нажмите «Сохранить». Этот скрипт также можно назвать файлом .PAC.

Поставщик вашей организации или прокси предоставит вам адрес сценария установки, если он вам нужен.

proxy-script.png

Чтобы ввести настройки ручного прокси-сервера, включите «Использовать прокси-сервер» в разделе «Настройка прокси-сервера вручную». Введите адрес прокси-сервера и порт, который он использует в поле «Адрес» и «Порт».

Поставщик вашей организации или прокси-провайдера предоставит вам сетевой адрес и номер порта, который требуется прокси-серверу.

proxy-manual-settings.png

Когда вы подключаетесь к любому адресу, Windows отправляет трафик через прокси-сервер. Однако вы можете настроить список адресов, для которых Windows не будет использовать прокси-сервер. По умолчанию список включает только *.local . Звездочка — это подстановочный знак и означает «что угодно». Таким образом, если вы попытаетесь подключиться к server.local, database.local или чему-либо еще, что заканчивается на .local, Windows будет обходить прокси и напрямую подключаться.

Вы можете добавить больше записей в этот список. Просто разделите каждый с точкой с запятой (;) и пробелом. Например, предположим, вы хотели обойти прокси при подключении к ip-calculator.ru. Вы должны ввести:

*.local; ip-calculator.ru

Вы также можете отметить «Не использовать прокси-сервер для локальных (интрасети) адресов». Windows будет обходить прокси-сервер при подключении к ресурсам в локальной сети или в интрасети. Когда вы подключаетесь к адресам в Интернете, Windows будет использовать прокси-сервер.

Нажмите «Сохранить», когда вы закончите, чтобы изменить настройки прокси-сервера.

proxy-except.png

Windows 7

В Windows 7 вы можете изменить свой прокси-сервер в диалоговом окне «Настройки Интернета». Вы также можете использовать этот диалог в Windows 8 и 10, если хотите. Оба интерфейса меняют один и тот же общесистемный параметр.

Сначала откройте окно «Свойства браузера». Вы найдете его на панели управления → Сеть и Интернет → Свойства браузера. Вы также можете щелкнуть меню «Сервис» в Internet Explorer и выбрать «Свойства браузера», чтобы открыть его.

Перейдите на вкладку «Подключения» в верхней части окна «Свойства браузера». Нажмите кнопку «Настройки сети» в нижней части окна.

Опция «Автоматическое определение параметров» включена по умолчанию. Когда эта опция включена, Windows попытается автоматически обнаружить прокси-сервер с помощью протокола автоматического обнаружения веб-прокси или WPAD. Если прокси не предоставляется вашей сетью, никто не будет использоваться. Отключите эту опцию, чтобы Windows не могла использовать WPAD для автоматической настройки параметров прокси-сервера.

Параметр «Использовать сценарий автоматической конфигурации» позволяет ввести адрес сценария автоматической настройки прокси. Этот адрес будет предоставлен вашей организацией или прокси-провайдером, если вам это нужно.

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

По умолчанию Windows автоматически отправит весь трафик через прокси-сервер, включая трафик на адреса в локальной сети или в интрасеть. Чтобы всегда обойти прокси-сервер при подключении к этим локальным адресам, установите флажок «Не использовать прокси-сервер для локальных адресов». Приложения будут обходить прокси-сервер и напрямую подключаться к ресурсам в вашей локальной сети, но не к интернет-адресам.

Нажмите кнопку «Дополнительно» в разделе «Прокси-сервер», если вы хотите изменить дополнительные параметры при включении ручного прокси-сервера.

Раздел «Серверы» позволяет вам установить другой прокси-сервер для протоколов HTTP, Secure (HTTPS), FTP и SOCKS. По умолчанию установлен флажок «Использовать тот же прокси-сервер для всех протоколов». Если вы знаете, что вам нужно использовать другой прокси-сервер для разных типов подключений, снимите этот флажок и введите необходимые данные здесь. Это не распространено.

В разделе «Исключения» вы можете указать список адресов, в которых Windows будет обходить прокси-сервер. По умолчанию он включает только *.local. Звездочка здесь известна как «подстановочный знак» и соответствует всему. Это означает, что любой адрес, заканчивающийся на «.local», включая server.local и database.local, будет доступен напрямую.

Если хотите, вы можете ввести дополнительные адреса. Используйте точку с запятой (;) и пробел для разделения каждой записи в списке. Например, если вы также хотели получить доступ к ip-calculator.ru напрямую, не пропуская прокси, вы должны ввести:

*.local; ip-calculator.ru

Когда вы пытаетесь подключиться к ip-calculator.ru, Windows затем сделает прямое подключение без прохождения через прокси-сервер.

Нажмите «ОК», чтобы сохранить изменения.

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

Squid – самый популярный HTTP-прокси сервер для кэширования и перенаправления. Он широко используется различными компаниями для кэширования веб-страниц с веб-сервера для повышения скорости работы последнего, снижения времени ответа и ограничения использования пропускной способности сети. В данном руководстве мы рассмотрим установку прокси-сервера squid и его использование в качестве HTTP-прокси сервера.

Содержание

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

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

$ sudo apt-get -y install squid

В Redhat/Centos

# yum install –y squid

Запустите его и задайте запуск при загрузке:

$ sudo systemctl start squid  $ sudo systemctl enable squid

После этого можно проверить статус службы:

$ sudo systemctl status squid

squid1.jpg

Важные файлы Squid располагаются в следующих директориях:

Файл конфигурации: /etc/squid/squid.conf Журнал доступа: /var/log/squid/access.log Журнал кэша: /var/log/squid/cache.log

Файл конфигурации по умолчанию содержит ряд директив, при помощи которых осуществляется управление работой сервера. Для внесения изменений откройте файл любым текстовым редактором.

$ sudo vim /etc/squid/squid.conf

В нем довольно много параметров, мы рассмотрим самые важные из них.

http_port  порт HTTP-прокси сервера, по умолчанию 3128. Для безопасности рекомендуется сменить его на другой.visible_hostname Параметр используется для определения имени узла сервера Squid. Можно задать любое имя.

Также можно указать параметр intercept (или transparent для старых версий), например, http_port 3128 intercept. В этом случае ваш сервер будет работать как прозрачный прокси (без необходимости настраивать его использование на стороне клиента).

Для последующего понимания работы прокси, нужно понять следующие параметры

http_access-Данный параметр регулирует доступ к HTTP-прокси серверу. С помощью него можно разрешить или запретить доступ через сервер как к определенным ресурсам в интернете, так и определенным группам пользователей. В данный момент любой доступ запрещен (deny all). Чтобы начать использование сервера, нужно изменить ее, например, на http_access allow all (разрешить любой доступ). Параметр all можно заменить на имя списка доступа, которые мы рассмотрим чуть ниже.acl(access control list) — В этом параметре указываются ресурсы в интернете, порты, ip адреса пользователей, локальные сети. В общем это список к которому будут применяться различные правила. Таких списков может быть неограниченное количество.

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

$ sudo systemctl restart squid

Настройка Squid как HTTP-прокси

http_access [allow/deny] [название acl]

При описании контроля доступа можно использовать оператор отрицания «!». Например следующая строка запрещает доступ ко всем портам, кроме описанных в листе Safe_ports

http_access deny !Safe_ports

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

Рассмотрим создание списков доступа acl подробнее. По умолчанию уже есть преднастроенный acl localnet

acl localnet src 10.0.0.0/8 # RFC1918 possible internal network  acl localnet src 172.16.0.0/12 # RFC1918 possible internal network  acl localnet src 192.168.0.0/16 # RFC1918 possible internal network  acl localnet src fc00::/7 # RFC 4193 local private network range  acl localnet src fe80::/10 # RFC 4291 link-local (directly plugged) machines

Вы можете его отредактировать или удалить. Создадим новый acl

$ sudo vim /etc/squid/squid.conf

Добавьте правило следующего вида:

acl boss src XX.XX.XX.XX

Где boss — имя списка контроля доступа, src — параметр, задающий адрес источника (source), а XX.XX.XX.XX — IP-адрес машины клиента (можно также указывать подсети или диапазоны). Новые списки контроля доступа нужно добавлять в начало раздела ACL. Аналогичным образом можно создавать списки доступа с ограничением по адресу места назначения (параметр dst вместо src), а также использовать вместо адресов доменные имена (srcdomain для источника, dstdomain для места назначения).

Очень желательно рядом с ACL указывать комментарий с кратким описанием пользователя этого IP-адреса, например:

acl boss src 192.168.0.102 # IP-адрес руководителя

После этого нужно разрешить доступ для boss:

http_access allow boss

Чтобы изменения вступили в силу, нужно перезагрузить Squid.

$ sudo systemctl restart squid

Открытие портов

По умолчанию в конфигурации Squid разрешено использование только определенных портов.

acl SSL_ports port 443  acl Safe_ports port 80 # http  acl Safe_ports port 21 # ftp  acl Safe_ports port 443 # https  acl Safe_ports port 70 # gopher  acl Safe_ports port 210 # wais  acl Safe_ports port 1025-65535 # unregistered ports  acl Safe_ports port 280 # http-mgmt  acl Safe_ports port 488 # gss-http  acl Safe_ports port 591 # filemaker  acl Safe_ports port 777 # multiling http

Если требуется использование дополнительных портов, можно задать их в файле конфигурации:

acl Safe_ports port XXX

Где XXX — номер порта, использование которого нужно разрешить. Снова желательно пояснять ACL комментарием.

Не забываем перезапустить Squid для применения настроек

Работа прокси в прозрачном режиме

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

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

В случае использования iptables нужно добавить следующие правила (в рассматриваемом примере eth1 — внутренний интерфейс, eth0 — внешний, SQUID_IP — IP-адрес прокси-сервера):

iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j DNAT --to SQUID_IP:3128  iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128

Аутентификация клиента

Cоздадим файл passwd для хранения имени пользователя для аутентификации. Сквид работает как пользователь squid, поэтому он должен быть владельцем файла.

$ sudo touch /etc/squid/passwd  $ sudo chown squid:squid /etc/squid/passwd

Создадим нового пользователя ivan и установим ему пароль.

$ sudo htpasswd /etc/squid/passwd ivan

squid2.jpg

Для задания базовой HTTP-аутентифркации откройте файл конфигурации Сквид в текстовом редакторе:

$ sudo vim /etc/squid/squid.conf

И пропишите следующие директивы после ACL портов:

auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/passwd  auth_param basic children 5  auth_param basic realm Squid Basic Authentication  auth_param basic credentialsttl 2 hours  acl auth_users proxy_auth REQUIRED  http_access allow auth_users

squid3.jpg

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

Настройка параметров кэширования

Одна из важных функций прокси-сервера — кэширование веб-страниц для разгрузки веб-сервера и ускорения доступа. Сквид поддерживает два типа кэша, в оперативной памяти и на жёстком диске.

Кэш в оперативной памяти настраивается следующими параметрами:

cache_mem 1024 MB — выделенный для кэширования объем памятиmaximum_object_size_in_memory 512 KB — максимальный размер объекта в кэше

Параметры кэша на жёстком диске задаются следующей директивой:

cache_dir тип_хранилища путь_к_хранилищу размер ур_1 ур_2

Размер указывается в мегабайтах, ур_1 и ур_2 — количество директорий первого и второго уровня, соответственно, например:

cache_dir ufs /var/squid_cache 2048 32 512

Аналогично кэшу в памяти при помощи следующего параметра указывается максимальный размер объекта в кэше на диске:

maximum_object_size 8 MB

Ограничение скорости

Squid может ограничивать скорость доступа к сети. Хотя в современных условиях эта функция может показаться избыточной, она часто может оказаться полезной, например, для ограничения использования пропускной способности канала какими-либо автоматизированными задачами.

Для реализации ограничения скорости Сквид использует механизм пулов задержки (delay pools). Пулы задержки можно условно представить в виде ёмкости, которая “заполняется” данными, и после этого “выпускает” их только с определенной скоростью. Количество пулов задаётся в файле конфигурации следующим образом:

delay_pools количество_пулов

Каждый пул имеет номер (от 1 до заданного количества), а также класс. Классы реализуют многоступенчатую структуру ограничения:

Классы пулов задаются директивой delay_class, в качестве аргументов которой передаются номер пула и класс.

delay_pools 2  delay_class 1 1  delay_class 2 2

Параметры пулов задаются директивой delay_parameters и описывают максимальный объем пула и ограничение на каждый уровень (в байтах) в зависимости от класса. Например, параметры для пула 1 класса с номером 1:

delay_parameters 1 64000/256000

Будут означать, что после получения первых 256 Кб запроса на максимальной скорости скорость будет ограничена 64 Кб/с, то есть 512 Кбит/с.

Для 2 класса и выше аналогичным образом задаются ограничения для подсети, отдельного адреса и т.д., например следующая директива ограничивает общую скорость до 8 Мбит/с, а скорость для подсети после первых 256 Кб запроса — до 512 Кбит/с.

delay_parameters 2 512000/512000 64000/256000

Чтобы задать пулы задержки для определенных списков контроля доступа, используется директива delay_access, содержащая номер пула, параметр allow или deny и имя списка, например:

delay_access 2 allow localnet

для примера создадим два пула, 1 и 2 класса:

delay_pools 2 # Инициируем 2 пула  delay_class 1 1 # 1-й пул 1-го класса  delay_access 1 allow office1 # В первый пул попадает только пользователи acl office1  delay_access 1 deny all # Запрещаем доступ к пулу всем остальным  delay_parameters 1 64000/256000 # Ограничиваем скорость
delay_class 2 2  delay_access 2 allow office2  delay_access 2 deny all  delay_parameters 2 512000/512000 64000/256000

Как видите скорость загрузки действительно ограничена приблизительно до 256 кбит. Обратите внимание, что сквид ограничивает только скорость отдачи от него, т.е скорость загрузки пользователя. На скорость отдачи от пользователя ограничение не действует.

Блокировка веб-сайтов

Для блокировки доступа к нежелательным веб-сайтам сначала создайте файл с “черным списком”:

$ sudo touch /etc/squid/blacklisted_sites.acl

Теперь в этот файл нужно добавить сайты, к которым требуется заблокировать доступ. Например заблокируем доступа к одноклассникам и вконтакте:

.vk.com  .ok.ru

Точки перед именами указывают Сквид блокировать все ссылки на эти сайты, в том числе www. vk.com, subsite.vk.com и т.д.

Далее нужно открыть файл конфигурации

$ sudo vim /etc/squid/squid.conf

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

acl bad_urls dstdomain "/etc/squid/blacklisted_sites.acl"  http_access deny bad_urls

squid4.jpg

$ sudo systemctl restart squid

Теперь при попытке получить доступ к сайтам из списка, пользователь получит предупреждение

squid5.jpg

Блокировка по маске

Можно осуществлять блокировку не только по именам сайтов, но и по маске. Т.е. заблокировать доступ в сайтам, в которых есть определенное сочетание букв. Аналогичным образом создаётся файл со списком запрещенных ключевых слов:

$ sudo touch /etc/squid/blockkeywords.lst

Далее в него добавляются ключевые слова, например:

facebook  instagram  gmail

Откройте файл конфигурации и внесите в него следующие список контроля доступа и правило:

acl blockkeywordlist url_regex "/etc/squid/blockkeywords.lst"  http_access deny blockkeywordlist

А затем сохраните файл и перезапустите Сквид:

$ sudo systemctl restart squid

squid6.jpg

Теперь, все сайты в названии доменов которых встречаются facebook, instagram, gmail будут заблокированы.

squid7.jpg

Заключение

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

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Используемые источники:

  • https://lifehacker.ru/kak-nastroit-svoj-proksi-server/
  • https://ip-calculator.ru/blog/ask/nastrojka-proksi-servera-na-windows/
  • https://itproffi.ru/ustanovka-i-nastrojka-proksi-servera-squid/

Рейтинг автора
5
Подборку подготовил
Максим Уваров
Наш эксперт
Написано статей
171
Ссылка на основную публикацию
Похожие публикации