Введение в Squid: пошаговая настройка

Логотип Squid и смокинг

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

Для вашей установки, вы можете получить доступ к официальный сайт проекта и выберите бинарные пакеты для вашей операционной системы или дистрибутива. Если вы хотите установить его из пакета исходного кода путем компиляции, также у тебя есть такая возможность. Доступные архивы tar.gz, tar.bz2 и tar.xz. Если вы не знаете, как установить, вы можете перейти к статье, которую мы редактируем в этом блоге, о как установить любой пакет из linux. Глаз! Если у вас есть Debian или производная версия, и вы видели, что она установлена ​​с помощью sudo «apt-get install squid», это может привести к ошибке, потому что вам нужно заменить «squid» на «squid3», чтобы это вступило в силу. ..

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

Обычно после установки включается файл конфигурации, который можно найти в /etc/squid3/squid.conf и это то, что мы должны отредактировать с помощью редактора, такого как nano или gedit. В нем мы можем сгенерировать наши правила фильтрации, хотя есть параметры cache_dir, cache_mem и http_port, мы будем использовать последний для наших правил безопасности. Еще одна деталь заключается в том, что в этом файле указан порт по умолчанию, используемый службой Squid, который по умолчанию - 3128 (см. Строку или директиву «http_port 3128» и удалите #, чтобы активировать его). Если вы хотите, вы можете изменить его на другой порт, например 8080 ... И еще одна вещь, которую необходимо настроить, - это настроить имя хоста, найдите комментарий «TAG: Visible_hostname», и вы увидите строку «visible_hostname», где вы должны поместить свой имя хоста.

Чтобы узнать свое имя хоста, вы можете ввести в терминал:

hostname

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

visible_hostname hostname_have_you_appeared

Если вы увидите файл конфигурации, вы увидите, что он очень прокомментирован, если вы хотите переопределить созданное правило, вы можете начать строку с # и вы превращаете его в комментарий, с которым Squid игнорирует его, чтобы вернуть его в сервис, вы удаляете # и все. Фактически, существует множество созданных и закомментированных правил, которые вы можете использовать, удалив из него #. Таким образом, вам не нужно удалять и переписывать правила. Что ж, чтобы добавить конкретное правило или фильтр, у него должен быть ACL и директива, указывающая, что делать.

Кстати, когда вы удаляете # для активации правила, убедитесь, что вы не оставляете пробелов в начале строки, Например:

Неправильный способ:

http_порт 3128

Правильный способ:

http_порт 3128

Вы ничего не слышали? Ну не волнуйся, с Пример вы увидите все намного лучше. Представьте себе это:

acl блокирует url_regex как facebook
http_access запретить блокировку

Что означает это правило заключается в том, что acl с именем «blocking» будет запрещать доступ к URL-адресу, который содержит «facebook» (поэтому, если мы попытаемся войти в Facebook, он пропустит ошибку в браузере). Если вместо «запретить» вы используете «разрешить», вы разрешите доступ, а не запретите его. Вы также можете использовать! Чтобы исключить, например, предположим, что вы хотите разрешить доступ к list1, но не list2:

http_access allow lista1 !lista2

Другим примером может быть создание файла / etc / squid3 / ips allowed и в нем сохраняем список IP-адресов, к которым мы хотим разрешить доступ. Например, предположим, что содержимое разрешенных IP-адресов:

192.168.30.1

190.169.3.250

192.168.1.26

И затем мы создаем acl чтобы разрешить доступ к этим IP-адресам:

acl nuevaregla src "/etc/squid3/ipspermitidas"

Довольно практичный примерПредставьте, что ваш компьютер используется детьми младше 18 лет, и вы хотите ограничить доступ к определенным сайтам с контентом для взрослых. Первым делом нужно создать файл с именем / etc / squid3 / list с содержимым:

для взрослых

порно

секс

поринга

А теперь в  файл squid.conf ставим следующее правило:

acl denegados url_regex "/etc/squid3/lista"

http_access allow !denegados

Как видишь мы использовали разрешить что в принципе должно позволять, но если вы посмотрите, мы добавили! отрицать, следовательно, это было бы равносильно помещению:

acl denegados url_regex "/etc/squid3/lista"

http_access deny denegados

Также можно создавать списки не только доменных имен или IP-адресов, как мы это сделали, вы также можете поставить домены и, например, ограничить доступ к таким доменам, как .xxx, .gov и т. д. Давайте посмотрим на пример, основанный на предыдущем правиле. Мы создаем файл / etc / squid3 / domains, в котором есть:

. Edu

.es

.org

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

acl denegados url_regex "/etc/squid3/lista" 
acl permitidos dstdomain "/etc/squid3/dominios"

http_access allow !denegados dominios

РАСШИРЕНИЕ:

Извините, когда я увидел комментарии, я понял, что Я упустил главное. Я только что привел примеры его использования и забыл сказать, что для запуска сервера Squid:

sudo service squid3 start

Раньше он вставал с "/etc/init.d/squid start", но теперь вы должны использовать эту другую строку, которую я для вас поставил. Точно так же, как файл конфигурации больше не в /etc/squid/squid.conf, а в /etc/squid3/squid.conf. Хорошо, после того, как политики фильтрации созданы и запускаются, мы также должны настроить браузер, например, если вы используете Mozilla Firefox или его производные, вы можете перейти в меню конфигурации (вы знаете, три полосы), а затем Настройки, Дополнительно и на вкладке «Сеть» щелкните «Конфигурация» в разделе «Подключение». Там мы выбираем Ручную настройку прокси и помещаем наш IP и порт, который использует Squid, в данном случае 3128. Также выбираем «Использовать один и тот же прокси для всего» и выходим с сохранением изменений.

Por пользу, Не забывайте оставлять свои комментарии, сомнения или что угодно ... Хотя это руководство намного выше Squid, я надеюсь, что оно вам поможет.


Оставьте свой комментарий

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

*

*

  1. Ответственный за данные: AB Internet Networks 2008 SL
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.

  1.   никола сказал

    спасибо !, полезно.

  2.   Джимми Олано сказал

    СНОВА очень хорошо сжато для довольно сложной темы, я все время говорю «уровень пользователя: средний», вы должны знать некоторые понятия о «сетях».

    Я СОМНЕННО считаю, что следует добавить возможность настроить наш браузер для использования «прокси», но поскольку эта запись является «ВВЕДЕНИЕМ в Squid», мы будем в курсе следующего? доставка (наконец, и, рискуя меня раздражать, ПОМНИТЕ не «проксировать» веб-страницы банков и / или финансовых учреждений, которые вы используете у себя дома или в компании).

    1.    Исаак ЧП сказал

      Привет, спасибо за комментарии. Да, IPTABLES и Squid слишком толстые, чтобы написать статью, которая подробно их объясняет, и вам придется ограничиться повседневными примерами ...

      Но вы абсолютно правы, я добавил его сейчас для настройки прокси, я планировал это и забыл. Моя вина.

      Привет и спасибо !!

      1.    Джимми Олано сказал

        Уфффф "ствол" извините, что не осознал главного:
        ЗАПУСТИТЕ СЛУЖБУ :-( без этого «нет твоей тети» -простите за разговорный язык- ОЧЕНЬ УСПЕШНОЕ РАСШИРЕНИЕ! 8-)

        {исправление этого при каждой загрузке происходит путем изменения «/ sbin / init»:
        http: // www. ubuntu-es.org/node/ 13012 # .Vsr_SUJVIWw}

        {еще один более простой способ - использовать update-rc.d:
        https: // parbaedlo. wordpress.com/201 3/03/07 / установка-старт-и-остановка-сервисов-linux-update-rc-d /}

        Я добавил пробелы к ссылкам, удалите их, и вы будете перемещаться ;-)

        БОЛЬШОЕ СПАСИБО ЗА ВНИМАНИЕ.

  3.   АЛЬБЕРТ сказал

    НОВОСТИ LINUX: Атака на Linux Mint: заражение установщиков и компрометация учетных данных пользователя

    http://www.muylinux.com/2016/02/21/ataque-a-linux-mint

    1.    азпе сказал

      Я уже разместил это, но не спамите здесь другие страницы, пожалуйста

  4.   АЛЬБЕРТ сказал

    НОВОСТИ ANDROID: GM Bot, Android-троянец, производный от Mazar

    http://www.redeszone.net/2016/02/21/gm-bot-el-troyano-para-android-del-que-deriva-mazar/

  5.   Эрнан сказал

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

    1.    Джимми Олано сказал

      Хороший вопрос, я установил CAPTCHA в бесплатное программное обеспечение на веб-страницах моих клиентов:
      (http: // www. ks7000. net. ve / 2015/04/03 / un-captcha-easy-and-simple-to-Implement /
      -Смиренно, это НЕ «спам» или самореклама, это уместно-)
      и я предполагаю, что при использовании Squid эти изображения НЕ перезагружаются, потому что я добавляю им одно и то же имя - да, я также могу генерировать случайные имена, я не думал об этом до сих пор - и, имея такое же имя, Squid возвращает то, что он есть в «тайнике».

      Очевидно, что основная функция «прокси» - это экономия полосы пропускания с помощью изображений - самых тяжелых из веб-страниц - [i] в ​​предположении, что эти изображения статичны, они не меняются со временем, что верно в 99% случаев. случаи [/ i].

      Но в CAPTCHA, поскольку «нет запуска», мы должны удалить его предыдущее хранилище и всегда возвращать новое изображение.

      Что касается БАНКОВ, насколько я понимаю, самым крупным в Испании является «Caixa», потому что мы создадим ПРИМЕР правила:

      acl caixa dstdomain .lacaixa.es

      где:
      acl -> команда для создания правила (перечитайте статью г-на Исаака, абзацы выше).

      caixa -> название правила.

      dtsdomain -> параметр "type", чтобы указать, что мы ссылаемся на домен, ВАЖНО точка в начале ( http://ww w.visolve. com / squid / squid24s1 / access_controls.php)

      домен (ы) -> Я предполагаю, что мы можем добавить нужные нам домены, разделенные пробелом; говоря о пробелах, я вставил их в указанные веб-ссылки, удалите их, и вы будете перемещаться (страницы на английском языке).

      Надеюсь, изложенные здесь знания пригодятся вам, благодаря LinuxAdictos!

    2.    Джимми Олано сказал

      Что ж, чтобы ответить на вопрос о ПРОЗРАЧНОСТИ в Squid ОПЯТЬ, я настаиваю на том, что вы должны обладать знаниями среднего уровня, и из дидактических соображений я собираюсь как можно больше резюмировать следующую статью (на английском языке), которая, как я считаю, очень хорошо говорит о предмете:

      http: // ww w.deckle.co. великобритания / руководство-пользователя squid /transparent-caching-proxy.html

      Примечания:
      -Я добавил в ссылки пробелы, чтобы избежать пингбэков от меня (к команде я не имею абсолютно никакого отношения). Linux Adictos, следовательно, я не уполномочен совершать указанное действие).
      - ЭТО О ПРОЗРАЧНОСТИ Я НЕ ЗНАЛ! (я говорю, меня не учили).
      -Поможу вам, ребята, я тоже помогаю себе, это круто в количестве! ?

      Что ж, с учетом сказанного, приступим к делу:

      Я ПРОСТО предложил мистеру Исааку расширить настройку наших браузеров с установленным прокси-сервером, и он очень любезно сделал это (вау, где этот человек находит время для стольких вещей?).

      По этой схеме использование Squid НЕОБЯЗАТЕЛЬНО: каждый пользователь нашей локальной сети будет отвечать за свою работу, но вы можете поспорить «серебро против бумажных песет», что есть некий «скрипт bash», который можно установить. • через SSH на различные компьютеры под управлением GNU / Linux.

      ОБЯЗАТЕЛЬНО: наш сервер Squid работает так, как учит мистер Исаак в этом посте. Если мы уже протестировали его, добавили «рабочую нагрузку» и он работает хорошо, мы можем продолжить работу.

      ПО СХЕМЕ ПРОЗРАЧНОСТИ:

      ПЕРВОЕ. - Наш Squid должен быть маршрутом по умолчанию "шлюз" в наших "eth0" или "wlan0" - вы помните средний уровень знаний? - мы устанавливаем его там (это делается по умолчанию с DHCP, ПОЭТОМУ мы также должны настроить сервер такой службы:
      http: // en.wikipe dia.org/wiki/ Dynamic_Host_Configuration_Protocol).

      Мы должны запланировать настройку, в случае сбоя, перенаправлять весь трафик на наш модем (ы) напрямую, если Squid - компьютер, на котором он работает - перегружен своей рабочей нагрузкой - и использовать модем (ы)) типа «мост», чтобы они выходят наружу, это достигается созданием «сценария», который запускается в указанном событии и настраивает наш DHCP-сервер, который должен быть установлен на другом компьютере, чем наш Squid-.

      ПРИМЕЧАНИЕ: наш компьютер со Squid всегда будет зависеть от своего IP-адреса от DHCP, НО в то же время он будет иметь некоторый «контроль» с указанным DHCP-сервером. Если вы хотите работать с фиксированными IP-адресами, вы можете, но когда вы добавите больше компьютеров ИЛИ ЗАМЕНИТЕ некоторые, вам придется снова настроить, и это не идея (читайте с удовольствием:
      ht tps: // фенобарбитал. wordpress.com/2012/07/23/the-12-reasons-for-who-a-administrator-of-systems-lazy-is-a-good-administrator/)
      ДРУГОЕ ПРИМЕЧАНИЕ (см. Второй пункт): наши модемы и / или маршрутизаторы должны деактивировать функцию DHCP и что они управляются нашим сервером DCHP (уверяю вас, что из этого выходит еще одна запись, чтобы показать нам, как монтировать сказал сервис-)

      ВТОРОЙ. Мы должны фильтровать трафик к нашему серверу Squid, это, если у нас есть несколько рассредоточенных маршрутизаторов, которые покрывают область беспроводной сети «Wi-Fi», это все еще локальная сеть, но среднего размера. По сути, это то же самое, что и первый пункт, НО, если у нас есть разные устройства ИЛИ ДАЖЕ подсети, мы также должны их настроить, поэтому будьте осторожны с теми из нас, кто работает «ломая железо» в крупных компаниях.

      ТРЕТИЙ. В нашем GNU / Linux, на котором размещен Squid, мы должны перенаправить порты и настроить «брандмауэр» (прочтите предыдущую статью IPTables.
      http://www.linuxadictos.com/introduccion-a-iptables-configura-un-firewall-en-linux.html )

      iptables -t nat -A PREROUTING -p TCP –dport 80 -j REDIRECT –на порт 3128

      и к IPFW:

      / sbin / ipfw добавить 3 fwd 127.0.0.1,3128 tcp из любого в любой 80

      Излишне говорить, что мы НЕ МОЖЕМ запускать сервер Apache или Ngix на этом порту 80 - порт по умолчанию для веб-страниц - ОБЩИЙ Смысл УКАЗЫВАЕТ, что не следует увеличивать нагрузку на наш компьютер с помощью Squid - зависит от дискового пространства для «кеша» -.

      ЧЕТВЕРТОЕ. Мы должны настроить наш сервер Squid и сообщить ему, что он работает в этом режиме, изменив "/etc/squid/squid.conf" с помощью nano или редактора, который вам больше всего нравится:

      http_port 3128 прозрачный

      Мы также должны включить пересылку пакетов в "/etc/sysctl.conf":

      net.ipv4.ip_forward = 1
      net.ipv6.conf.all.forwarding = 1

      Эта последняя строка, если у нас есть IPv6, хорошо настроить ее один раз в будущем.

      Наконец, перезапустите службу Squid, как рекомендовано г-ном Исааком выше, а также перезапустите сетевой сервис:

      /etc/init.d/procps.sh перезапуск

      НЕКОТОРАЯ ВЕРА В ОШИБКИ (или какую-то чепуху с моей стороны) дайте мне знать тем же путем, ваша критика и комментарии приветствуются;
      МИСТЕР. ИСААК - МОДЕРАТОР, за которым будет последнее слово в этой «битве».

  6.   Джимми Олано сказал

    В этом коротком видео мы можем увидеть, как настроить Mozilla для использования прокси-сервера, за исключением того, что он использует виртуальную машину с ReactOS, но он короткий, и я думаю, что это ИЛЛЮСТРАЦИЯ того, что вы хотите настроить здесь (ссылка отключена с пробелами, удалите их и просмотрите):

    ht tps: // www. YouTube. com / смотреть? v = st47K5t7s-Q

  7.   Учитель сказал

    Я только начал следить за вашей радиостанцией, у меня было 2 дня .. и очень хорошее содержание ..
    Привет из Мексики .. (я учитель и моя песчинка должна использовать open source)

  8.   Овен сказал

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

  9.   Белкис сказал

    Ари, они объяснили мне, что машина, которую вы хотите, не ограничена, ее нужно исключить, но до тех пор у меня есть объяснение, я также неопытен в этом вопросе

  10.   Виктор сказал

    Спокойной ночи, извините, возможно, мой вопрос немного прост, но я установил squid и настроил его на centos 5.4, установил вино и ultrasurf, я собираюсь поделиться интернетом с ultrasurf с помощью squid, я делаю то же самое на машине Windows XP с FreeProxy и ultrasurf, и я могу поделиться им без проблем, но я не знаю, как это сделать в Linux

  11.   Даниэль Андрада сказал

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

  12.   море сказал

    Очень полезно и хорошо объяснено. Спасибо!

    У меня вопрос, когда я хочу создать acl, где мне это делать, то есть в какой строке конфигурационного файла? И я должен сразу поставить две строки под командой http_access, как вы показываете в своем сообщении? Или где?

    Еще раз спасибо!! Привет!