Настройка альтернативного прокси-сервера Linux
Обновлено: 21.11.2024
Кэширующий прокси-сервер Squid — это отличное решение для различных потребностей в прокси-серверах и кеширующих серверах. Он масштабируется от сетей филиалов до корпоративных сетей, предоставляя обширные детализированные механизмы контроля доступа и мониторинг критических параметров через Simple Network. Протокол управления (SNMP). При выборе компьютерной системы для использования в качестве выделенного кэширующего прокси-сервера Squid для многих пользователей убедитесь, что она настроена с большим объемом физической памяти, поскольку Squid поддерживает кэш в памяти для повышения производительности.
Установка
В терминале введите следующую команду для установки сервера Squid:
Конфигурация
Squid настраивается путем редактирования директив, содержащихся в файле конфигурации /etc/squid/squid.conf. Следующие примеры иллюстрируют некоторые директивы, которые можно изменить, чтобы повлиять на поведение сервера Squid. Подробную информацию о настройке Squid см. в разделе «Справочники».
Совет
Перед редактированием файла конфигурации необходимо сделать копию исходного файла и защитить ее от записи, чтобы исходные настройки использовать по мере необходимости. Сделайте эту копию и защитите ее от записи с помощью следующих команд:
Измените директиву visible_hostname, чтобы дать серверу Squid определенное имя хоста. Это имя хоста не обязательно должно быть именем хоста компьютера. В этом примере установлено значение weezie
.Опция cache_dir позволяет настроить кеш на диске, по умолчанию используется кеш в памяти. Директива cache_dir принимает следующие аргументы:
В файле конфигурации вы можете найти закомментированную директиву cache_dir по умолчанию:
Вы можете просто использовать параметр по умолчанию, но вы также можете настроить свой каталог кеша, в основном изменив этот каталог, это может быть:
- ufs: старый хорошо известный формат хранения Squid, который существовал всегда.
- aufs : использует тот же формат хранения, что и ufs , используя потоки POSIX, чтобы избежать блокировки основного процесса Squid при дисковом вводе-выводе. Раньше в Squid это называлось async-io .
- diskd : использует тот же формат хранения, что и ufs , используя отдельный процесс, чтобы избежать блокировки основного процесса Squid при дисковом вводе-выводе.
- rock : хранилище в стиле базы данных. Все кэшированные записи хранятся в файле «базы данных» с использованием слотов фиксированного размера. Одна запись занимает один или несколько слотов.
Если вы хотите использовать каталог другого типа, ознакомьтесь с их вариантами.
Используя контроль доступа Squid, вы можете настроить использование интернет-сервисов, проксируемых Squid, так, чтобы они были доступны только пользователям с определенными IP-адресами. Например, мы проиллюстрируем доступ только пользователей подсети 192.168.42.0/24:
Добавьте следующее в конец раздела ACL вашего файла /etc/squid/squid.conf:
Используя превосходные функции контроля доступа Squid, вы можете настроить использование Интернет-сервисов, проксируемых Squid, так, чтобы они были доступны только в обычные рабочие часы. Например, мы проиллюстрируем доступ сотрудников компании, которая работает с 9:00 до 17:00 с понедельника по пятницу и использует подсеть 10.1.42.0/24:
В компьютерных сетях прокси-сервер – это сервер (компьютерная система или приложение), выступающий в качестве посредника для запросов от клиентов, ищущих ресурсы с других серверов.
Содержание
Переменные среды
Эту статью или раздел необходимо расширить.
Причина: Чтобы экспортировать среду везде (более или менее), их можно установить в /etc/environment и /etc/environment.d/*.conf или ~/.pam_environment и ~/.config/environment.d /*.конф. (Обсудить в Обсуждении:Прокси-сервер)
Ниже приведен пример установки этих переменных в оболочке:
Некоторые программы ищут версию переменных среды, состоящую из заглавных букв.
Если переменные среды прокси должны быть доступны для всех пользователей и всех приложений, вышеупомянутые команды экспорта могут быть добавлены в сценарий, например, proxy.sh внутри /etc/profile.d/. Затем скрипт должен быть выполнен исполняемым. Этот метод полезен при использовании среды рабочего стола, такой как Xfce, которая не предоставляет возможность настройки прокси. Например, браузер Chromium будет использовать переменные, установленные с помощью этого метода, при запуске XFCE.
Кроме того, существует инструмент proxyman-git AUR, который утверждает, что легко настраивает общесистемные параметры прокси. Он также обрабатывает прокси-конфигурации другого программного обеспечения, такого как git, npm, Dropbox и т. д. Проект вдохновлен идеей Алана Поупа о создании скрипта.
В качестве альтернативы вы можете автоматизировать переключение переменных, добавив функцию в ваш .bashrc (спасибо Алану Поупу за оригинальную идею скрипта)
Опустите имя пользователя или пароль, если они не нужны.
В качестве альтернативы вы можете использовать следующий скрипт. Измените строки YourUserName , ProxyServerAddress:Port , LocalAddress и LocalDomain, чтобы они соответствовали вашим собственным данным, затем отредактируйте файл ~/.bashrc, чтобы включить отредактированные функции. Любое новое окно bash будет иметь новые функции. В существующих окнах bash введите source ~/.bashrc . Вы можете предпочесть поместить определения функций в отдельный файл, например функции, а затем добавить исходные функции в .bashrc вместо того, чтобы помещать все в .bashrc . Вы также можете изменить имя «myProxy» на что-то короткое и легкое для написания.
Оставить прокси через sudo
Если переменные среды прокси установлены только для пользователя, они будут потеряны при выполнении команд с помощью sudo (или когда программы используют sudo для внутреннего использования).
Чтобы предотвратить это, добавьте следующую строку в файл конфигурации sudo:
Автоматизация с помощью сетевых менеджеров
-
не может изменить переменные среды. можно настроить эти переменные среды, но они не будут видны другим приложениям, поскольку они не являются дочерними для netctl.
О libproxy
libproxy (доступна в дополнительном репозитории) — это библиотека абстракций, которую должны использовать все приложения, которым нужен доступ к сетевому ресурсу. Он все еще находится в разработке, но может привести к унифицированной и автоматизированной обработке прокси-серверов в GNU/Linux, если получит широкое распространение.
Роль libproxy – считывать настройки прокси-сервера из разных источников и делать их доступными для приложений, использующих библиотеку. Интересная часть libproxy заключается в том, что она предлагает реализацию протокола автообнаружения веб-прокси и реализацию автоматической настройки прокси-сервера, которая идет вместе с ним.
Двоичный файл /usr/bin/proxy принимает URL-адрес(а) в качестве аргумента(ов) и возвращает прокси/прокси, которые можно использовать для получения этого/этих сетевых ресурсов.
По состоянию на 04.06.2009 для libsoup требуется libproxy. Затем он косвенно используется браузером midori.
Параметры веб-прокси
Простой прокси с SSH
Подключитесь к серверу (HOST), на котором у вас есть учетная запись (USER), следующим образом
В поле PORT выберите какой-либо номер, который не является портом, зарегистрированным в IANA. Указывает, что трафик на локальном PORT будет перенаправляться на удаленный HOST. ssh будет действовать как сервер SOCKS. Программное обеспечение, поддерживающее прокси-серверы SOCKS, можно просто настроить для подключения к PORT на локальном хосте.
Использование SOCKS-прокси
Есть два случая:
- приложение, которое вы хотите использовать, обрабатывает прокси-серверы SOCKS5 (например, Firefox), тогда вам просто нужно настроить его для использования прокси-сервера.
- приложение, которое вы хотите использовать, не обрабатывает прокси-серверы SOCKS, тогда вы можете попробовать использовать tsocks или proxychains-ng .
При использовании proxychains-ng конфигурация выполняется в /etc/proxychains.conf . Возможно, вам придется раскомментировать последнюю строку (установленную по умолчанию для использования Tor) и заменить ее параметрами SOCKS-прокси. Например, если вы используете тот же прокси-сервер SOCKS5, что и выше, вам придется заменить последнюю строку на:
Затем proxychains-ng можно запустить с
Где program может быть любая программа, уже установленная в вашей системе (например, xterm, gnome-terminal и т. д.).
При использовании tsocks конфигурация выполняется в файле /etc/tsocks.conf . См. параметры в tsocks.conf(5). Пример минимальной конфигурации выглядит следующим образом:
керл и пакман
Вы можете установить переменную среды all_proxy, чтобы разрешить curl и pacman (который использует curl) использовать прокси-сервер socks5:
Настройки прокси в GNOME3
Некоторые программы, такие как Chromium и Firefox, могут использовать настройки, хранящиеся в GNOME. Эти настройки можно изменить через внешний интерфейс gnome-control-center, а также через gsettings.
Эта конфигурация также может быть настроена на автоматическое выполнение при подключении NetworkManager к определенным сетям с помощью пакета proxydriver AUR.
Прокси Microsoft NTLM
В сети Windows NT LAN Manager (NTLM) представляет собой набор протоколов безопасности Microsoft, обеспечивающих аутентификацию, целостность и конфиденциальность пользователей.
cntlm AUR из AUR стоит между вашими приложениями и прокси-сервером NTLM, добавляя аутентификацию NTLM на лету. Вы можете указать несколько "родительских" прокси и Cntlm будет пробовать один за другим, пока не сработает один. Все аутентифицированные соединения кэшируются и повторно используются для достижения высокой эффективности.
Конфигурация
Измените настройки в файле /etc/cntlm.conf по мере необходимости, за исключением пароля. Затем запустите:
Это создаст зашифрованные хэши паролей в соответствии с вашим именем прокси-сервера, именем пользователя и паролем.
Предупреждение: ettercap может легко перехватить ваш пароль через локальную сеть при использовании паролей в виде обычного текста вместо зашифрованных хэшей.
Squid – это прокси-приложение для Linux. Прокси-сервер Squid используется для фильтрации трафика, безопасности и поиска DNS.
Кроме того, Squid может ускорить работу веб-сервера за счет кэширования ресурсов. Squid Proxy позволяет серверу кэшировать часто посещаемые веб-страницы. Когда пользователь запрашивает веб-страницу или файл, запрос направляется непосредственно на прокси-сервер — промежуточное устройство между устройством пользователя и Интернетом. Прокси-сервер извлекает ресурсы и передает их пользователю.
В этом руководстве рассказывается, как настроить и установить прокси-сервер Squid в Ubuntu.
- Операционная система Ubuntu
- Доступ к окну терминала/командной строке (Ctrl-Alt-T)
- Пользователь Ubuntu с привилегиями root или sudo
- Установщик пакета apt, включенный по умолчанию
- Текстовый редактор, например nano
Установка прокси-сервера Squid в Ubuntu
Шаг 1. Обновите репозитории программного обеспечения
Убедитесь, что вы работаете с последней доступной версией программного обеспечения.
Запустите окно терминала и введите следующее:
Шаг 2. Установите пакет Squid в Ubuntu
Чтобы установить Squid, выполните команду:
Система должна запросить подтверждение — введите Y и дождитесь завершения процесса.
Настройка прокси-сервера Squid
Файл конфигурации Squid находится в /etc/squid/squid.conf.
<р>1. Откройте этот файл в текстовом редакторе с помощью команды:Вы также можете установить прозрачный режим прокси, если не хотите, чтобы Squid модифицировал ваши запросы и ответы.
Измените его следующим образом:
Измените это на следующее:
<р>4. Перейдите к опции visible_hostname. Добавьте любое имя, которое вы хотите, к этой записи. Так сервер будет отображаться для всех, кто пытается подключиться. Сохраните изменения и выйдите. <р>5. Перезапустите службу Squid, введя:Настроить клиент Squid
Все эти настройки были выполнены для настройки вашего прокси-сервера Squid. Теперь переключитесь на свой клиентский компьютер и откройте веб-браузер.
Если вы используете Firefox, вы можете найти настройки прокси-сервера в разделе:
Меню > Параметры > Настройки сети > Настройки
Отметьте переключатель для настройки прокси-сервера вручную.
Если вы ввели имя хоста на шаге 4, вы сможете ввести это имя и назначенный вами порт. В противном случае используйте IP-адрес системы, на которой размещен прокси-сервер Squid.
Добавить Squid ACL
Примечание. После каждого из этих шагов необходимо сохранить и выйти, а затем перезапустить службу Squid, чтобы применить новую конфигурацию.
Создайте список управления доступом, снова отредактировав файл squid.conf, как на шаге 4.
Добавьте новую строку следующим образом:
Это создаст правило, разрешающее подключение только системе с этим IP-адресом. Рекомендуется прокомментировать строку, чтобы идентифицировать правило:
Вы можете указать диапазон IP-адресов следующим образом:
Открыть порты
Чтобы открыть определенный порт, добавьте следующее:
Настроить прокси-аутентификацию
Это заставляет пользователей аутентифицироваться для использования прокси-сервера.
Начните с установки apache2-utils:
Создайте файл passwd и измените владельца на пользовательский прокси-сервер Squid:
Добавить нового пользователя и пароль
<р>1. Чтобы добавить нового пользователя в Squid, используйте команду:Система предложит вам ввести и подтвердить пароль для нового пользователя.
<р>2. Отредактируйте файл /etc/squid/squid.conf и добавьте следующие командные строки:Блокировка веб-сайтов через прокси-сервер Squid
<р>1. Создайте и отредактируйте новый текстовый файл /etc/squid/blocked.acl, введя: <р>2. В этом файле добавьте сайты, которые нужно заблокировать, начиная с точки:Примечание. Точка указывает на блокировку всех дочерних сайтов основного сайта.
<р>3. Снова откройте файл /etc/squid/squid.conf: <р>4. Добавьте следующие строки прямо над списком ACL:Команды при работе со службой Squid
Чтобы проверить статус вашего программного обеспечения Squid, введите:
Это покажет вам, запущена служба или нет.
Чтобы запустить службу, введите:
Затем настройте запуск службы Squid при запуске системы, введя:
Вы можете повторно запустить команду состояния, чтобы убедиться, что служба запущена и работает.
Чтобы остановить службу, используйте команду:
Чтобы Squid не запускался при запуске, введите:
Если вы внимательно следили за процессом, теперь у вас должно быть общее представление о том, как работает Squid, а также как установить и настроить Squid Proxy в Ubuntu.
Прокси-серверы — ценный инструмент для защиты сетевого трафика, предотвращения атак и ограничения доступа.
Прочитайте нашу статью о том, как настроить вашу систему Ubuntu для работы с прокси-сервером, чтобы настроить вашу машину Ubuntu для использования прокси-сервера.
Хотите настроить это приложение на другой ОС?Вы можете узнать, как установить Squid на CentOS 7.
Прокси-серверы – это тип серверного приложения, функционирующего как шлюз между конечным пользователем и интернет-ресурсом. Через прокси-сервер конечный пользователь может контролировать и отслеживать свой веб-трафик для самых разных целей, включая конфиденциальность, безопасность и кэширование. Например, вы можете использовать прокси-сервер для выполнения веб-запросов с IP-адреса, отличного от вашего собственного. Вы также можете использовать прокси-сервер, чтобы узнать, как Интернет обслуживается по-разному в разных юрисдикциях, или избежать некоторых методов наблюдения или ограничения веб-трафика.
Предпосылки
Для выполнения этого руководства вам потребуется:
- Сервер Ubuntu 20.04 и пользователь без полномочий root с привилегиями sudo. Вы можете узнать больше о том, как настроить пользователя с этими привилегиями, в нашем руководстве Initial Server Setup with Ubuntu 20.04.
В этом руководстве вы будете использовать доменное имя your_domain, но вы должны заменить его своим собственным доменным именем или IP-адресом.
Шаг 1 — Установка прокси-сервера Squid
У Squid есть множество вариантов использования, помимо маршрутизации исходящего трафика отдельного пользователя. В контексте крупномасштабных развертываний серверов его можно использовать в качестве механизма распределенного кэширования, балансировщика нагрузки или другого компонента стека маршрутизации. Однако некоторые методы горизонтального масштабирования серверного трафика, которые обычно включали бы прокси-сервер, уступили по популярности платформам контейнеризации, таким как Kubernetes, которые распределяют больше компонентов приложения. В то же время использование прокси-серверов для перенаправления веб-запросов в качестве отдельного пользователя становится все более популярным для защиты вашей конфиденциальности. Это полезно помнить при работе с прокси-серверами с открытым исходным кодом, которые могут иметь многие десятки функций в режиме обслуживания с более низким приоритетом. Варианты использования прокси-сервера со временем изменились, но основная технология осталась неизменной.
Начните с выполнения следующих команд от имени пользователя без полномочий root, чтобы обновить списки пакетов и установить Squid Proxy:
Squid автоматически настроит фоновую службу и запустится после установки. Вы можете проверить правильность работы службы:
По умолчанию Squid не позволяет клиентам подключаться к нему из-за пределов этого сервера. Чтобы включить это, вам нужно внести некоторые изменения в его файл конфигурации, который хранится в /etc/squid/squid.conf. Откройте его в nano или в вашем любимом текстовом редакторе:
- acl означает список контроля доступа, общий термин для политик разрешений
- localnet в данном случае — это имя вашего ACL-списка.
- src — это место, откуда будет исходить запрос из этого ACL, т. е. ваш IP-адрес.
Если вы не знаете свой локальный IP-адрес, проще всего перейти на такой сайт, как What's my IP, который может сообщить вам, откуда вы к нему обращались. После внесения этого изменения сохраните и закройте файл. Если вы используете nano , нажмите Ctrl+X , а затем, когда будет предложено, Y и Enter .
На этом этапе вы можете перезапустить Squid и подключиться к нему, но вы можете сделать больше, чтобы сначала защитить его.
Шаг 2 — Защита Squid
Большинство прокси-серверов и большинство клиентских приложений, которые подключаются к прокси-серверам (например, веб-браузеры), поддерживают несколько методов аутентификации. Они могут включать в себя общие ключи или отдельные серверы аутентификации, но чаще всего включают в себя обычные пары имя пользователя-пароль. Squid позволяет создавать пары логин-пароль, используя встроенную функциональность Linux, в качестве дополнительного или альтернативного шага к ограничению доступа к вашему прокси по IP-адресу. Для этого вы создадите файл с именем /etc/squid/passwords и укажите в нем конфигурацию Squid.
Во-первых, вам нужно установить некоторые утилиты из проекта Apache, чтобы иметь доступ к генератору паролей, который нравится Squid.
Этот пакет содержит команду htpasswd, которую можно использовать для создания пароля для нового пользователя Squid. Имена пользователей Squid никоим образом не будут пересекаться с системными именами пользователей, поэтому вы можете использовать то же имя, с которым вы вошли в систему, если хотите. Вам также будет предложено добавить пароль:
Это сохранит ваше имя пользователя вместе с хэшем вашего нового пароля в файле /etc/squid/passwords, который будет использоваться Squid в качестве источника аутентификации. Вы можете просмотреть файл позже, чтобы увидеть, как он выглядит:
Убедившись, что ваше имя пользователя и пароль сохранены, вы можете обновить конфигурацию Squid, чтобы использовать новый файл /etc/squid/passwords. С помощью nano или вашего любимого текстового редактора снова откройте файл конфигурации Squid и добавьте следующие выделенные строки:
Эти дополнительные директивы сообщают Squid, что он должен проверить ваш новый файл паролей на наличие хэшей паролей, которые можно проанализировать с помощью механизма basic_ncsa_auth, и потребовать аутентификацию для доступа к вашему прокси-серверу.Вы можете просмотреть документацию Squid для получения дополнительной информации об этом или других методах аутентификации. После этого вы, наконец, можете перезапустить Squid с изменениями конфигурации. Это может занять некоторое время.
И не забудьте открыть порт 3128 в брандмауэре, если вы используете ufw :
На следующем шаге вы, наконец, подключитесь к прокси-серверу.
Шаг 3 — Подключение через Squid
Чтобы продемонстрировать свой сервер Squid, вы будете использовать программу командной строки под названием curl , которая популярна для выполнения различных типов веб-запросов. В общем, если вы хотите проверить, должно ли данное соединение работать в браузере в идеальных условиях, вы всегда должны сначала протестировать его с помощью curl . Для этого вы будете использовать curl на своем локальном компьютере — он установлен по умолчанию во всех современных средах Windows, Mac и Linux, поэтому вы можете открыть любую локальную оболочку для выполнения этой команды:
Учетные данные, которые вы использовали для curl, теперь должны работать везде, где вы захотите использовать новый прокси-сервер.
Заключение
В этом руководстве вы научились развертывать популярную конечную точку API с открытым исходным кодом для прокси-трафика практически без дополнительных затрат. Многие приложения имеют встроенную поддержку прокси-сервера (часто на уровне ОС), которая существует уже несколько десятилетий, что делает этот стек прокси-сервера очень удобным для повторного использования.
Далее вы можете узнать, как развернуть Dante, прокси-сервер SOCKS, который может работать вместе со Squid для проксирования различных типов веб-трафика.
Поскольку одним из наиболее распространенных вариантов использования прокси-серверов является проксирование трафика в разные регионы мира и из них, вы можете рассмотреть, как использовать Ansible для автоматизации развертывания серверов, если вы захотите продублировать эту конфигурацию в другие центры обработки данных.
Хотите узнать больше? Присоединяйтесь к сообществу DigitalOcean!
Присоединяйтесь к нашему сообществу DigitalOcean, насчитывающему более миллиона разработчиков, бесплатно! Получайте помощь и делитесь знаниями в нашем разделе "Вопросы и ответы", находите руководства и инструменты, которые помогут вам расти как разработчику и масштабировать свой проект или бизнес, а также подписывайтесь на интересующие вас темы.
Читайте также: