Инструкция по установке и настройке прокси-сервера Squid на NIC.ru (Установка и настройка Squid Proxy Server)
19 марта, 2008Инструкция по установке и настройке прокси-сервера Squid на NIC.ru:
1) Скачиваем дистрибутив: http://www.squid-cache.org/Versions/
Данная инструкция для версии 2.6 http://www.squid-cache.org/Versions/v2/2.6/
wget http://www.squid-cache.org/Versions/v2/2.6/squid-2.6.STABLE19.tar.gz
2) Распаковываем архив папку
tar -xzvf squid-2.6.STABLE19.tar.gz
Переходим в папку:
cd squid-2.6.STABLE19
3) Запускаем установку:
./configure —prefix=/home/идентификатор/squid —enable-auth —enable-snmp —enable-delay-pools —enable-ssl
—enable-auth — для установки авторизации
—enable-snmp —enable-delay-pools — для поднятия MRTG (статистика трафика)
—enable-ssl — для поддержки SSL
make && make install
4) Скачиваем скрипт авторизации http://www.tbits.org/html/squidauth.html
wget http://www.tbits.org/download/squidauth.tgz
tar -xzvf squidauth.tgz
cp squidauth.pl /home/идентификатор/squid/
Задаем в нем расположение файла лога авторизации в строке
$logfilename = «/home/идентификатор/squid/var/logs/auth.log»
Задаем пораоль по умолчанию:
$defaultpasswd = «пароль»;
Создаем файл базы пользователей /home/идентификатор/squid/squidpasswd
Содержание такое:
username1:password
username2:
(если используется пустой пароль, то будет использоваться пароль, заданный в squidauth.pl
5) Настраиваем конфигурационный файл /home/идентификатор/squid/etc/squid.conf
http_port IP:3128 # Установка привязки IP и порта
icp_port 0
acl My_SNMP snmp_community squidmrtg # Разрешение слежение за трафиком для пользователя squidmrtg
snmp_port 3401 # Через данный порт слушаем snmp запросы (для статистики трафика MRTG)
acl myhost src 0.0.0.0/0.0.0.0
snmp_access allow My_SNMP myhost
snmp_incoming_address IP
snmp_outgoing_address 255.255.255.255
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443
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 CONNECT method CONNECT
# Задаем правила авторизации
auth_param basic program /home/идентификатор/squid/squidauth.pl /home/идентификатор/squid/squidpasswd
# Для авторизированных пользователей разрешаем лазить дальше
acl foo proxy_auth REQUIRED
acl all src 0.0.0.0/0.0.0.0
http_access allow foo
http_access deny all
# Задаем pid файл
pid_filename /home/идентификатор/squid/var/logs/squid.pid
# Правила запрета в адресной строке
acl Banners url_regex -i porn
acl Banners url_regex -i sex
acl Banners url_regex -i banner.*.gif$
http_access allow manager localhost
http_access deny Banners
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow all
icp_access allow all
hierarchy_stoplist cgi-bin ?
# Расположение логов
access_log /home/идентификатор/squid/var/logs/access.log squid
acl QUERY urlpath_regex cgi-bin \?
cache deny QUERY
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern . 0 20% 4320
acl apache rep_header Server ^Apache
broken_vary_encoding allow apache
# Задаем язык страниц ошибок
error_directory /home/идентификатор/squid/share/errors/Russian-1251
# Задаем пользователя FTP
ftp_user ano@nim.ru
# Что будем транслировать на удалённые сервера (анонимность)
forwarded_for off
header_access From deny all
header_access Referer deny all
header_access Server deny all
header_access User-Agent deny all
header_access WWW-Authenticate deny all
header_access Link deny all
# Заменяем агента (анонимность)
header_replace User-Agent Nutscrape/1.0 (CP/M; 8-bit)
6) Создаем папку свапа:
/home/идентификатор/squid/sbin/squid -z
Запускаем сервер:
/home/идентификатор/squid/sbin/squid -f /home/идентификатор/squid/etc/squid.conf
7) Можно настроить статистику: http://lightsquid.sourceforge.net/
Правим файл: lightsquid.cfg:
$cfgpath =»/home/идентификатор/сайт/docs/squid»;
#path to `tpl` folder
$tplpath =»/home/идентификатор/сайт/docs/squid/tpl»;
#path to `lang` folder
$langpath =»/home/идентификатор/сайт/docs/squid/lang»;
#path to `report` folder
$reportpath =»/home/идентификатор/сайт/docs/squid/report»;
#path to access.log
$logpath =»/home/идентификатор/squid/var/logs»;
#path to `ip2name` folder
$ip2namepath =»/home/идентификатор/сайт/docs/squid/ip2name»;
8) Можно поставить статистику трафика. Для этого необходимо будет установить MRTG на хостинг:
Сайт ресурса:
http://oss.oetiker.ch/mrtg/
Скачать http://oss.oetiker.ch/mrtg/pub/mrtg.tar.gz
В папке doc есть полное описание устанвоки mrtg-unix-guide.txt (все по полочкам разложено)
Необходимо будет установить в отдельную папку: zlib, libpng, gd
Пример конфигурационного файла mrtg.cnf
</# Расположение папки со статистикой
WorkDir: /home/идентификатор/сайт/docs/squid/mrtg
# Расположение файла mib.txt
LoadMIBs: /home/идентификатор/squid/share/mib.txt
# Работа как демон
RunAsDaemon: Yes
# Интервал обновления (мин)
Interval: 5
# Язык интерфейса
Language: russian
Target[proxy-hit]: cacheHttpHits&cacheServerRequests:squidmrtg@IP:3401
# If you are using Squid 2.6 or later, uncomment the following line
RouterName[proxy-hit]: cacheUniqName
MaxBytes[proxy-hit]: 100000
Title[proxy-hit]: HTTP Hits
PageTop[proxy-hit]: <h1>proxy Cache Statistics: HTTP Hits/Requests</h1>
<table>
<tr><td>System:</td><td>сайт.ru</td></tr>
<tr><td>Maintainer:</td><td>Serassio Guido</td></tr>
<tr><td>Description:</td><td>Squid Proxy server</td></tr>
</table>
Suppress[proxy-hit]: y
LegendI[proxy-hit]: HTTP hits
LegendO[proxy-hit]: HTTP requests
Legend1[proxy-hit]: HTTP hits
Legend2[proxy-hit]: HTTP requests
YLegend[proxy-hit]: perminute
ShortLegend[proxy-hit]: req/min
Options[proxy-hit]: nopercent, perminute, dorelpercent, unknaszero
Target[proxy-srvkbinout]: cacheServerInKb&cacheServerOutKb:squidmrtg@IP:3401
# If you are using Squid 2.6 or later, uncomment the following line
RouterName[proxy-srvkbinout]: cacheUniqName
MaxBytes[proxy-srvkbinout]: 76800
Title[proxy-srvkbinout]: Cache Server Traffic In/Out
PageTop[proxy-srvkbinout]: <h1>Cache Statistics: Server traffic volume (In/Out)</h1>
<table>
<tr><td>System:</td><td>proxy.sg.private</td></tr>
<tr><td>Maintainer:</td><td>Serassio Guido</td></tr>
<tr><td>Description:</td><td>Squid Proxy server</td></tr>
</table>
Suppress[proxy-srvkbinout]: y
LegendI[proxy-srvkbinout]: Traffic In
LegendO[proxy-srvkbinout]: Traffic Out
Legend1[proxy-srvkbinout]: Traffic In
Legend2[proxy-srvkbinout]: Traffic Out
YLegend[proxy-srvkbinout]: per minute
ShortLegend[proxy-srvkbinout]: b/min
kMG[proxy-srvkbinout]: k,M,G,T
kilo[proxy-srvkbinout]: 1024
Options[proxy-srvkbinout]: nopercent, perminute, unknaszero
Запуск сервера: /home/идентификатор/mrtg-2/bin/mrtg /home/идентификатор/mrtg.cnf
5 мая, 2010 at 02:59
Спасибо за статью. Интересно на сколько процесс отличен для версии squid 3?
___________________________
Васенин Андрей
5 мая, 2010 at 13:14
Примерно такой же.