Astra linux squid настройка

Боремся с ЕСПД от Ростелеком. Ставим и настраиваем SQUID. Делаем прозрачный прокси

Примерно в середине этого учебного года во всех школа была подключена так называемая ЕСПД (единая система передачи данных) от Ростелеком. Казалось бы, отличная идея – нам дали довольно быстрый канал, да еще и бесплатно. Что может быть плохого? И на самом деле, как бы плохо я не относился к Ростелекому, скорость хорошая, задержка низкая, надежность вполне. Действительно, все хорошо работает, но. Ростелеком не был бы Ростелекомом, если бы все было идеально =) Настройка данной услуги сделана через явное указание прокси в системе. То есть, сисадминам в каждой школе (например, у нас 150 машин) нужно физический попасть на каждую машину, зайти в настройки, ввести соответствующие данные, затем установить корневой сертификат от Ростелекома, и только тогда все это заработает. «Ну, что такого?» –скажете вы. Ну, сделал скриптик, да пробежался по всей школе, или вообще через AD все можно автоматизировать. Да, но не во всех школах есть AD, а учитывая текущую ситуацию с софтом в РФ, может быть, уже завтра у нас не будет никаких виндовсов. Ну, а со скриптом все-таки надо пройтись лично по каждому ПК. А если у вас девайс, который не понимает скриптики от виндовса? Например, 30 планшетов, – поди настрой-ка их. В общем, все это создает довольно много проблем, а вот что мешало сделать все через обычное прозрачное проксирование, ума не приложу. Тем более, до этой навороченной ЕСПД все было как раз-таки через прозрачное проксирование, и все замечательно работало.

Ну да ладно, – подумал я и позвонил в техподдержку Ростелекома с вопросом: мол, ребят, а как мне это сделать-то попроще? Неужели нельзя сделать обычный прозрачный прокси-шлюз? На что мне грубо и резко ответили: это невозможно, и не лезь не в свое дело, и вообще мы тут компуХтерами занимаемся, это сложно очень, а вы тут еще отвлекаете. Я немного приукрасил, конечно, но фраза «ЭТО НЕВОЗМОЖНО» прозвучала для меня, как красная тряпка. Вооружившись желанием (не первый раз убеждаюсь, что этого более чем достаточно), я принялся изучать информацию. Заранее хочу выразить огромный респект Герману Сырыкову, без него я бы точно не смог это реализовать. Огромное спасибо, бро, за теоретическое сопровождение. Еще хотелось бы обозначить, что для кого-то это действительно тривиальная задачка, которую он решает по несколько раз в неделю. Я же являюсь обычной «училкой», и у меня нет ни серьезных инженерных знаний, ни многолетнего опыта настройки сетей за спиной.

Читайте также:  What is loop device in linux

Необходимо на хорошем уровне уметь обращаться с операционными системами семейства Linux. Понимать, как работают компьютерные сети. Понимать теоретические принципы работы маршрутизации и прокси-серверов. Понимать принципы работы веб-фильтров. Знать, как устроен перехват и фильтрация трафика, в том числе HTTPS. Иметь опыт или хотя бы понимание как собирать программы под Linux

Цель сделать максимально простую работу клиентов ЕСПД. Я хочу воткнуть провод и пользоваться, подключиться к Wi-Fi и наслаждаться. Я не хочу возиться с настройками прокси в системе и вот это вот все.

Итак, безумие началось. Устанавливаем ubuntu server. Производим первичную конфигурацию сетевых настроек (ip, шлюз и тд.). Собираем SQUID. Его нужно именно собирать, так как тот, что в репозиториях, во-первых, довольно старый, во-вторых, без поддержки HTTPS. Настраиваем SQUID таким образом, чтобы он принимал трафик в «прозрачном режиме» и перенаправлял все содержимое портов 80 и 433 на прокси-сервер Ростелекома. Устанавливаем на клиенты сертификат. Кто-то резонно заметит, что все равно придется ходить по всем машинам и ставить сертификат. Не совсем так. Дело в том, что ставить сертификат нужно только там, где нам нужна фильтрация от Ростелекома, а там, где она не нужна, мы можем настроить работу без подмены сертификата вообще. То есть, сунул провод в ПК и все, оно само работает.

Я не буду описывать, как поставить и настроить ubuntu server. Уровень статьи – «продвинутый администратор», поэтому будем подразумевать, что установить и настроить сетевой шлюз читатель в состоянии.

На уже рабочем шлюзе. Все делаем под рутом:

Включаем репозиторий «Universe»:

Ставим все необходимые для компиляции сквида вкусняшки:

apt-get -y install libcppunit-dev libsasl2-dev libxml2-dev libkrb5-dev libdb-dev libnetfilter-conntrack-dev libexpat1-dev libcap-dev libldap2-dev libpam0g-dev libgnutls28-dev libssl-dev libdbi-perl libecap3 libecap3-dev libsystemd-dev libtdb-dev

Теперь зайдем на http://http.debian.net/debian/pool/main/s/squid/ и найдем там нужную нам версию squid. На момент написания материала последняя версия была 5.5, её я и собираю. Если вам нужна другая версия, то замените 5.5 на свою, например, 4.6. К слову, качать самую последнюю версию не рекомендуется – можно напороться на баги. Еще часто мелькала информация, что версии ниже 5.0 не умеют работать по HTTPS с родительским прокси и клиентом одновременно (принять от клиента по HTTPS и передать родителю по HTTPS). Не знаю, правда это или нет.

Переходим в папку исходников:

Читайте также:  Собрать линукс под arm

Теперь важно перед сборкой указать опции для работы с STL/SSL, иначе сквид соберется без их поддержки.

Заходим в папку debian и находим там файл rules. В нем нам нужно добавить в конец переменной BUILDCXX следующие параметры:

Сохраняем файл и возвращаемся на 2 каталога вверх. Запускаем сборку:

Сборка займет довольно много времени.

Устанавливаем собранные пакеты. Сперва поставим языковой пакет:

Отлично. Теперь ставим сам сквид:

После сборки запускаем и смотрим все ли завелось:

Если стоит статус «запущен», то все отлично, можно переходить к настройке.

Итак, теперь нужно немного поднастроить наш прокси-сервер. Первым делом мы сгенерируем необходимые сертификаты, которые будем «скармливать» клиентскому браузеру. Хранить мы их будем в каталоге настроек.

Инициируем /var/lib/ssl_db делается командой

Для удобства создадим каталог ssl:

Генерируем закрытый ключик:

Подготавливаем запрос на выдачу сертификата:

openssl x509 -req -days 3650 -in /etc/squid/ssl/squid.csr -signkey /etc/squid/ssl/squid.key -out /etc/squid/ssl/squid.pem

Генерируем корневой сертификат, который затем будем ставить на клиенты:

Теперь нужно поменять права на каталог сертификатов:

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

Теперь уберем из файла конфигурации все лишнее, все, что начинается с # и $:

Окей, теперь открываем файл в любимом редакторе (я предпочитаю vi) и вносим следующие изменения:

Я убрал все лишнее что на мой взгляд мне не нужно в текущей ситуации. Файл конфиг файл выглядит так:

http_port 3128
http_port 3129 intercept
https_port 3130 intercept ssl-bump cert=/etc/squid/ssl/squid.pem key=/etc/squid/ssl/squid.key

Давайте пробежимся по основным моментам.

Разрешаем всем и все. В дальнейшем рекомендую прописать сбда конкретыне ip адреса ваших подсетей.

Обязательно оставляем непрозрачный доступ к прокси, иначе он будет выдавать ошибку при старте:

Теперь прописываем 2 прозрачных порта – один для HTTP, второй для HTTPS, соответственно. Не забываем в порт HTTPS прописать созданные ранее ключ и сертификат:

https_port 3130 intercept ssl-bump generate-host-certificates=on dynamic_cert_mem_cache_size=4MB cert=/etc/squid/ssl/squid.pem key=/etc/squid/ssl/squid.key

Добавляем тег, который говорит, что мы будем разбирать HTTPS трафик:

Если нам не нужна фильтрация, то пишем вместо all «none» или «splace». В этом случае на клиенты не нужно будет ставить сертификат сквида.

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

Отлично. Теперь прописываем сам родительский прокси Ростелекома, где 10.0.10.10 – это ip, 3128 – порт:

Последнее, что нам нужно указать – это программа, которая будет создавать временные сертификаты на каждого клиента (или как-то так, я точно не разобрался =)):

Сохраняем файл, перезапускаем SQUID:

Остался последний шаг – установить корневой сертификат самого Ростелекома. Для того, чтобы это сделать в ubuntu, достаточно поместить его в папку /usr/local/share/ca-certificates/ и вызвать команду:

Читайте также:  Alt linux nvidia driver

Если команда выдала «add: 1», значит, сертификат успешно обнаружен и установлен.

Перенаправление трафика в сам SQUID

Нам необходимо перенаправить весь трафик с портов 80 и 443 на порты 3129 и 3130. Для этого нам нужно прописать следующие 2 правила:

Настройка клиента с фильтрацией

Вот и все. Теперь осталось на клиенте установить сертификат squid.der, который мы сгенерировали ранее, если нам необходима фильтрация. Устанавливать его нужно в «доверительные центры сертификации». Если фильтрация не нужна то все должно работать «сходу», просто после всовывания провода в разьем сетевой карты. Можно проверять работу всей системы.

P.S. На самом деле я продолжил безумие, пошел еще немного дальше и настроил совместную работу фильтрации Ростелеком и нашего родного контент-фильтра «Интернет Контроль Сервер» (ИКС). К слову, отличные ребята – фильтр действительно неплохо работает. Если вы как раз сейчас выбираете систему фильтрации, то посмотрите в их сторону. Теперь трафик с клиента идет на ИКС, с ИКС на SQUID, со SQUID уже на прокси Ростелекома. Обе фильтрации работают – даже если пропустил 1 фильтр, то может словить второй. Производительность в целом на уровне – да, заметно, что не летает, но работать вполне комфортно. Если кого-то это интересует, то пишите в личку –расскажу, как я это реализовал.

Источник

Как установить Squid в Astar Linux

Squid это самый популярный программный прокси сервер. Его можно установить практически на любую операционную систему Linux, и даже отечественной разработки. Сегодня посмотрим как можно установить Squid в Astar Linux. По большому счету установка каких либо пакетов в Linux системах практически одинаковая, если вы устанавливали данный прокси сервер скажем в Ubuntu то без труда сможете сделать тоже самое и Debian и в Astra Linux.

Установка пакета Squid

Для установки прокси необходимо запустить терминал и ввести следующею команду.

после чего вводим пароль суперпользователя и подтверждаем установку.

Как установить Squid в Astar Linux

По окончанию нужно запустить его, это можно сделать командой

Остается только проверить его состояние для этого вводим

Как запустить и проверить статус Squid в Astar Linux

Как видим squid установился и запустился без ошибок, он работает. Остается только его сконфигурировать, это можно сделать если открыть его config

Для редактирования рекомендую использовать файловый менеджер MC.

Где находиться config Squid в Astar Linux

Логи хранятся по следующему пути.

Где хранятся логи Squid в Astar Linux

На этом установка прокси сервер Squid в Astra Linux завершена. Настраивать его на работу будем в следующей статье, к сожалению не успел её дописать.

Astar Linux + Squid : 2 комментария

Источник

Оцените статью
Adblock
detector