Squid is a powerful proxyserver having a flexible configuration. While there are plenty of graphical user interfaces available for his proxyserver adjustment, this article addresses its simplest configuration by using the command line of Debian/Ubuntu operating systems, with the statistics displayed. As a result, you will have the proxyserver running and being capable of managing and granting access to a multitude of users while monitoring the proxy’s activity.
English version of this page under construction. You can read automatic translation.
Squid – это мощный прокси-сервер с гибкой конфигурацией. Существует множество графических оболочек для его настройки, но в этой статье будет приведен пример простейшей конфигурации этого прокси-сервера в командной строке операционных систем Debian/Ubuntu с отображением статистики. В результате вы получите рабочий proxy-сервер с возможностью добавлять и регулировать доступ множества пользователей и заниматься мониторингом активности прокси.
Сначала установим squid и apache2-utils для поддержки аутентификации:
sudo apt-get install squid apache2-utils
Сразу создадим файл с паролями пользователей будущего прокси:
sudo htpasswd -c /etc/squid/passwd username
Где ‘username’ – имя пользователя, после этого новые пользователи добавляются простой командой:
sudo htpasswd /etc/squid/passwd username1
sudo htpasswd /etc/squid/passwd username2
Аналогичным образом вы сможете добавить необходимое количество пользователей.
Скопируем стандартную конфигурацию перед изменением настроек:
sudo cp /etc/squid/squid.conf /etc/squid/squid_original.conf
После этого удалите и создайте новый файл конфигурации:
sudo rm /etc/squid/squid.conf
sudo nano /etc/squid/squid.conf
Далее, скопируйте в этот файл наш пример настроек прокси-сервера:
# В этой строке вы можете изменить приветствие сервера:
auth_param basic realm Default proxy server
auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/passwd
auth_param basic children 5
auth_param basic credentialsttl 3 hours
auth_param basic casesensitive off
acl all src 0.0.0.0/0
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32
acl localnet src 10.0.0.0/8
acl localnet src 172.16.0.0/12
acl localnet src 192.168.0.0/24
acl SSL_ports port 443 # https
acl SSL_ports port 563 # snews
acl SSL_ports port 873 # rsync
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 631 # cups
acl Safe_ports port 873 # rsync
acl Safe_ports port 901 # SWAT
acl purge method PURGE
acl CONNECT method CONNECT
http_reply_access allow all
# Порты прокси-сервера:
http_port 3128
http_port 8080
# Здесь указывается путь к лог-файлу, важен для мониторинга:
access_log /var/log/squid/access.log squid
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|?) 0 0% 0
refresh_pattern (Release|Package(.gz)*)$ 0 20% 2880
refresh_pattern . 0 20% 4320
acl apache rep_header Server ^Apache
# Здесь описывается каким из созданных пользователей необходима аутентификация:
acl username proxy_auth REQUIED
acl username1 proxy_auth REQUIED
acl username2 proxy_auth REQUIED
http_access allow username
http_access allow username1
http_access allow username2
# Здесь присваиваются списки контроля доступа (ACL) для доступных пользователей:
acl complete_urls proxy_auth username
acl limited_urls proxy_auth username1
acl expanded_urls proxy_auth username2
# Для политики good будут доступны google и наш сайт:
acl good dstdomain .google.com .google.ru .oss-it.ru
# Для политики goodmail сделаем доступным gmail:
acl goodmail dstdom_regex gmail googlemail
# Для политики expanded_sites для расширенного доступа к сайтам добавим Яндекс:
acl expanded_sites dstdomain .yandex.ru .ya.ru
# Также добавим следующую локальную подсеть доступной через прокси:
acl localnetwork dst 192.168.0.0/24
# Для пользователя username с правилами complete_urls не будет никаких ограничений доступа:
http_access allow complete_urls
# Для пользователя username1 с правилами limited_urls будут доступны только локальная сеть и сервисы google:
http_access allow limited_urls good
http_access allow limited_urls goodmail
http_access allow limited_urls localnetwork
http_access deny limited_urls all
# Для пользователя username2 с правилами expanded_urls дополнительно будет доступен Яндекс:
http_access allow expanded_urls good
http_access allow expanded_urls goodmail
http_access allow expanded_urls expanded_sites
http_access allow expanded_urls localnetwork
http_access deny expanded_urls all
http_access allow manager localhost
http_access deny manager
http_access allow purge localhost
http_access deny purge
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost
http_access deny all
hosts_file /etc/hosts
Вы можете менять содержание прокомментированных строк так, чтобы добиться тех параметров прокси-сервера, которые вам необходимы.
Для более подробной настройки и знакомства с конфигурацией squid пользуйтесь официальным руководством по настройке.
После того, как все необходимые изменения в конфигурацию внесены, необходимо перезапустить прокси-сервер:
sudo squid -k reconfigure
Прокси-сервер после этого должен работать. Теперь займемся мониторингом, установим для этого следующие пакеты:
sudo apt-get install apache2 libgd-gd2-perl perl
Перейдите в папку вашего веб-сервера (по-умолчанию /var/www):
cd /var/www/
Скачайте исходный код с lightsquid с sourceforge, например с помощью wget:
sudo wget http://sourceforge.net/projects/lightsquid/files/lightsquid/1.8/lightsquid-1.8.tgz
Разархивируйте файлы:
sudo tar -xzf lightsquid-1.8.tgz
Перейдите в распакованную папку и установите права исполнения на скрипты lightsquid:
cd lightsquid-1.8
sudo chmod +x *.cgi
sudo chmod +x *.pl
Измените права на доступ к папке lightsquid:
cd /var/www/
sudo chown -R www-data:www-data lightsquid-1.8
Отредактируйте ваш веб-сервер на работу с программой мониторинга прокси, для этого в файл конфигурации apache (/etc/apache2/apache2.conf) добавьте следующие строки:
[Directory "/var/www/lightsquid-1.8"]
AddHandler cgi-script .cgi
AllowOverride All
[/Directory]
(где квадратные скобки [] замените на угловые <>)
Перезагрузите веб-сервер:
sudo /etc/init.d/apache2 restart
Далее отредактируйте соответствующим образом lightsquid.cfg (находится в /var/www/lightsquid-1.8):
# Проверьте правильность всех следующих путей:
$cfgpath ="/var/www/lightsquid-1.8";
$tplpath ="/var/www/lightsquid-1.8/tpl";
$langpath ="/var/www/lightsquid-1.8/lang";
$reportpath ="/var/www/lightsquid-1.8/report";
$ip2namepath ="/var/www/lightsquid-1.8/ip2name";
$logpath ="/var/log/squid";
$lockpath =$reportpath;
$maxlocktime = 30*60;
$debug = 0;
$debug2 = 0;
$graphreport = 0;
# В этой строке вы можете изменить язык интерфейса:
$lang ="ru";
Проверьте правильность путей, язык интерфейса, остальную конфигурацию lightsquid изменять не требуется.
После этого программа мониторинга готова к работе. Перейдите в папку lightsquid и запустите скрипт проверки готовности:
cd /var/www/lightsquid-1.8
sudo ./check-setup.pl
Если всё будет в порядке, запускайте генератор отчёта:
sudo ./lightparser.pl
После этого можно прописать скрипт в автозагрузку:
sudo crontab -e
Куда надо добавить:
*/60 * * * * /var/www/lightsquid-1.8/lightparser.pl
(где число означает количество минут между генерациями отчёта)
Доступ к программе мониторинга вы можете получить через адрес:
http://localhost/lightsquid-1.8
0 Comments Leave a comment