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