Метка: squid

  • squid на два внешних интерфейса

    Начал я играться с сервером, у которого два внешних интерфейса, обязательно опишу чуть позже что и как делал, а то факт — забуду.

    И так, что надо сделать для Squid чтоб  он использовал оба внешних канала.

    Мне нужно было зарулить только определённый набор ИП адресов внутренней сети.

    Объявим 2 списка, укажем в каждом диапазон ип адресов, которые куда будем отправлять.

    acl provider1 src 10.0.0.0/24
    acl provider2 src 16.0.0.0/24Code language: Bash (bash)

    Чуть ниже скажем что нам можно что не можно

    http_access allow provider1
    http_access allow provider2Code language: Bash (bash)

    И дальше

    tcp_outgoing_address 10.1.0.1 provider1
    tcp_outgoing_address 10.1.0.2 provider2Code language: Bash (bash)

    10.1.0.1 10.1.0.2 — это внешние адреса сервера с разными интерфейсами.

    Собственно всё, после этого всё будет как нам хочется.

  • Установка free-sa на ubuntu ( Статистика для Squid3 )

    У себя в офисе для мониторинга расхода трафика проходящего через squid я использую free-sa

    Настройка free-sa

    Идём на первоисточник качаем последнюю версию.

    распаковываем.

    заходим в каталог, находим файл global.mk
    редактируем его

    нам нужно указать свою ОС

    # Operating system profile
    #OSTYPE = generic-any-cc
    #OSTYPE = altlinux-i586-gcc4
    #OSTYPE = altlinux-x86_64-gcc4
    #OSTYPE = cygwin-native-gcc3
    #OSTYPE = freebsd-i386-gcc3
    #OSTYPE = freebsd-native-gcc4
    #OSTYPE = hpux-64_2.0W-cc
    #OSTYPE = netbsd-i386-gcc4
    #OSTYPE = openbsd-i386-gcc3
    #OSTYPE = opensuse-native-gcc4
    #OSTYPE = redhat-native-gcc4
    #OSTYPE = slackware-native-gcc4
    #OSTYPE = solaris-native-cc
    OSTYPE = ubuntu-i586-gcc4Code language: Bash (bash)

    Снимаем комментарий с нужного нам.

    Дальше

     make installCode language: Bash (bash)

    ах, кто ещё ниразу ничего не компилировал ставим всё что нужно

    apt-get install build-essentialCode language: Bash (bash)

    потом компилируем

    пример конфига копируем как новый конфиг

    cp /etc/free-sa/free-sa.conf.sample /etc/free-sa/free-sa.confCode language: Bash (bash)

    Дальше идём правим его.

    #
    # Sample configuration file for free-sa(1)
    #
    # copy to /etc/free-sa/free-sa.conf
    #

    ##################
    # GLOBAL OPTIONS #
    ##################
    configuration_name=»/etc/free-sa/free-sa.conf»
    #cache_directory=»/var/cache/free-sa»
    target_directory=»/var/www/free-sa»
    #locale=»»

    ####################
    # LOG FILE OPTIONS #
    ####################
    log_file=»/var/log/squid3/access.log»
    #log_format=»0″
    #log_skip_errors=»no»
    #log_time_zone_shift=»0″

    ##########################
    # NAMES HANDLING OPTIONS #
    ##########################
    #recipient_tolower=»no»
    username_file=»/etc/free-sa/usertab»
    #username_is_preferred=»yes»
    username_resolve_ip=»yes»
    #username_unescape=»no»

    ###################
    # FILTERS OPTIONS #
    ###################
    #global_filter=»»

    # users_filter is enabled by default to keep default value of obsolete fulltraffic=»false» 1.x.y option
    users_filter=»/etc/free-sa/users.filter.sample»

    # HTTP related filter reports
    local_filter=»/etc/free-sa/HTTP_proxy_auth_failures.filter.sample»
    local_filter=»/etc/free-sa/HTTP_site_auth_failures.filter.sample»
    local_filter=»/etc/free-sa/HTTP_proxy_denied.filter.sample»
    local_filter=»/etc/free-sa/HTTP_site_denied.filter.sample»
    local_filter=»/etc/free-sa/HTTP_CONNECT_method.filter.sample»
    local_filter=»/etc/free-sa/HTTP_PUT+POST_method.filter.sample»
    local_filter=»/etc/free-sa/HTTP_downloads.filter.sample»
    #local_filter=»/etc/free-sa/HTTP_downloads_archives.filter.sample»
    #local_filter=»/etc/free-sa/HTTP_downloads_audio.filter.sample»
    #local_filter=»/etc/free-sa/HTTP_downloads_cddvd.filter.sample»
    #local_filter=»/etc/free-sa/HTTP_downloads_code.filter.sample»
    #local_filter=»/etc/free-sa/HTTP_downloads_office.filter.sample»
    #local_filter=»/etc/free-sa/HTTP_downloads_video.filter.sample»
    #local_filter=»/etc/free-sa/HTTP_unusual_methods.filter.sample»
    #local_filter=»/etc/free-sa/HTTP_unusual_codes.filter.sample»

    # SMTP related filter reports
    #local_filter=»/etc/free-sa/SMTP_delivery_rejected.filter.sample»
    #local_filter=»/etc/free-sa/SMTP_receiving_rejected.filter.sample»

    ##########################
    # GLOBAL REPORTS OPTIONS #
    ##########################
    #reports_bytes_divisor=»b»
    #reports_indicators=»yes»
    #reports_logo=»»
    # чтоб можно было за день несколько раз генерировать отчёт.
    reports_overwrite=»1″
    #reports_privacy_mode=»0″
    #reports_privacy_username=»»
    #reports_rotate=»»
    #reports_show_info=»yes»
    #reports_site_name=»»
    #reports_url_limit=»50″

    ##############################
    # PARTICULAR REPORTS OPTIONS #
    ##############################
    #email_address=»»

    #real_time_timeout=»5000″

    #server_efficiency_report=»yes»
    #server_efficiency_bytes_divisor=»no»

    #top_sites_report=»yes»
    #top_sites_limit=»0″

    #users_graphics_svg=»no»
    #users_graphics_svg_mode=»yes»
    #users_graphics_svg_pie=»no»

    #users_report=»yes»

    #users_fullurl_report=»yes»
    #users_fullurl_split=»no»

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

    Дальше нам нужен скрипт, который с крона будет запускать генератор отчётов

    touch /etc/free-sa/free-sa_dayCode language: Bash (bash)

    В него вот такое содержимое

    #!/bin/bash
    
    # Приложение создания отчетов по журналам SQUID
    #set -x
    umask 0022
    #Важный момент для кодировки
    #У меня по крону получался Английский отчёт
    #А при ручном запуске Русский
    export LANG=ru_RU.UTF-8
    export LC_ALL=
    free_sa=/usr/bin/free-sa
    date1=`date +%x`
    $free_sa -d $date1-Code language: Bash (bash)

    Делаем его исполняемым

    chmod u+x /etc/free-sa/free-sa_dayCode language: Bash (bash)

    и запускаем.
    после чего заходим на http://ip_proxy/free-sa
    И узреем статистику на сегодня.

    идём дальше в крон

    crontab -eCode language: Bash (bash)

    И добавляем

    */30 * * * * /etc/free-sa/free-sa_dayCode language: Bash (bash)

    В результате отчёт будет обновляться раз в пол часа.

    PS Да забыл, в файле usertab через пробел

    192.168.100.6 Иванов И.И.
    192.168.100.7 Сидоров С.С.Code language: Bash (bash)

    PPS Обнаружен злой баг в этой версии, я думаю что скоро его профиксят,
    Дело в том, что при генерировании «topsites» файл отчёта может легко весить 5-10гб!!! собсвенно выключем эту функцию от греха подальше.

    отключаем topusers:
    Раскомментируем и поставим no
    top_sites_report=»no»

  • Блокируем плохие сайты squid ( bad sites squid )

    Настраиваем squid на блокировку нежелательных сайтов, избавляемся со всякими popunder, и прочей нечести на уровне squid

    Со временем у меня получилась не маленькая база…
    Данный файл постоянно пополняется всякими перепродавалами траффика и т.п.
    дальше привожу его содержимое. При желании сами пополняем всякими Вконтактами и однокласниками (в моём файле они присуствуют), также тут есть adult накрутчики, режем их.
    Я приведу ссылку на файл, который буду постепенно обновлять.
    файл от 16.04.10
    Сливаем его на сервер

    cd /etc/squid3
    wget http://www.odmin4eg.ru/download-manager.php?id=1Code language: Bash (bash)

    В раздел acl нашего squid.conf добавляем.
    будте внимательны, сквид довольно привередлев к конфигам.
    эти строки добавить между разрешающими и запрещающими у меня например так

    acl our_networks src 192.168.0.0/255.255.0.0
    acl bad url_regex "/etc/squid3/badsite.acl"
    http_access deny bad
    http_access allow our_networksCode language: Bash (bash)

    Собственно что добавить

    acl bad url_regex "/etc/squid3/badsite.acl"
    http_access deny badCode language: Bash (bash)

    Перезапускаем squid и тестируем, принимаю пожелания по пополнению списка.

  • Конфиг squid Без комментариев

    Нам надо посмотреть суть конфига сквида, без комментариев и пояснений.

    cat /etc/squid/squid.conf | egrep -v "^\s*(#|$)"Code language: Bash (bash)
  • Каскад прокси или squid через squid

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

    В итоге на проксе организации в файле /etc/squid3/squid.conf я добавляю, в разделе Listen

    http_port 3128 transparent
    cache_peer 89.89.89.89 parent 3128 3130 no-query default
    never_direct allow allCode language: Bash (bash)

    На родительской проксе добавляем IP дочери как доверенным клиентам и получаем счастье 🙂