Skip to Content
 Русский Русский    English English   

 

Памятка по настройке прозрачного прокси-сервера Squid 3

Памятка по настройке прозрачного прокси-сервера Squid 3

Squid 3.2.7

В организации имеется локальная сеть с выходом в интернет через шлюз под управлением ОС FreeBSD 9. Необходимо ограничить доступ сотрудников к некоторым сайтам, а также вести статистику посещений web-ресурсов. Squid в режиме прозрачного прокси-сервера позволяет сделать незаметное для пользователя перенаправление запросов, таким образом, не придется настраивать каждый компьютер в локальной сети. На шлюзе в качестве фильтра пакетов используется IPFW, с помощью которого можно перенаправить трафик прокси-серверу.

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

# cd /usr/ports/www/squid32
# make install clean

Активируем опцию TP_IPFW - Enable transparent proxying with IPFW.

Добавляем в /etc/rc.conf:

echo 'squid_enable="YES"' >> /etc/rc.conf

Редактируем конфигурационный файл /usr/local/etc/squid/squid.conf.

http_port 192.168.0.1:3128 transparent
visible_hostname my.domain.ru


hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \?
cache deny QUERY

acl apache rep_header Server ^Apache

cache_dir ufs /var/squid/cache 1024 16 64


access_log /var/log/squid/access.log squid
pid_filename /var/log/squid/squid.pid
coredump_dir /var/squid/cache

refresh_pattern ^ftp:           1440    20%     10080
refresh_pattern ^gopher:        1440    0%      1440
refresh_pattern -i (/cgi-bin/|\?) 0     0%      0
refresh_pattern .               0       20%     4320

header_access Via deny all

client_persistent_connections off
server_persistent_connections off

acl SSL_ports port 443
acl SSL_ports port 22          # ssh
acl SSL_ports port 10022       # secret ssh
acl Safe_ports port 80          # http
acl Safe_ports port 21          # ftp
acl Safe_ports port 443         # https
acl Safe_ports port 70          # gopher
acl Safe_ports port 210         # wais
acl Safe_ports port 1025-65535  # unregistered ports
acl Safe_ports port 280         # http-mgmt
acl Safe_ports port 488         # gss-http
acl Safe_ports port 591         # filemaker
acl Safe_ports port 777         # multiling http
acl Safe_ports port 22          # ssh
acl Safe_ports port 10022       # secret ssh
acl Safe_ports port 1110        # ooo51
acl CONNECT method CONNECT
acl AdminsIP src "/usr/local/etc/squid/AccessLists/allow_IP"
acl UrlIP url_regex -i ^http://[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}/.*
acl our_networks src 192.168.0.0/24
acl urls_denied dstdom_regex -i "/usr/local/etc/squid/AccessLists/denied_urls"

http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access allow AdminsIP urls_denied
http_access deny UrlIP
http_access deny our_networks urls_denied
http_access allow our_networks
http_access deny all
http_reply_access allow all
icp_access allow all

tcp_outgoing_address 1.1.1.1

cachemgr_passwd password all

error_directory /usr/local/etc/squid/errors/ru

В файле /usr/local/etc/squid/AccessLists/denied_urls содержится список запрещенных сайтов:

odnoklassniki\.ru
vkontakte\.ru

В файл /usr/local/etc/squid/AccessLists/allow_IP заносим IP-адреса, которым разрешен доступ к запрещенным сайтам в файле denied_urls:

192.168.0.11
192.168.0.12

Переноса строки в конце файла не должно быть.

Создаем swap директорию для squid.

# squid -z

Добавим в cron ротацию логов:

59      23      *        *       *      /usr/local/sbin/squid -k rotate

Запускаем squid:

# /usr/local/etc/rc.d/squid start

 

LightSquid 1.8

Для сбора статистики работы пользователей устанавливаем LightSquid - анализатор логов Squid.

# cd /usr/ports/www/lightsquid
# make install clean

Редактируем файл /usr/local/etc/lightsquid/lightsquid.cfg.

Проверяем параметр  $logpath = "/var/log/squid"; .

Проверяем конфигурационный файл на наличие ошибок:

# /usr/local/www/lightsquid/check-setup.pl

Запускаем анализатор логов:

# /usr/local/www/lightsquid/lightparser.pl

Добавляем в cron:

*/20    *       *       *       *       /usr/local/www/lightsquid/lightparser.pl 2>&1 > /dev/null

Редактируем конфигурационный файл Apache:

<VirtualHost *:80>
    ServerName my.domain.ru
    Alias /lightsquid /usr/local/www/lightsquid
    DocumentRoot /usr/local/www/lightsquid
    AddHandler cgi-script .cgi .pl
</VirtualHost>

<Directory /usr/local/www/lightsquid>
        Options Indexes FollowSymLinks ExecCGI
        DirectoryIndex index.cgi index.php index.htm index.html
        AllowOverride All
        Order Deny,Allow
        Deny from all
        Allow from 127.0.0.1
        Allow from 192.168.0
    AuthType Basic
    AuthName "LightSquid, Restricted Access"
    AuthBasicProvider file
    AuthUserFile /usr/local/www/lightsquid/.htpasswd
    Require valid-user
</Directory>

Создаем пользователя для доступа к статистике:

# htpasswd -n username

Копируем результат команды htpasswd в файл /usr/local/www/lightsquid/.htpasswd

Перезапускаем Apache:

# /usr/local/etc/rc.d/apache22 restart

Статистика LightSquid доступна по адресу http://localhost/lightsquid:

LightSquid - анализатор логов Squid

 

 

Sarg

Sarg, также как и LightSquid, позволяет анализировать и предоставлять отчеты на основе логов Squid.

Устанавливаем  Sarg 2.3.4:

# cd /usr/ports/www/sarg
# make install clean

Редактируем конфигурационный файл /usr/local/etc/sarg/sarg.conf :

access_log /var/log/squid/access.log
graphs yes
graph_days_bytes_bar_color orange
temporary_dir /var/tmp
#Директория для хранения отчетов
output_dir /storage/www/squid_sarg/public
resolve_ip yes
user_ip yestopuser_sort_field BYTES reverse
date_format e
lastlog 31
overwrite_report yes
index yes
topsites_num 100
report_type topusers topsites sites_users users_sites date_time denied auth_failures site_user_time_date downloads

 

Добавляем в cron:

*/10    *       *       *       *      /usr/local/bin/sarg  2>&1 > /dev/null

Редактируем конфигурационный файл Apache:

<VirtualHost *:80>
    ServerName my.domain.ru
    Alias /sarg /storage/www/squid_sarg/public
    DocumentRoot /storage/www/squid_sarg/public
    AddHandler application/x-httpd-php5 php  cgi-script .cgi .pl
</VirtualHost>

<Directory /storage/www/squid_sarg/public>
        Options Indexes
        DirectoryIndex index.cgi index.php index.htm index.html
        AllowOverride Limit
        Order Deny,Allow
        Deny from all
        Allow from 127.0.0.1
        Allow from 192.168.0
    AuthType Basic
    AuthName "SARG, Restricted Access"
    AuthBasicProvider file
    AuthUserFile /storage/www/squid_sarg/public/.htpasswd
    Require valid-user
</Directory>

Создаем пользователя для доступа к статистике:

# htpasswd -n username

Копируем результат команды htpasswd в файл /storage/www/squid_sarg/public/.htpasswd

Перезапускаем Apache:

# /usr/local/etc/rc.d/apache22 restart

Статистика Sarg доступна по адресу http://localhost/sarg:

Sarg позволяет анализировать и предоставлять отчеты на основе логов Squid.

Статистика Sarg

 

 
Ваша оценка: Нет Средняя: 4.7 (21 голос)