Устанавливаем прокси сервер Squid c веб интерфейсом SAMS в Debian Wheezy
Сегодня мы с Вами установим и настроим прокси сервер SQUID с веб интерфейсом SAMS версии 1.5 для управления прокси сервером на Debian Wheezy. Данное руководство это одна из статей инструкции по установке и настройке интернет сервера.
]]> SAMS ]]> — это система для управления доступа пользователей через прокси сервер к ресурсам интернет. Она идеально подходит для использования как в частных фирмах так и в госудаственных учреждениях. Всю работу по проксированию, перенаправлению запросов, кэшированию и авторизации берет на себя proxy-сервер Squid, а SAMS занимается учетом трафика и управлением пользователями.
После того как настроили сервер по указанной выше инструкции приступаем к установке прокси сервера squid, а также настройке веб интерфейса SAMS для управления прокси сервером SQUID, а также мы установим редиректор для блокирования доступа к сайтам.
Добавляем репозиторий от Debian Squeeze для установки зависимостей во время установки веб интерфейса SAMS выполнив команду:
Обновляем репозиторий выполнив команду:
Редакторы конфигурационных файлов:
vi – требует прочтения инструкции пользователем. Для того чтоб пройти экспресс курс запустить команду vimtutor и пройдите основные команды для удобного пользования программой.
mcedit — более легкий в работе для начинающего линуксоида, можете зменить vi на mcedit и редактировать конфигурационные файлы. После открытия файла в редакторе mcedit нажимаем F7 появится окно поиска, вводим в него то, что необходимо найти нажимаем Enter. Если нашло не то что нужно, снова повторяем поиск, и так пока не найдем нужную строку. После того как Вы внесли необходимые изменения и хотите сохранить файл нажимаем кнопку F2 и соглашаемся с изменением. После сохранения для закрытия сохраненного файла нажимаем кнопку F10
Устанавливаем прокси сервер SQUID выполнив команду:
делаем бекап конфига squid который будем изменять выполнив команду:
Открываем удобным для Вас редактором (vi, mcedit, nano) конфигурационный файл /etc/squid/squid.conf
Далее я буду писать что ищем и как должно выглядеть после изменения (первый как должно выглядеть, остальные по примеру):
Внимание. Если у Вас пользователи будут авторизироватся при помощи пароля, прозрачная авторизация работать не будет, необходимо в браузере пользователя прописывать IP:PORT Вашего прокси сервера.
Установка из исходников прокси-сервера Squ > 06.03.2019 Автор:Жаконда
Рассмотрим как установить из исходников актуальную (на момент написания статьи) версию кеширующего прокси-сервера Squid 4.6 на Debian 9 Stretch.
Подготовка системы
Обновляем систему до актуального состояния:
Устанавливаем необходимые пакеты для сборки и работы squid:
Установка прокси-сервера Squid
Скачиваем исходник «squid», распаковываем его:
Выполняем конфигурацию «squid», с указанием каталогов размещения файлов «squid», а так же поддержку HTTPS:
Компилируем «squid» и по окончании компиляции выполняем установку:
Создаем необходимые каталоги, для работы «squid» и назначаем для них права доступа:
В файле конфигурации (/etc/squid/squid.conf), необходимо указать расположение каталога с файлами ошибок:
Теперь создаем стартовый скрипт прокси-сервера «squid»:
Вписываем в него следующее:
Делаем скрипт исполняемым и добавляем в автозагрузку:
Запускаем прокси-сервер «squid»:
Проверим запустился ли демон «squid»:
На этом установка кешируешего прокси-сервера Squid 4.6 завершена. В рамках данной статьи, настройка «squid» не будет рассматриваться, с вариантом настройки можно ознакомится в этой статье.
ПОНРАВИЛАСЬ ИЛИ ОКАЗАЛАСЬ ПОЛЕЗНОЙ СТАТЬЯ, ПОБЛАГОДАРИ АВТОРА
Всего комментариев: 15 Комментировать
Здравствуйте.
Все делаю по инструкции. При запуске ошибка. Помогите 🙁
https://yadi.sk/i/OJl3ZpMKaBRTCA
Поправил листинг INIT-файла, проверил сейчас нормально.
Почему при добавлении в конфиг HTTPS_PORT 3130 начинает ругаться
После всех манипуляций при запуске получаю ошибку:
————-
squid.service — LSB: Squid HTTP Proxy version 4.x
Loaded: loaded (/etc/init.d/squid; generated)
Active: failed (Result: exit-code) since Tue 2019-05-28 11:46:18 MSK; 1min 23s ago
Docs: man:systemd-sysv-generator(8)
Process: 1403 ExecStart=/etc/init.d/squ > Main P >
мая 28 11:46:16 chr1-proxy02 squid[1494]: Squid Parent: (squid-1) process 1527 started
мая 28 11:46:17 chr1-proxy02 (squid-1)[1527]: FATAL: I don’t handle this error well!
мая 28 11:46:17 chr1-proxy02 squid[1494]: Squid Parent: squid-1 process 1527 exited with status 1
мая 28 11:46:17 chr1-proxy02 squid[1494]: Squid Parent: (squid-1) process 1536 started
мая 28 11:46:18 chr1-proxy02 (squid-1)[1536]: FATAL: I don’t handle this error well!
мая 28 11:46:18 chr1-proxy02 squid[1494]: Squid Parent: squid-1 process 1536 exited with status 1
мая 28 11:46:18 chr1-proxy02 squid[1494]: Squid Parent: squid-1 process 1536 will not be restarted for 3600 secon
мая 28 11:46:18 chr1-proxy02 squid[1494]: Exiting due to repeated, frequent failures
мая 28 11:46:18 chr1-proxy02 systemd[1]: squ > мая 28 11:46:18 chr1-proxy02 systemd[1]: squid.service: Failed with result ‘exit-code’.
———
Подскажите, пожалуйста, как исправить!
Добрый день! Видимо не все манипуляции были выполнены корректно. Внимательно еще раз идите по шагам. Все что написано в статье 146% проверено и не раз разворачивалось.
«Выполняем конфигурацию «squid», с указанием каталогов размещения файлов «squid», а так же поддержку HTTS:»
вот тут важный опечаток 🙂
HTTP или HTTPS?
Опечатка 🙂 Поправил, спасибо!
пыхчу сейчас над конфигурацией прокси v4.8 с https
использую твои 2 статьи и еще несколько ресурсов познания.
вопрос. 🙂
кальмар ругается на опции ssl
ERROR: Directive ‘sslproxy_flags’ is obsolete.
sslproxy_flags : Remove this line. Use tls_outgoing_options flags= instead.
как теперь должна выглядеть следующая строка?
acl blocked ssl::server_name «/etc/squid/blsite/blacklist»
получается что из следующей статьи конфиг кальмара сюда уже не совсем подходит.
Там все проще, в первой статье этой первый опыт был работы со Squid, много считаю лишнего там в конфиге. Сейчас все проще сделано у меня и успешно контрится HTTP и HTTPS трафик. Попробую сегодня или завтра выложить конфиг пример.
буду благодарен.
Прочитав кучу статей, мне больше понравились твои 2. и конфиг кальмара с поставленной задачей совпадают 🙂
это я сам_дурак называется.
ругается совсем на другую строчку.
sslproxy_flags DONT_VERIFY_PEER
вот на нее. отключил. все равно не запускается кальмар… причем squid -k parse не ругается и ошибок нет.
отключил все строки по https — завелось. Ковыряюсь дальше 🙂
Здравствуйте!
Аналогичная проблема, все по инструкции, и вот нате вам!
# service squid start
Job for squid.service failed because the control process exited with error code.
See «systemctl status squid.service» and «journalctl -xe» for details.
root@omv:
# service squid status
● squid.service — LSB: Squid HTTP Proxy version 4.x
Loaded: loaded (/etc/init.d/squid; generated; vendor preset: enabled)
Active: failed (Result: exit-code) since Sat 2019-10-12 21:34:33 +05; 34s ago
Docs: man:systemd-sysv-generator(8)
Process: 2465 ExecStart=/etc/init.d/squ >
окт 12 21:34:33 omv systemd[1]: Starting LSB: Squid HTTP Proxy version 4.x…
окт 12 21:34:33 omv squid[2465]: /etc/init.d/squid: 103: /etc/init.d/squid: Syntax error: «(» unexpected (expecting «>»)
окт 12 21:34:33 omv systemd[1]: squ > окт 12 21:34:33 omv systemd[1]: Failed to start LSB: Squid HTTP Proxy version 4.x.
окт 12 21:34:33 omv systemd[1]: squid.service: Unit entered failed state.
окт 12 21:34:33 omv systemd[1]: squid.service: Failed with result ‘exit-code’.
После выполнения команды «Make» и «Make Install» возникает сообщение
make: *** No targets specified and no makefile found. Stop.
config.status: creating Makefile
config.status: creating config.h
config.status: executing depfiles commands
config.status: executing libtool commands
Подскажите последние 2 вывода насчет depfiles и libtool, что они означают.
Означают что выполняются depfiles и libtool команды
Установка и настройка прокси-сервера Squ > Рубрика: Линукс
Squid – самый популярный HTTP-прокси сервер для кэширования и перенаправления. Он широко используется различными компаниями для кэширования веб-страниц с веб-сервера для повышения скорости работы последнего, снижения времени ответа и ограничения использования пропускной способности сети. В данном руководстве мы рассмотрим установку прокси-сервера squid и его использование в качестве HTTP-прокси сервера.
Установка прокси-сервера Squid
Прежде чем начать, стоит отметить, что сервер Squid не требует значительных ресурсов, но использование оперативной памяти может изменяться в зависимости от количества клиентов, осуществляющих доступ в интернет через прокси-сервер.
Пакет Squid доступен в стандартном репозитории
В Ubuntu/Debian
Запустите его и задайте запуск при загрузке:
После этого можно проверить статус службы:
Также можно указать параметр intercept (или transparent для старых версий), например, http_port 3128 intercept. В этом случае ваш сервер будет работать как прозрачный прокси (без необходимости настраивать его использование на стороне клиента).
Для последующего понимания работы прокси, нужно понять следующие параметры
http_access-Данный параметр регулирует доступ к HTTP-прокси серверу. С помощью него можно разрешить или запретить доступ через сервер как к определенным ресурсам в интернете, так и определенным группам пользователей.
В данный момент любой доступ запрещен (deny all). Чтобы начать использование сервера, нужно изменить ее, например, на http_access allow all (разрешить любой доступ). Параметр all можно заменить на имя списка доступа, которые мы рассмотрим чуть ниже.
acl(access control list) — В этом параметре указываются ресурсы в интернете, порты, ip адреса пользователей, локальные сети. В общем это список к которому будут применяться различные правила. Таких списков может быть неограниченное количество.
После внесения изменений нужно перезапустить Squid следующей командой:
Настройка Squid как HTTP-прокси
В данном разделе мы рассмотрим настройку Squid в качестве HTTP-прокси, использующий для аутентификации только IP-адрес клиента.
Общий синтаксис в прокси выглядит следующим образом
При описании контроля доступа можно использовать оператор отрицания «!». Например следующая строка запрещает доступ ко всем портам, кроме описанных в листе Safe_ports
Добавление списков контроля доступа
Рассмотрим создание списков доступа acl подробнее. По умолчанию уже есть преднастроенный acl localnet
Вы можете его отредактировать или удалить. Создадим новый acl
Добавьте правило следующего вида:
Где boss — имя списка контроля доступа, src — параметр, задающий адрес источника (source), а XX.XX.XX.XX — IP-адрес машины клиента (можно также указывать подсети или диапазоны). Новые списки контроля доступа нужно добавлять в начало раздела ACL. Аналогичным образом можно создавать списки доступа с ограничением по адресу места назначения (параметр dst вместо src), а также использовать вместо адресов доменные имена (srcdomain для источника, dstdomain для места назначения).
Очень желательно рядом с ACL указывать комментарий с кратким описанием пользователя этого IP-адреса, например:
После этого нужно разрешить доступ для boss:
Чтобы изменения вступили в силу, нужно перезагрузить Squid.
Открытие портов
По умолчанию в конфигурации Squid разрешено использование только определенных портов.
Если требуется использование дополнительных портов, можно задать их в файле конфигурации:
Где XXX — номер порта, использование которого нужно разрешить. Снова желательно пояснять ACL комментарием.
Не забываем перезапустить Squid для применения настроек
Работа прокси в прозрачном режиме
Как уже было сказано, прозрачный режим предполагает автоматическую работу прокси-сервера без необходимости в явном виде указывать его на клиентских машинах. В общем случае клиент может вообще не знать, что работает через прокси. Это может быть полезным для обеспечения анонимности, ограничения доступа к некоторым сайтам и даже экономии сетевого трафика, так как прокси-сервер может сжимать данные.
Помимо уже рассмотренной выше опции intercept в параметре http_port файла конфигурации, для обеспечения правильной работы прозрачного прокси требуется соответствующим образом настроить маршрутизатор. Чтобы все входящие и исходящие запросы на порт 80 перенаправлялись на порт, используемый прокси-сервером.
В случае использования iptables нужно добавить следующие правила (в рассматриваемом примере eth1 — внутренний интерфейс, eth0 — внешний, SQUID_IP — IP-адрес прокси-сервера):
Аутентификация клиента
Cоздадим файл passwd для хранения имени пользователя для аутентификации. Сквид работает как пользователь squid, поэтому он должен быть владельцем файла.
Создадим нового пользователя ivan и установим ему пароль.