Настройка прокси-сервера Ubuntu

Обновлено: 21.11.2024

В этом руководстве мы узнаем, как установить и настроить прокси-сервер Squid на сервере Ubuntu 20.04.

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

Обратный прокси-сервер обычно предоставляет дополнительный уровень контроля для сглаживания потока входящего сетевого трафика между вашими клиентами и веб-сервером.

Выбирая компьютерную систему для использования в качестве выделенного кэширующего прокси-сервера Squid, многие пользователи убеждаются, что она настроена на большой объем физической памяти (ОЗУ), поскольку Squid поддерживает кэш в памяти для повышения производительности.

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

Пакеты, предоставляющие прокси-сервер squid, доступны в стандартных репозиториях Ubuntu. Установите его с помощью этой команды:

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

3. Запуск и включение службы squid

Прокси-сервер squid будет запущен по умолчанию в нашей системе Ubuntu. Чтобы проверить статус, введите эту команду:

Мы можем подтвердить, что служба работает, с помощью приведенной выше команды. Чтобы служба запускалась при загрузке, используйте команду enable:

4. Конфигурация вашего веб-браузера

5. Настройка Squid

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

Теперь, когда была сделана копия в качестве файла резервной копии, мы можем внести изменения в файл «squid.conf».

Чтобы открыть файл «squid.conf» в vim, введите следующую команду:

Чтобы изменения вступили в силу, вам потребуется перезапустить прокси-сервер squid. Используйте эту команду:

Теперь снова проверьте свой веб-браузер, введите любой URL-адрес, и он должен работать.

6. Использование ACL прокси-сервера squid (список управления доступом)

Мы также можем использовать Squid as для управления доступом к различным веб-сайтам (веб-трафику), разрешая или блокируя их. Для этого перейдите в строку acl CONNECT method CONNECT .

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

Затем отклоните утверждение.

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

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

Это предотвратит загрузку пользователем аудио- или видеофайлов с такими расширениями, как mp3, mp4, FLV и т. д. Добавьте любое расширение файла, загрузку которого вы хотите запретить. Теперь под этой строкой напишите оператор отказа.

Загрузка медиафайлов будет заблокирована.

7. Использование Squid для кэширования веб-страниц

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

Чтобы внести изменения, откройте файл squid.conf и перейдите к следующей строке:

В приведенной выше строке есть фраза «100 16 256». 100 показывает размер файла кеша, и вы можете изменить его на любой размер, например 300. 16 показывает количество каталогов, в которых сохранен файл кеша. 256 показывает нет. подкаталогов.

Вы также можете изменить размер файла кеша, добавив следующую строку в файл «squid.conf»:

Если вы хотите изменить путь к каталогу файлов кеша, создайте новую структуру каталогов с помощью этой команды:

Чтобы изменить владельца каталога кеша на прокси-сервер squid, вы должны выполнить эту команду:

Теперь остановите службу squid с помощью этой команды:

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

Теперь снова запустите службу squid с помощью следующей команды:

Подведение итогов

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

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

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

Если ваша домашняя или офисная сеть защищена прокси-сервером, вам потребуется настроить прокси для работы в Интернете.

В этом руководстве мы покажем вам несколько способов настройки параметров прокси-сервера на рабочем столе Ubuntu.

Настройка прокси-сервера с графическим интерфейсом Ubuntu Desktop

Вы можете настроить прокси-сервер в Ubuntu Desktop, выполнив следующие действия:

<р>1. Откройте Системные настройки в Ubuntu, как показано ниже:

<р>2. Нажмите Сеть => Сетевой прокси, как показано ниже:

<р>3. В раскрывающемся списке «Метод» выберите «Вручную», укажите имя хоста или IP-адрес прокси-сервера и номер порта.

<р>4. Нажмите «Применить для всей системы», чтобы применить изменения.

Настройка прокси-сервера с настольным терминалом Ubuntu

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

Основной синтаксис настройки прокси показан ниже:

Настройка постоянного прокси для одного пользователя

Вы можете настроить постоянный прокси для одного пользователя, отредактировав файл ~/.bashrc:

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

Затем откройте интерфейс терминала и отредактируйте файл ~/.bashrc, как показано ниже:

Добавьте следующие строки в конец файла, который соответствует вашему прокси-серверу:

Сохраните и закройте файл, когда закончите.

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

Настройка постоянного прокси для всех пользователей

Вы также можете настроить постоянный прокси для всех пользователей, настроив глобальные переменные в файле /etc/environment.

Для этого войдите в систему с правами root или администратора и отредактируйте файл /etc/environment:

Добавьте следующие строки в конец файла, который соответствует вашему прокси-серверу:

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

Вы также можете установить пакет, указав параметры прокси-сервера с помощью команды, как показано ниже:

Заключение

В приведенном выше руководстве мы узнали, как настроить прокси-сервер в Ubuntu несколькими способами. Надеюсь, теперь у вас достаточно знаний для настройки прокси в системе Ubuntu.

Кэширующий прокси-сервер 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:

Прокси-серверы – это тип серверного приложения, функционирующего как шлюз между конечным пользователем и интернет-ресурсом. Через прокси-сервер конечный пользователь может контролировать и отслеживать свой веб-трафик для самых разных целей, включая конфиденциальность, безопасность и кэширование. Например, вы можете использовать прокси-сервер для выполнения веб-запросов с 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, насчитывающему более миллиона разработчиков, бесплатно! Получайте помощь и делитесь знаниями в нашем разделе "Вопросы и ответы", находите руководства и инструменты, которые помогут вам расти как разработчику и масштабировать свой проект или бизнес, а также подписывайтесь на интересующие вас темы.

Читайте также: