Как сделать прокси сервер на ubuntu

Добавил пользователь Morpheus
Обновлено: 05.10.2024

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

Установка

В терминале введите следующую команду для установки сервера Squid:

Настройка

Squid настраивается редактированием директив, содержащихся в конфигурационном файле /etc/squid/squid.conf. Следующие примеры иллюстрируют некоторые директивы, которые могут быть изменены для воздействие на поведение сервера Squid. Для более глубокой настройки Squid смотрите раздел Ссылки.

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

Скопируйте файл /etc/squid/squid.conf и защитите его от записи следующими командами в терминале:

2. Измените директиву visible_hostname для того, чтобы присвоить серверу Squid определенное имя хоста (hostname). Это имя необязательно должно быть именем хоста компьютера. В примере оно определено как weezie:

3. Используя контроль доступа Squid, вы можете настроить, чтобы использование интернет сервиса прокси было доступно только пользователям с определенных IP адресов. Например, мы проиллюстрируем доступ пользователей только из подсети 192.168.42.0/24:

4. Используя великолепные возможности контроля доступа Squid, вы можете настроить возможность использования интернет сервиса прокси только в обычные рабочие часы. Например, мы покажем как настроить доступ сотрудников, которые работают с 9:00 до 17:00 с понедельника по пятницу из подсети 10.1.42.0/24:

This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters

This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters

В этой статье мы расскажем, как установить и настроить прокси-сервер.

img

Причин использовать его может быть множество, включая:

  • Обход ограничений доступа к определенным веб-ресурсам установленным администратором локальной сети.
  • Обход региональных ограничений доступа у определённых веб-ресурсов.
  • Анонимный доступ к веб-ресурсам путём сокрытия реального IP-адреса.

Среди всего многообразия прокси-серверов остановим свой выбор на открытом бесплатном кроссплатформенном сервере от Владимира '3APA3A' Дубровина - 3proxy опубликованный под BSD-подобной лицензией. Текст лицензии.

Среди альтернатив можно выделить Squid, но он:

  • Сложен в настройках.
  • Потребляет больше ресурсов.
  • Не скомпилирован с поддержкой SSL по умолчанию и сложен для компиляции.

Также внимание заслуживает tinyproxy.

Преимущества и недостатки:

img

Он включает в себя:

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

  • Управление доступом.
  • Ограничение ширины потребляемого канала.
  • Ограничение трафика на день, неделю и месяц.
  • Перенаправление соединений.
  • Построение цепочек соединений.
  • Ротация лог-файлов.
  • Ведение журналов через ODBC и syslog.
  • Поддержка IPv6.
  • и ряд других.

К недостаткам можно отнести:

  • Отсутствие поддержки кеширования веб-страниц.
  • Отсутствие в официальных репозиториях некоторых linux-дистрибутивов (включая Debian и Ubuntu), но в репозиториях Gentoo, RedHat, Alt Linux присутствует.
  • Операционная система Debian GNU/Linux (версии с 7 по 9) или Ubuntu (версии с 14.04 по 17.04) любой разрядности (32/64 бита).
  • Пользователь с привилегиями root (как вариант доступ через sudo).

Шаг 1. Подготавливаем инструментарий

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

Но перед этим установим всё необходимое для дальнейшей работы.

Шаг 2. Скачиваем и распаковываем исходники

Последняя версия 0.8.10 (на момент написания руководства). Узнать последнюю версию можно на официальном сайте, при необходимости просто замените цифры на необходимые в следующих парах команд:

Шаг 3. Компилируем

Шаг 4. Устанавливаем

Копируем получившийся бинарный файл:

Создадим отдельного системного пользователя proxy3 от имени которого и будет работать сервер:

Узнаём UID и GID пользователя командой:

В ответ, например, получим:

Создаём файл настроек:

Вставляем в него следующий код:

(вставка из буфера обмена возможна по клику правой кнопки мыши или Ctrl+U или F10)

(Для сохранения и закрытия нажмите CTRL+X затем Y)

Другие примеры настроек можно посмотреть командами:

или же в одном из следующих руководств на которые ссылается официальный сайт:

Вот пример конфигурации без ведения логов:

Создаём файл с пользователями и паролями:

Вставляем в него следующий код:

(вставка из буфера обмена возможна по клику правой кнопки мыши или Ctrl+U или F10)

(Для сохранения и закрытия нажмите CTRL+X затем Y)

Где логин: username и пароль: strongpassword следует изменить на свои.

Каждый новый пользователь указывается с новой строки.

Выставляем права доступа к файлам прокси-сервера:

Создаём папку для ведения логов и назначаем права на неё:

В случае наличия IPv6 на сервере, рекомендуем запускать прокси со следующей строкой в /etc/3proxy/3proxy.cfg:

Шаг 5. Добавляем в автозагрузку и запускаем прокси-сервер

Вставляем в него следующий код:

(вставка из буфера обмена возможна по клику правой кнопки мыши или Ctrl+U или F10)

(Для сохранения и закрытия нажмите CTRL+X затем Y)

Ещё один вариант скрипта инициализации:

Делаем файл исполняемым:

Добавляем в автозагрузку:

Проблемы с запуском чаще всего связаны с файлом /etc/3proxy/3proxy.cfg в т.ч. к последней строке файла. При возникновении ошибки обычно указан порядковый номер проблемной строки.

Также мы увидим его в списке запущенных процессов в ответе на команду:

Шаг 6. Открываем порт

Открываем порт (3128/tcp) на сервере. Либо указываем свой, который указан в файле /etc/3proxy/3proxy.cfg

При использовании iptables:

Шаг 7. Настраиваем окружение

Множество программ (включая веб-браузеры) поддерживают работу через прокси по умолчанию. Интерфейс настроек у каждой свой.

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

Либо использование программы проксификатора. Например такой как:

Настройки для браузера Google Chrome: Для подключения к сети Google Chrome использует системные настройки прокси-сервера. В случае Microsoft Windows это настройки можно также найти в Internet Explorer / MS Edge.

Форма с предложением ввода логина и пароля (username:strongpassword) появится, после первой попытки открытия любой веб-страницы.

Затем любые сервисы по проверки IP-адреса, например, такие как:

сообщат IP-адрес вашего Vscale-сервера вместо текущего.

Шаг 8. Удаляем временные файлы

Шаг 9. (ОПЦИОНАЛЬНО) Удаляем 3Proxy

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

Мы рассмотрели установку и базовую настройку 3proxy. Безусловно у данного прокси-сервера есть еще множество настроек, которые мы не затронули, в том числе настройку SOCKS-прокси, построение цепочек соединений, управление доступом, ограничение ширины потребляемого канала, ограничение трафика по времени, но это тема уже для отдельного руководства.

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

3proxy может выступать в роли высоко-анонимного прокси-сервера. Признаком использования подобного может быть лишь принадлежность выходного IP-адреса сервера к пулу адресов закреплённых за хостинговой компанией при просмотре WHOIS-данных и PTR-записи. В целом он хорош тем, что является маленьким и простым, но в то же время функциональным.


2. Техническое задание

Дано: 436-ФЗ и школа, в которой множество компьютеров, объединенных в сеть и подключенных к интернету через роутер MikroTik или любой другой.

3. Решение задачи

Был найден неиспользуемый стационарный компьютер с двух-ядерным Intel-ом, 1 Гб ОЗУ и жестким на 80 Gb.
Для решения будет сделано следующее:

3.1. Установка и настройка Ubuntu 18.04

Итак, Ubuntu установлена. Сеть, если у вас DHCP, уже настроена. Войдем в режим суперпользователя, чтобы каждый раз не добавлять sudo к командам.


Введем свой пароль и обновим систему.


Установим текстовый редактор и файловый менеджер.


Чтобы сохранить файл в nano, необходимо нажать Ctrl+O и следом Y. Выход из редактора осуществляется нажатием Ctrl+X. Можно сохранить файл сразу перед выходом, нажав Ctrl+X и следом Y.
Чтобы открыть файловый менеджер, введите mc. Откроется типичный DOS-овский NortonCommander или в Windows TotalCommander/FAR с двумя панелями. Хотя я привык работать с консолью, файловый менеджер тоже иногда помогает, например, найти нужный файл быстрее.

Если же у вас не DHCP или вы хотите отдельный IP-адрес для своего сервера, как этого захотел я, то перейдем к настройке.

В отличии от предыдущих версий Ubuntu, в новой 18.04 сеть настраивается уже не в привычном всем нам /etc/network/interfaces, а через netplan в файле /etc/netplan/*.yaml. Файл может называться по разному, но он там один. Сам же /etc/network/interfaces пишет нам следующее:


Также, если вы захотите обновиться с версии старше до 18.04, настройки сети останутся там, где и были. Netplan актуален только для чистой установки 18.04.

Приступим, все-таки, к настройке сети.

Для начала посмотрим название сетевого интерфейса, присвоенное ОС, и запомним его.


Теперь откроем файл с настройками.


В нем уже должна быть настройка DHCP. Приведем файл к следующему виду.


Вписываем свои интерфейс, адрес и шлюз. DNS рекомендую оставить эти — Яндекс.DNS Детский будет как дополнительная защита. Такой же DNS настроен у меня в роутере. В любом случае, необходимо указывать тот DNS, который раздает роутер.

Здесь необходимо обратить внимание на пробелы (именно пробелы, а не табуляция). Каждый, своего рода, пункт отделяется от предыдущего пробелом. К примеру, если после nameservers строку addresses не отделить пробелом, а выровнять со строкой выше, то, при попытке применения настроек, netplan выдаст ошибку.


Перезагрузим сервер, на всякий случай.


Также, добавил альтернативный вариант настройки сети, как для DHCP, так и для статического IP, если не устраивает netplan.

В Ubuntu 18.04 можно вернуться к привычному варианту настройки сети через /etc/network/interfaces. Для этого в самом файле указано, что нужно установить утилиту ifupdown. Установим ее:

Теперь откроем файл изначальных настроек в netplan

и закомментируем все его содержимое, чтобы не было конфликтов.
Далее откроем файл настроек сети

И добавим в него:
для статического IP-адреса

для динамического (DHCP)

Если используете этот вариант настройки сети, то далее, в настройках Firewall, можете отказаться вообще от Webmin и использовать вариант настройки под спойлером (хотя вариант с Webmin тоже будет работать)

Теперь необходимо включить прохождение пакетов сквозь наш сервер. Открываем файл /etc/sysctl.conf

Ищем в нем строку net.ipv4.ip_forward=1 и раскомментируем ее. Если стоит значение 0, то меняем на 1.
Введем команду для применения настройки


После настройки сети, рекомендую перейти сразу в терминал, и продолжать работу уже в нем. Для этого, если вы не выбрали на этапе установки OpenSSH, установим его.


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

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

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

Основа заложена. Теперь перейдем к установке и настройке Squid.

3.2.1. Сборка и установка Squid

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

После этого обновим пакеты.


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


И добавим все необходимые пакеты для сборки.


Установим библиотеку для поддержки SSL.


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


Перейдем в созданную папку и скачаем исходники Squid.


В папке build появится папка с именем squid3 и номером релиза. В Ubuntu 18.04.3 это 3.5.27. Перейдем в нее.


Перед сборкой необходимо указать опции. Откроем файл с ними.


Ищем перечисление опций, как на картинке



Добавляем следующие опции.


Обратите внимание, что на картинке опции уже добавлены, а символ "\" должен стоять после каждой строки в опциях, кроме последней.

Итак, для сборки все готово. Теперь перейдем в папку с исходниками Squid, хотя вы должны быть уже в ней.


И введем команду для сборки.


Сборка будет идти очень долго, у меня занимало в среднем от 2 до 4 часов. Зависит от быстродействия компьютера. По окончании сборки вы увидите ошибку подписи пакетов. Это нормально — ошибку игнорируем.

Теперь перейдем в папку Build.


И установим Squid.


Сразу нарываемся на ошибку о неудовлетворенных зависимостях и вводим команду


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


3.2.2. Настройка Squid и фильтрации

Итак, Squid установлен, осталось его настроить под наши нужды.

Все настройки находятся в файле /etc/squid/squid.conf. Он содержит множество комментариев и на первый взгляд кажется очень сложным, но на самом деле ничего сверхсложного в нем нет. Для начала, почистим его от комментариев, предварительно скопировав оригинал, если вы, вдруг, захотите изучить его подробнее. Для удобства, перейдем сразу в папку со Squid-ом.


Теперь откроем squid.conf


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

Первый блок выглядит следующим образом.


Он отвечает за стандартные acl параметры. В нем в localnet изменяем локальную сеть на свою, а также добавляем acl рабочего времени (по желанию). Рабочее время я добавил ввиду того, что ко мне часто приходят учителя с жалобой, что не могут ничего найти, все недоступно. Я, конечно, рад, что все работает, как надо, но, честно говоря, надоело это выслушивать. Теперь на их претензию я сообщаю, что после 15.00 фильтрация отключается, и они могут свободно (почти) найти информацию, которая им нужна. Вы можете добавить свое время, или оставить фильтрацию круглосуточной, не добавляя этот acl.


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

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


Восьмой блок задает кеш и лог нашего Squid. Здесь стоит отметить только параметр logfile_rotate, обозначающий количество дней, в течении которых хранится лог.


На этом настройка squid.conf закончена. Сохраняем файл и переходим к созданию сертификата и списков.

Перейдем в папку со Squid


И введем следующую команду для создания сертификата


Далее необходимо будет ввести данные сертификата. Срок действия сертификата указан 100 лет, чтобы забыть о нем надолго. Нужен он только для Proxy.

Теперь создадим наши файлы списков.


и добавим в него следующее выражение.


и запишем в него следующее выражение


Перейти на вкладку Sources и посмотреть, с каких еще ресурсов сайт подгружает информацию.

Создайте обычный текстовый файл на своем компьютере, найдите и скопируйте в него список разрешенных сайтов, дополните его своим. Затем, в обычном блокноте сделайте авто-замену точки на слэш-точку (\.) и той же авто-заменой удалите лишнее (www, http, символ "/" и тд). Потом такой файл можно, используя терминал, сразу скопировать в листы на сервере.

Теперь проверим конфигурацию.


Если все хорошо, остановим Squid.


И снова запустим Squid


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

3.3. Мониторинг состояния сервера и настройка Firewall

Перед началом установки, добавим репозиторий Webmin. Открываем sources.list.


И добавляем внизу строку.


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


Следом обновляем список пакетов и устанавливаем утилиту


Подключиться к серверу можно в любом браузере введя в строку адреса


По умолчанию Webmin подключается по SSL, и большинство браузеров выдают ошибку не доверенного сертификата. Чтобы каждый раз не выбирать доверие, отключим SSL. Для этого откроем файл /etc/webmin/miniserv.conf


Найдем в нем строку ssl=1 и заменим ее на ssl=0. В этом же файле можно изменить порт подключения. По умолчанию он 10000. Вы можете поставить любой свободный.


Идем к блоку *nat и в конце перед COMMIT добавляем следующие правила.

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

И добавим следующее содержимое

Как и в случае с Webmin, я представил два варианта правил с DNAT и REDIRECT. Вы можете использовать оба, или взять один вариант, поставив соответствующие порты.
Теперь добавим наш файл в загрузку сразу после запуска сети. Откроем файл настроек сети

И добавим внизу файла строку

PS: плюс такого варианта в том, что вы можете в будущем добавлять свои правила, просто редактируя файл /etc/nat. В Webmin несколько сложнее.

На этом настройка сервера закончена. Перезагрузим его.


И перейдем к настройке роутера MikroTik.

3.4. Настройка роутера MikroTik для перенаправления трафика на Proxy

Будем считать, что вы уже скачали утилиту WinBox для удаленного управления, интернет и локальная сеть настроены, firewall на роутере чистый. вы знаете название интерфейса локальной сети (посмотреть можно в IP — DHCP Server — DHCP).

в) Переходим на вкладку Mangle в том же IP — Firewall и жмем на "+". Откроется окно с вкладками. На вкладке General заполняем следующие поля:


На вкладке Action проверяем наличие значения Accept и жмем ОК.

Повторяем процесс, но в поле Dst. Port ставим значение 443.

г) Снова нажимаем на "+" и на вкладке General снова заполняем следующие поля:


Переходим на вкладку Advanced и в поле Src. Address List выбираем наш список адресов управления "Admins". Обязательно нажимаем на появившийся квадратик рядом со списком. Появится восклицательный знак "!", означающий логическое НЕ или ОТРИЦАНИЕ.

Переходим на вкладку Action и заполняем поля:


Жмем ОК и проделываем те же действия, но в поле Dst. Port указываем значение 443.

д) Наконец добавим последнее правило. Жмем плюсик и заполняем следующие поля на вкладке General:


В итоге, должно получиться следующее с вашими параметрами. Порядок важен!


е) Идем в IP — Routes и жмем на "+". Заполняем следующие поля:

3.5. Альтернативная настройка для MikroTik и других роутеров

Данный вариант подойдет как для роутера MikroTik, так и для любого другого, даже самого простого (за исключением провайдерских арендованных кусков сами знаете чего). В этом случае мы реализуем разделение доступа в интернет не на роутере, а на самом Squid. Итак, начнем.
а) Будем считать, что вы дошли до этого пункта, выполнив все вышестоящие, включая настройку перенаправления на Proxy в MikroTik. Для беспроблемной работы описываемого варианта, нам необходимо отменить подпункт е) пункта 3.4 настоящей статьи. Можно отменить весь пункт 3.4 (оставив, пожалуй, подпункт а) для того, чтобы наши IP не изменялись), но это по желанию — нам важно отменить саму маршрутизацию. Для этого идем в IP — Routes, ищем наш маршрут, выделяем его и жмем на красный крестик (не плюсик, а крестик, который рядом с галочкой). Маршрут станет серым => он отключен. Фильтрация также отключилась, теперь все клиенты идут в интернет напрямую через роутер.

б) Теперь заходим на наш сервер и переходим в папку со Squid

Открываем файл конфигурации

И добавляем в него по блокам:
В первый блок сразу после строки с acl localnet…

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

Далее блок остается без изменений, так как следом идут учителя (все остальные IP) с фильтрацией по их белому списку и в рабочее время (если указывали). Вы можете также пустить группу admins в обход черного списка, поставив разрешающее правило выше запрещающего, или добавить отдельные IP (например свой) в отдельный acl и поставить его в правилах выше blacklist.
Четвертый и пятый блоки без изменений.
В шестой блок добавляем

В седьмой блок добавляем после ssl_bump terminate blacklist_ssl

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

в) Теперь создадим наши списки IP-адресов.

И белые списки для учеников.

Добавьте в соответствующие списки необходимые IP-адреса и сайты. В ученический список сайтов можно скопировать список для учителей, убрав оттуда не нужные ученикам сайты. Копирование файлов в Linux осуществляется командой


г) Мы подошли к самому главному, а именно, как же заставить клиентов ходить в интернет через наш Proxy. Нам необходимо сменить шлюз нашего DHCP-сервера с адреса роутера на адрес нашего сервера. Разумеется, что для этого адрес сервера должен быть статическим, или привязан к MAC.
В MikroTik:
Идем в IP — DHCP Server — Network и два раза кликаем на нашей сети. В поле Gateway меняем адрес роутера на адрес Proxy-сервера. Жмем ОК и все. Можете перезагрузить роутер, чтобы настройки грамотно обновились у всех активных клиентов. После этого на клиентах, скорее всего, изменится тип сети на общественную (если стояла частная).
В обычном роутере:
Поищите в руководстве к вашему роутеру, где изменить шлюз DHCP-сервера, но вангую, что в его настройках :)

Итог: в результате данного альтернативного решения мы смогли сделать более тонкую настройку доступа по IP и спискам, и получить в логах Squid нормальные IP-адреса клиентов. Если нужно, чтобы какие-то клиенты ходили в интернет минуя Proxy через роутер, то читаем спойлер.

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

4. Заключение

5. Список источников

6. Примечания автора

UPD1: добавил альтернативную настройку сети и Firewall
UPD2: добавил альтернативный вариант настройки роутера, где исправлены проблемы с отображением адресов в логах Squid.
UPD3: добавил исправление в 3.1 — включение прохождения пакетов сквозь сервер, которое забыл добавить изначально. Иначе не работает интернет. Спасибо Dmitry1986 за тестирование статьи.

Изображение для статьи VPS на Ubuntu. Чаcть 4 - прокси-сервер Squid

В этой части мы установим и настроим на нашем VPS на Ubuntu прокси-сервер Squid, который, в современных условиях, часто необходим для просмотра заблокированных ресурсов. Итак, давайте приступим.

Установка и настройка Squid

Устанавливаем squid следующей командой:

Во-первых, для удобства мы сделаем резервную копию файла squid.conf просто переименовав его в squid.conf.dist . А во-вторых, создадим файл конфигурации, убрав все комментарии и пустые строки. Для удобства все наши дальнейшие действия будем выполнять с правами root.

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

Наша задача настроить сервер таким образом, чтобы им могли пользоваться только те, кому мы дадим к нему доступ. Для этого в начало файла /etc/squid/squid.conf вставьте следующие строки:

В этот же файл добавьте правило доступа:

В конечном итоге у вас должно получиться примерно следующее содержимое squid.conf :

Настройка пользователей

После этого нужно создать файл, содержащий имена пользователей и хэши их паролей. Для этого можно воспользоваться утилитой htdigest из пакета apache2-utils или следующим скриптом:

Сохраните его в папку /etc/squid под именем genpasswd . Не забудьте изменить права:

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

Скрипт запросит у вас пароль и запишет строку с аутентификационными данными пользователя myuser в файл /etc/squid/users . Если нужно, вы можете добавить еще одного:

В Ubuntu 18.04 демон squid запускает программу аутентификации digest_file_auth от имени пользователя proxy, который создается в процессе установки. Поэтому нам надо изменить атрибуты нашего файла с пользователями:

После всех наших действий перезапустим сервис следующей командой:

Но перед этим желательно проверить правильность файла настроек при помощи:

Настройка браузера

Сейчас сервис готов к проверке прав пользователей на доступ. Осталось лишь настроить браузер на использование нашего прокси-сервера. Я расскажу об этом на примере Firefox, но практически также можно настроить Chrome.

Для автоматического изменения настроек прокси-сервера в зависимости от ресурса, который вы посещаете, есть замечательное расширение Proxy SwitchyOmega. После установки этого расширения вы можете добавить профиль своего сервера:

Добавление профиля прокси-сервера в расширении Proxy SwitchyOmega

Добавление профиля прокси-сервера

затем ввести адрес, порт

Настройка адреса и порта прокси-сервера в расширении Proxy SwitchyOmega

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

и данные пользователя

Настройка пользователя и пароля прокси-сервера в расширении Proxy SwitchyOmega

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

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

На этом настройка Squid на нашем VPS на Ubuntu завершена. Жду ваших вопросов и замечаний в комментариях.

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