Для начало пошел смотреть что уже стоит у меня с системе, что бы не слажать и не начать ставимть заново
Код: Выделить всё
/var/db/ports
и
/var/db/pkg
Обращяю ваше внимание - всегда думайте есть ли у вас такая директория, которая прописана в конфиге или нет. специально тут не пишу где я создаю директории - это должно быть уже в крови - смотрите в конфиг, сразу думаете есть такая директория или нет - если нет - не поленитесь создать.
Для начала поставлю все программы, которые они советуют в разделе "Системные требования" http://stc.nixdev.org/index.php?page=5
В основном все ставится по умолчанию из портов, шибко не заморачиваясь... тут просто внимательно читаем и думаем нужно оно нам или нет. В апаче я как правило выключаю DAV - он мне не нужен - у меня есть самба, в gd включаю "[X] ICONV iconv support" ибо без него никуда. Вот какие порты я ставлю
Код: Выделить всё
/usr/ports/www/apache22
/usr/ports/www/squid
/usr/ports/www/squidguard
/usr/ports/www/sarg
/usr/ports/net/libpcap
/usr/ports/net/p5-Net-Packet
/usr/ports/net/p5-Net-PcapUtils
/usr/ports/net/p5-Net-RawIP
/usr/ports/security/p5-Crypt-HCE_SHA
/usr/ports/security/p5-Crypt-PasswdMD5
Тут сделаю небольшое лирическое отступление - для программ, которых нету в портах я делаю папочку /usr/local/install - именно в ней я дальше и произвожу все действия по сборке и установке. Это помогает не мусорить в системе, а так же иметь одну папку для хранения того, чего нету в портах, и что надо обновлять руками.
Код: Выделить всё
setenv http_proxy http://login:password@192.168.1.7:3128/
mkdir /usr/local/install
cd /usr/local/install
fetch http://stc.nixdev.org/downloads/sfiles/stc-2.0.16.tar.gz
fetch http://stc.nixdev.org/downloads/sfiles/Apache-Htpasswd-1.8.tar.gz
tar -xzf stc-2.0.16.tar.gz
tar -xzf Apache-Htpasswd-1.8.tar.gz
Код: Выделить всё
perl Makefile.PL
make
make install
Теперь можно приступить и к установке самой проги. Файл конфигурации я правил не долго - там почти все по умолчанию
Код: Выделить всё
Begin Intallation of stc-2.0.15 ...
Please check the following install options
-------------------------------------------------------------------
Your OS: FreeBSD
Local ethernet device: bge0
Local net IP: 127.0.0.1
Apache User: www
Apache Group: www
Squid User: squid
Squid Group: squid
-------------------------------------------------------------------
STC data files directory: /usr/local/stc/etc
STC limit scripts directory: /usr/local/stc/limit
File exclude hosts: /usr/local/stc/etc/exclude_hosts
STC sarg files directory: /usr/local/stc/sarg
Apache Document Root /usr/home/www/proxy
Path sarg reports: /usr/home/www/proxy/data/sarg
STC CGI-scripts directory: /usr/home/www/proxy/stat
Squid Log File: /usr/local/squid/logs/access.log
-------------------------------------------------------------------
SquidGuard Path Conf file: /usr/local/etc/squid
Squid Path Conf file: /usr/local/etc/squid
Squid Path Bin file: /usr/local/sbin
Sarg Path Bin file: /usr/local/bin
Charset codepage: rus-1251
Install log file: /var/log/error.log
-------------------------------------------------------------------
If it's OK press Y, otherwise press N (Y/N) y
/etc/stc.conf
Код: Выделить всё
sarg_exclude_codes_filelist /usr/local/etc/sarg/exclude_codes
mega_byte 1048576
local_eth_device bge0
Код: Выделить всё
# Virtual hosts
Include etc/apache22/extra/httpd-vhosts.conf
Код: Выделить всё
<VirtualHost *:80>
ServerAdmin admin@stniva.ru
DocumentRoot /usr/home/www/proxy
ServerName pereslavl.stniva.ru
ErrorLog /var/log/httpd/proxy_pereslavl-error_log
CustomLog /var/log/httpd/proxy_pereslavl-access_log combined
AccessFileName .htaccess
ScriptAlias /stat/cgi/ "/usr/home/www/proxy/stat/statist/"
<Directory "/usr/home/www/proxy/">
AllowOverride All
Order allow,deny
Allow from all
</Directory>
<Directory "/usr/home/www/proxy/stat">
Options Indexes FollowSymlinks MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>
<Directory "/usr/home/www/proxy/stat/statist">
AddHandler cgi-script .cgi .pl
Options +ExecCGI
AuthType Basic
AuthName "Vvedite parol na internet"
AuthUserFile /usr/local/stc/etc/password
Require valid-user
Order allow,deny
Allow from all
</Directory>
<Directory "/usr/home/www/proxy/stat/messages">
AddHandler cgi-script .cgi .pl
Options +ExecCGI
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Опять же обращаю внимание - смотрите в конец файла - есть или нету перевод строки после последней строки - это важно - иногда из-за этой мелочи в конфиге не запускается какая нить прога - пока найдете - пройдут не одни сутки. Всегда обращяйте внимание на то, есть ли пустая строка в конце файла, и на то - пробел или Tab применен в качестве разделителя
Теперь запускаем апачь и идем в вебинтерфейс управления прокси
Код: Выделить всё
pereslavl# ./apache22 start
Performing sanity check on apache22 configuration:
Syntax OK
Starting apache22.
Эти строки вы должны ввести взямен имеющихся. Вносить блоками, как показано - то есть все auth_param друг за другом, а не по разным частям конфига. Ничего комментировать из стандартного конфига не надо - только добавляем это.
Код: Выделить всё
error_directory /usr/local/etc/squid/errors/Russian-1251
############
auth_param basic program /usr/local/libexec/squid/ncsa_auth /usr/local/stc/etc/password
auth_param basic children 50
auth_param basic realm Pereslavl proxy-caching server
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive off
############
logfile_rotate 5
emulate_httpd_log off
url_rewrite_program /usr/local/bin/squidGuard -c /usr/local/etc/squid/squidGuard.conf
url_rewrite_children 20
redirector_bypass on
############
acl localhost src 192.168.56.5/32
acl all_users proxy_auth REQUIRED
############
http_access allow all_users
Код: Выделить всё
pereslavl# /usr/local/sbin/squid -z
2009/12/29 21:17:26| Creating Swap Directories
pereslavl# /usr/local/etc/rc.d/squid start
Starting squid.
Код: Выделить всё
pereslavl# telnet localhost 3128
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
^[
HTTP/1.0 400 Bad Request
Server: squid/2.7.STABLE7
Date: Tue, 29 Dec 2009 18:18:46 GMT
Content-Type: text/html
Content-Length: 1179
X-Squid-Error: ERR_INVALID_REQ 0
X-Cache: MISS from pereslavl.stniva.ru
Via: 1.0 pereslavl.stniva.ru:3128 (squid/2.7.STABLE7)
Connection: close
Код: Выделить всё
chown -R squid:www /usr/local/squid/logs
chmod 664 /usr/local/etc/squid/squid.conf
chown squid:www /usr/local/etc/squid
chown squid:www /usr/local/etc/squid/squid.conf
chown www:www /usr/local/stc/etc/allign.otdel
chown www:www /usr/local/stc/etc/password.digest
chmod 755 /usr/home/www/proxy/stat/images
chmod 777 /tmp/stc
touch /var/log/squidGuard.log
chown squid:squid /var/log/squidGuard.log
mkdir /usr/home/www/proxy/data
mkdir /usr/home/www/proxy/data/sarg
Настало время навести красоту. Привожу примеры, как это делается - полный текст можно посмотреть на любой проксе - тут же просто куски для истории
В файле /usr/home/www/proxy/stat/index.html пишем
Код: Выделить всё
<p style="line-height: 150%; margin-top: 3"align="center">^M
<b><font color="#901022" size="6">АПК Стойленская Нива</font></b></p>^M
<p style="line-height: 150%; margin-top: 3" align="center"><font color="#000080" size="4">^M
система управление http-трафиком<br>офис ЗАО "Переславльский Хлебозавод"</font></p>^M
<hr>^M
^M
<b>Вы не авторизованы - Авторизуйтесь</b>^M
<br>^M
^M
<blockquote>^M
<br><br>^M
<a href="/stat/cgi/statistic.cgi">Вход в статистику(login)</a>^M
<br><br><br>^M
<font size="4">^M
<b>Для того, что бы войти в статистику вы должны набрать логин и пароль, которым пользуетесь для входа в интернет<
</font>^M
</blockquote>^M
</p>^M
<hr>
Код: Выделить всё
<p style="line-height: 150%; margin-top: 3"align="center">^M
<b><font color="#901022" size="6">Выдержка</font></b></p>^M
<p style="line-height: 150%; margin-top: 3" align="center"><font color="#000080" size="4">^M
из документа "Правила использования ресурсов сети Интернет в Компании"<br></font></p>^M
<hr>^M
<b>...раздел "Правила использования ресурсов сети Интернет"</b><br>^M
<blockquote>^M
1.1.Подключение сотрудников к сети Интернет осуществляется в соответствии с установленным в Компании порядком упра
1.2.Запрещается использование ресурсов сети Интернет для работ, не связанных с исполнением должностных обязанносте
1.3.Аппаратные и программные средства, предоставленные сотруднику для доступа к сети Интернет, находятся в зоне от
1.4.Запрещается изменение конфигурации аппаратных и программных средств, а также любые действия по обходу и отключ
1.5.Запрещается размещение в сети Интернет непристойных, клеветнических, оскорбительных, угрожающих и противозакон
1.6.Сотрудник несёт личную ответственность за использование или наступившие последствия в результате использования
1.7.Администрация Компании предоставляет уполномоченным сотрудникам право проведения периодических проверок исполь
1.8.Администрация Компании имеет право вводить ограничения на использование Интернет, например, на соединения по о
</blockquote>^M
Код: Выделить всё
############## WEB Add-on config #################
#TAG: header_text
header_text <center>Статистика http трафика офиса <br> ЗАО "Переславльский хлебозавод"</center>
#TAG: footer_text
footer_text <center>Техподдержка: <b>1800</b> (Владимир Ванин) <br> Вопросы по изменению лимитов: 1278 (Мануйлов Антон Ни
PS: Практически везде у нас на заводах стоит такая система учета трафика, но никто ниразу не удосужился прочитать документацию на неё. Хочу обратить ваше внимание, что вместе с системой идет виндовая программка - агент, который показывает сколько трафика вы израсходовали, и сколько его еще осталось. Висит он в трее и выглядит в виде смайлика. По мере уменьшения трафика смайлик становится все грустней и грустней
Примечания
1) На машине с несколькими внутренними IP адресами не заработал раздел статистики - пришлось руками править скрипт /usr/home/www/proxy/stat/statist/serverstat.cgi - выглядеть он стал так
Код: Выделить всё
#This is only for serverstatus
$conf_site_ip = '127.0.0.1';