Записки программиста, обо всем и ни о чем. Но, наверное, больше профессионального.

2006-11-06

толковый веб прокси сервер

Проявилась у меня задачка, за минимальное время (ну занят я) настроить на работе такой веб прокси чтобы трафик по пользователям считался (с перспективой отлучения от интернета). Потому как мегабайт за рубль, как мы сейчас платим, это нот гуд. Начальство переживает.
На текущий момент у меня выход в интернет через линуксовый шлюз, на котором SQUID, NAT, IPTABLES (в смысле файрволл). А народ в локальной сети живет в домене Win2003.
Вот такие условия. Да, чуть не забыл, воровать не люблю, поэтому либо бесплатное решение, либо опенсорц (что лучше).

Ну провел я серию экспериментов, поскольку времени в обрез, вошкаться некогда, искал виндовые программы - прокси, бесплатные. А, долго писать, сразу вывод:
Ставим SQUID NT и не паримся. Вполне профессиональное решение. А если будет время, можно и на линуксовый гейт перетащить.

Описываю алгоритм: скачиваем пакет, распаковываем непременно в C:\SQUID (другие каталоги может и подойдут, после камланий, но так быстрее).
Потом в каталоге c:\squid\etc\ переименовываем "примерные" конфиг.файлы в действующие.
Потом вносим правки в c:\squid\etc\squid.conf (в хвосте поста можете посмотреть мои правки в виде diff'a).
Потом устанавливаем сервис, например так:

pushd c:\squid\sbin
rem остановим и убьем:
net stop squid
squid.exe -r
rem обратно установим:
md ..\var\cache
squid.exe -z
squid.exe -i
net start squid

Ну и ради чего все затевалось - анализатор логов: Stone Steps Webalizer
Довольно примитивная штука, в FAQ все описано и все очень просто.
Пример скрипта для анализа логов сквида:

set WALZR=p:\app\webalizer\webalizer
set REPS=c:\squid\var\rep
set LOGS=c:\squid\var\logs
%WALZR%\webalizer.exe -F squid -n localhost -o %REPS% %LOGS%\access.log

главное, не забыть поместить в %REPS% CSS & JS файлы, а то некрасивые отчеты получаются.


обещанный дифф:


--- C:/downloads/prox/squid/etc/squid.conf.default Mon Sep 25 23:09:04 2006
+++ C:/squid/etc/squid.conf Thu Nov 02 20:33:07 2006
@@ -1022,10 +1022,11 @@
# Note that for coss, max-size must be less than COSS_MEMBUF_SZ
# (hard coded at 1 MB).
#
#Default:
# cache_dir ufs c:/squid/var/cache 100 16 256
+cache_dir ufs c:/squid/var/cache 300 16 32

# TAG: logformat
# Usage:
#
# logformat
@@ -1183,10 +1184,11 @@
# this, but the default file contains examples and formatting
# information if you do.
#
#Default:
# mime_table c:/squid/etc/mime.conf
+mime_table c:/squid/etc/mime.conf

# TAG: log_mime_hdrs on|off
# The Cache can record both the request and the response MIME
# headers for each HTTP transaction. The headers are encoded
# safely and will appear as two bracketed fields at the end of
@@ -1424,10 +1426,11 @@
# TAG: unlinkd_program
# Specify the location of the executable for file deletion process.
#
#Default:
# unlinkd_program c:/squid/libexec/unlinkd.exe
+unlinkd_program c:/squid/libexec/unlinkd.exe

# TAG: pinger_program
# Note: This option is only available if Squid is rebuilt with the
# --enable-icmp option
#
@@ -1796,10 +1799,17 @@
#auth_param basic program
#auth_param basic children 5
#auth_param basic realm Squid proxy-caching web server
#auth_param basic credentialsttl 2 hours
#auth_param basic casesensitive off
+auth_param basic program c:/squid/libexec/mswin_auth.exe -A webaccess
+auth_param basic children 1
+auth_param basic realm Squid proxy-caching web server
+auth_param basic credentialsttl 23 hours
+auth_param basic casesensitive off
+
+

# TAG: authenticate_cache_garbage_interval
# The time period between garbage collection across the username cache.
# This is a tradeoff between memory utilization (long intervals - say
# 2 days) and CPU (short intervals - say 1 minute). Only change if you
@@ -2100,10 +2110,11 @@
# Minimum value is 1 second, and it is not recommendable to go
# much below 10 seconds.
#
#Default:
# negative_dns_ttl 1 minute
+negative_dns_ttl 10 seconds

# TAG: range_offset_limit (bytes)
# Sets a upper limit on how far into the the file a Range request
# may be to cause Squid to prefetch the whole file. If beyond this
# limit Squid forwards the Range request as it is and the result
@@ -2438,10 +2449,15 @@
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl CONNECT method CONNECT

+acl ident proxy_auth REQUIRED
+acl homenet src 192.168.1.0/255.255.255.0
+acl homenet src 127.0.0.1/255.255.255.255
+
+
# TAG: follow_x_forwarded_for
# Allowing or Denying the X-Forwarded-For header to be followed to
# find the original source of a request.
#
# Requests may pass through a chain of several other proxies
@@ -2532,11 +2548,11 @@
# http_access deny all
#
#Recommended minimum configuration:
#
# Only allow cachemgr access from localhost
-http_access allow manager localhost
+# http_access allow manager localhost
http_access deny manager
# Deny requests to unknown ports
http_access deny !Safe_ports
# Deny CONNECT to other than SSL ports
http_access deny CONNECT !SSL_ports
@@ -2545,10 +2561,15 @@
# web applications running on the proxy server who think the only
# one who can access services on "localhost" is a local user
#http_access deny to_localhost
#
# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
+http_access allow ident homenet
+# http_access allow homenet
+
+http_access deny manager all
+http_access deny all

# Example rule allowing access from your local networks. Adapt
# to list your (internal) IP networks from where browsing should
# be allowed
#acl our_networks src 192.168.1.0/24 192.168.2.0/24
@@ -2599,11 +2620,13 @@
#
#Default:
# icp_access deny all
#
#Allow ICP queries from everyone
-icp_access allow all
+# icp_access allow all
+icp_access allow homenet
+icp_access deny all

# TAG: htcp_access
# Allowing or Denying access to the HTCP port based on defined
# access lists
#
@@ -2799,10 +2822,11 @@
# Email-address of local cache manager who will receive
# mail if the cache dies. The default is "webmaster".
#
#Default:
# cache_mgr webmaster
+cache_mgr soap@homenet.net

# TAG: mail_from
# From: email-address for mail sent when the cache dies.
# The default is to use 'appname@unique_hostname'.
# Default appname value is "squid", can be changed into
@@ -2858,10 +2882,11 @@
# get errors about IP-forwarding you must set them to have individual
# names with this setting.
#
#Default:
# none
+visible_hostname localhost

# TAG: unique_hostname
# If you want to have multiple machines with the same
# 'visible_hostname' you must give each machine a different
# 'unique_hostname' so forwarding loops can be detected.

Комментариев нет:

Отправить комментарий

Архив блога

Ярлыки

linux (241) python (191) citation (186) web-develop (170) gov.ru (159) video (124) бытовуха (115) sysadm (100) GIS (97) Zope(Plone) (88) бурчалки (84) Book (83) programming (82) грабли (77) Fun (76) development (73) windsurfing (72) Microsoft (64) hiload (62) internet provider (57) opensource (57) security (57) опыт (55) movie (52) Wisdom (51) ML (47) driving (45) hardware (45) language (45) money (42) JS (41) curse (40) bigdata (39) DBMS (38) ArcGIS (34) history (31) PDA (30) howto (30) holyday (29) Google (27) Oracle (27) tourism (27) virtbox (27) health (26) vacation (24) AI (23) Autodesk (23) SQL (23) humor (23) Java (22) knowledge (22) translate (20) CSS (19) cheatsheet (19) hack (19) Apache (16) Manager (15) web-browser (15) Никонов (15) Klaipeda (14) functional programming (14) happiness (14) music (14) todo (14) PHP (13) course (13) scala (13) weapon (13) HTTP. Apache (12) SSH (12) frameworks (12) hero (12) im (12) settings (12) HTML (11) SciTE (11) USA (11) crypto (11) game (11) map (11) HTTPD (9) ODF (9) Photo (9) купи/продай (9) benchmark (8) documentation (8) 3D (7) CS (7) DNS (7) NoSQL (7) cloud (7) django (7) gun (7) matroska (7) telephony (7) Microsoft Office (6) VCS (6) bluetooth (6) pidgin (6) proxy (6) Donald Knuth (5) ETL (5) NVIDIA (5) Palanga (5) REST (5) bash (5) flash (5) keyboard (5) price (5) samba (5) CGI (4) LISP (4) RoR (4) cache (4) car (4) display (4) holywar (4) nginx (4) pistol (4) spark (4) xml (4) Лебедев (4) IDE (3) IE8 (3) J2EE (3) NTFS (3) RDP (3) holiday (3) mount (3) Гоблин (3) кухня (3) урюк (3) AMQP (2) ERP (2) IE7 (2) NAS (2) Naudoc (2) PDF (2) address (2) air (2) british (2) coffee (2) fitness (2) font (2) ftp (2) fuckup (2) messaging (2) notify (2) sharepoint (2) ssl/tls (2) stardict (2) tests (2) tunnel (2) udev (2) APT (1) CRUD (1) Canyonlands (1) Cyprus (1) DVDShrink (1) Jabber (1) K9Copy (1) Matlab (1) Portugal (1) VBA (1) WD My Book (1) autoit (1) bike (1) cannabis (1) chat (1) concurrent (1) dbf (1) ext4 (1) idioten (1) join (1) krusader (1) license (1) life (1) migration (1) mindmap (1) navitel (1) pneumatic weapon (1) quiz (1) regexp (1) robot (1) science (1) serialization (1) spatial (1) tie (1) vim (1) Науру (1) крысы (1) налоги (1) пианино (1)