Памятка по настройке прозрачного прокси-сервера 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:
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:
Нажимая кнопку «Сохранить», я подтверждаю свою дееспособность, согласие на получение информации от NetK, согласие на обработку персональных данных в соответствии с Политикой конфиденциальности и Пользовательским соглашением.
Опубликовано: 28.02.2013 - 17:07 | 


