Показаны сообщения с ярлыком прокси. Показать все сообщения
Показаны сообщения с ярлыком прокси. Показать все сообщения

понедельник, 24 марта 2014 г.

Настраиваем SARG - анализатор логов прокси-сервера SQUID.

При использовании прокси-сервера всегда есть желание увидеть эффективность его использования, проанализировать проходящий трафик. Простым и наглядным анализатором логов прокси-сервера SQUID является SARG.

ОБРАТИТЕ ВНИМАНИЕ!
Для работы SARG требуется установленный web-сервер (например, apache2 или lighttpd). Установите его самостоятельно.

Для установки SARG выполним в терминале:

sudo apt-get install sarg


Для настройки SARG откроем файл /etc/sarg/sarg.conf командой в терминале:

sudo nano /etc/sarg/sarg.conf


Найдём строчку:

access_log /var/log/squid/access.log


И исправим её на:

access_log /var/log/squid3/access.log

И там же раскомментируем строки:

#graphs yes
#graph_days_bytes_bar_color orange


Затем находим строку:

#output_dir /var/www/html/squid-reports

Раскомментируем её и исправим на:

output_dir /var/www/squid-reports

А соседнюю строчку:

output_dir /var/lib/sarg

Закомментируем.



Далее ищем строку:

charset Latin1


И меняем её на:

charset UTF-8


Сохраняем изменения в файле нажав <Ctrl> + <o> и выходим нажав <Ctrl> + <x>.

Проверяем работу анализатора выполнив в терминале:

sudo /usr/bin/sarg


В браузере должна открываться страничка SARG по адресу (укажите свой IP-адрес):

http://IP_Вашего_сервера/squid-reports

По-умолчанию анализатор SARG создаст отчёт за весь доступный период (при больших объёмах лог-файлов - это может занять некоторое время). Чтобы не запускать SARG каждый раз вручную и сделать разбивку на ежедневные, еженедельные и ежемесячные отчёты - выполним следующее. Откроем на редактирование файл /etc/sarg/sarg-reports.conf командой в терминале:

sudo nano /etc/sarg/sarg-reports.conf


Найдём строку:

LOGOLINK="http://$(hostname)/"


И исправим её на:

LOGOLINK="http://$(hostname)/squid-reports"


Там же можно задать ссылку на свой логотип (параметр LOGOIMG). При этом имейте ввиду, что изображение логотипа должно находиться в пределах корневой папки веб-сервера (/var/www) и пути указываются относительно корня веб-сервера, а не файловой системы.

Теперь внесем расписание формирования отчётов в CRON. Для этого выполним в терминале:

sudo crontab -e


Переходим в конец открывшегося файла:


И дописываем строки:

00,15,30,45   * * * * /usr/sbin/sarg-reports today
00           22 * * * /usr/sbin/sarg-reports daily
30           22 * * 0 /usr/sbin/sarg-reports weekly
30           23 1 * * /usr/sbin/sarg-reports monthly


В зависимости от заданного по-умолчанию редактора для crontab сохраняем файл:
- если редактор nano - нажав <Ctrl> + <o> и выходим нажав <Ctrl> + <x>.
- если редактор mcedit - нажав <F2> и выходим нажав <ESC> и затем <0>.

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

sudo service cron restart


На этом настройка закончена.

среда, 12 марта 2014 г.

Простая настройка прозрачного прокси-сервера на SQUID.

Есть масса задач, для решения которых применяют прокси-серверы. Чаще всего это организация доступа в Интернет и кэширование трафика. Для этой цели выполним простую настройку прозрачного прокси-сервера на SQUID.

Для установки SQUID выполним в терминале:

sudo apt-get install squid


Перейдём в каталог /etc/squid3


Переименуем оригинальный конфигурационный файл squid.conf в squid.conf.original выполнив команду в терминале:

sudo mv squid.conf squid.conf.original


Удалим из оригинального конфигурационного файла все комментарии и пустые строки, сохранив результат в /tmp/squid.tmp. Для этого в терминале выполним:

sudo grep -v '^#' squid.conf.original | sed '/^$/d' > /tmp/squid.tmp


Затем переместим полученный файл /tmp/squid.tmp в /etc/squid3/squid.conf командой в терминале:

sudo mv /tmp/squid.tmp /etc/squid3/squid.conf


Внесём изменения в файл настроек прокси-сервера, открыв его в редакторе nano командой в терминале:

sudo nano /etc/squid3/squid.conf


Разрешаем доступ только из своей сети добавив строку в файл (укажите IP-адреса своей сети):

acl localnet src 172.16.8.0/21


Разрешаем http-доступ для localnet добавив в файл строку:

http_access allow localnet


Указываем порт прокси-сервера - 3128, IP-адрес интерфейса на котором будет работать прокси-сервер (в моём случае - 172.16.15.1) и режим "прозрачный прокси" исправив строку в файле на:

http_port 172.16.15.1:3128 transparent


Вписываем в файл директорию кэша и его параметры:  

cache_dir ufs /var/spool/squid3 4096 32 256


Указываем минимальный размер кэшируемого файла (кэширование слишком мелких файлов сильно нагружает дисковую подсистему прокси-сервера):

minimum_object_size 2 KB


Указываем максимальный размер кэшируемого файла (кэширование очень больших файлов требует много места малоэффективно):

maximum_object_size 65536 KB


Для того, чтобы сделать наш прокси анонимным (прятать внутренние IP-адреса) - добавляем строки в файл:

via off
forwarded_for delete


Сохраняем изменения в файле нажав <Ctrl> + <o> и выходим нажав <Ctrl> + <x>.
Остановим прокси-сервер командой в терминале:

sudo service squid3 stop


Подготовим директорию кэша выполнив в терминале:

sudo squid3 -z


Теперь запустим прокси-сервер командой:

sudo service squid3 start


Описываемая в этой статье схема подразумевает работу прокси-сервера в "прозрачном" режиме. Для этого сервер на котором устанавливается прокси-сервер SQUID должен быть шлюзом по-умолчанию для компьютеров локальной сети, а настройки прокси у пользователей указывать не требуется. Такая простота развёртывания обеспечивается перехватом обращений на порт 80 (http) и принудительным перенаправлением их на порт прокси-сервера - 3128. Делается это средствами IPTABLES командой в терминале:

sudo iptables -t nat -A PREROUTING ! -d 172.16.8.0/21 -i eth1 -p tcp -m multiport --dport 80 -j REDIRECT --to-port 3128


Данное правило для таблицы NAT обеспечивает перенаправление пакетов TCP, пришедших на порт 80 сетевого интерфейса ETH1 (но не в сторону сети 172.16.8.0/21 - не будем кэшировать трафик в локальной сети) на порт 3128.

Настройки IPTABLES в данной статье подробно не рассматриваются, поэтому способ включения приведённого выше правила при загрузке сервера необходимо выбрать самостоятельно (это может быть команда в /etc/rc.local или отдельный скрипт на bash, либо правило прописанное средствами webmin).

ВНИМАНИЕ! ЕСТЬ ОГРАНИЧЕНИЯ!
Схема работы SQUID в режиме прозрачного прокси удобна скоростью развёртывания и отсутствием необходимости настройки у всех потребителей (например, при подключении к сети оборудования, где не предусмотрена настройка работы через прокси - это может быть хорошим решением).

Но есть и ряд ограничений:
- нет возможности применять какую-либо авторизацию (ни по логину/паролю, ни по учётным данным домена Windows);
- работает только HTTP (порт 80), а для работы других протоколов (https, ftp и т.д.) необходимо использовать NAT;
- учёт трафика возможен только для HTTP (порт 80) и только по IP-адресам потребителей.

Если Вам необходим классический непрозрачный прокси-сервер - не прописывайте привило в IPTABLES, а в файле настроек строка с IP и портом прокси должна быть указана без transparent:

http_port 172.16.15.1:3128 

При такой схеме настройки прокси нужно указывать у всех потребителей.