Архивы: squid

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

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

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

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

Объявим 2 списка, укажем в каждом диапазон ип адресов, которые куда будем отправлять.
[cc lang=”bash”]
acl provider1 src 10.0.0.0/24
acl provider2 src 16.0.0.0/24
[/cc]

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

[cc lang=”bash”]http_access allow provider1
http_access allow provider2[/cc]

И дальше
[cc lang=”bash”]
tcp_outgoing_address 10.1.0.1 provider1
tcp_outgoing_address 10.1.0.2 provider2
[/cc]
10.1.0.1 10.1.0.2 – это внешние адреса сервера с разными интерфейсами.

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

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

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

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

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

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

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

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

[cc lang=”bash”]# 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-gcc4[/cc]

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

Дальше
[cc lang=”bash”] make install[/cc]

ах, кто ещё ниразу ничего не компилировал ставим всё что нужно
[cc lang=”bash”]apt-get install build-essential[/cc]
потом компилируем

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

[cc lang=”bash”]cp /etc/free-sa/free-sa.conf.sample /etc/free-sa/free-sa.conf[/cc]

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

#
# 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”

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

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

[cc lang=”bash”]touch /etc/free-sa/free-sa_day[/cc]

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

[cc lang=”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-[/cc]

Делаем его исполняемым
[cc lang=”bash”]chmod u+x /etc/free-sa/free-sa_day[/cc]
и запускаем.
после чего заходим на http://ip_proxy/free-sa
И узреем статистику на сегодня.

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

[cc lang=”bash”]crontab -e[/cc]

И добавляем
[cc lang=”bash”]*/30 * * * * /etc/free-sa/free-sa_day[/cc]
В результате отчёт будет обновляться раз в пол часа.

PS Да забыл, в файле usertab через пробел
[cc lang=”bash”]192.168.100.6 Иванов И.И.
192.168.100.7 Сидоров С.С.[/cc]

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

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

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

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

Со временем у меня получилась не маленькая база…
Данный файл постоянно пополняется всякими перепродавалами траффика и т.п.
дальше привожу его содержимое. При желании сами пополняем всякими Вконтактами и однокласниками (в моём файле они присуствуют), также тут есть adult накрутчики, режем их.
Я приведу ссылку на файл, который буду постепенно обновлять.
файл от 16.04.10
Сливаем его на сервер
[cc lang=”bash”]
cd /etc/squid3
wget https://www.odmin4eg.ru/download-manager.php?id=1
[/cc]
В раздел acl нашего squid.conf добавляем.
будте внимательны, сквид довольно привередлев к конфигам.
эти строки добавить между разрешающими и запрещающими у меня например так
[cc lang=”bash”]
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_networks
[/cc]

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

[cc lang=”bash”]acl bad url_regex “/etc/squid3/badsite.acl”
http_access deny bad
[/cc]

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

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

Нам надо посмотреть суть конфига сквида, без комментариев и пояснений.
[cc lang=”bash”]
cat /etc/squid/squid.conf | egrep -v “^\s*(#|$)”
[/cc]

Каскад прокси или squid через squid

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

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

[cc lang=”bash”]
http_port 3128 transparent
cache_peer 89.89.89.89 parent 3128 3130 no-query default
never_direct allow all
[/cc]

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