Выкладываю конфиги.
Взяты с рабочего сервера, можно и их использовать, но если хотите разобраться, то лучше установить с нуля, так как в конфигах много опций и они хорошо комментированны.
В комбинации опциями пожно сделать очень много, здесь так, потому что у меня большего не требуется.
Все соединения с Интернет идёт через прокси, на порт 3128 (кроме почты и FTP - эти напрямую). В правилах IPTABLES специально прописано отвергать соединения на 80-м порту и открыт для входящих только 3128, и форвард для 20,21,25,110, иещё парочки каких то не помню.
Ну суть не важно, думаю правила вы знаете как писать.
А вот сами конфиги.
Это havp.config
USER clamav
GROUP clamav
DAEMON true
PIDFILE /var/run/havp.pid
SERVERNUMBER 25
MAXSERVERS 200
ACCESSLOG /var/log/havp/access.log
ERRORLOG /var/log/havp/havp.log
USESYSLOG false
SYSLOGNAME havp
SYSLOGFACILITY daemon
SYSLOGLEVEL info
LOG_OKS false
LOGLEVEL 0
SCANTEMPFILE /var/spool/havp/havp-XXXXXX
TEMPDIR /var/tmp
#
# This only affects library scanners (clamlib, trophie).
# Other scanners must be updated manually.
#
DBRELOAD 60
#
FORWARDED_IP true
X_FORWARDED_FOR false
PORT 8000
BIND_ADDRESS 127.0.0.1
TEMPLATEPATH /etc/havp/templates/ru
WHITELISTFIRST true
WHITELIST /etc/havp/whitelist
BLACKLIST /etc/havp/blacklist
FAILSCANERROR true
MAXSCANSIZE 5000000
#####
##### ClamAV Library Scanner (libclamav)
#####
ENABLECLAMLIB true
CLAMDBDIR /var/lib/clamav/
CLAMBLOCKBROKEN true
CLAMBLOCKENCRYPTED false
Это squid.conf
#
cache_peer 127.0.0.1 parent 8000 0 no-query no-digest no-netdb-exchange default
cache_peer_access 127.0.0.1 allow all
#
acl server src 192.168.0.2 #Какой то сервер
#
acl group_user1 src 192.168.0.51-192.168.0.58
acl user1 src 192.168.0.56
acl group_user4 src 192.168.0.57
acl user2 src 192.168.0.55
acl group_user4 src 192.168.0.62-192.168.0.72
acl user3 src 192.168.0.70
acl user4 src 192.168.0.80
acl group_user2 src 192.168.0.82-192.168.0.83
acl group_user3 src 192.168.0.92-192.168.0.93
acl user4 src 192.168.0.95
#
acl localhost src 127.0.0.1/32
acl localnet src 192.168.0.0/24 #Office lan
#
#acl worktime time MTWHF 09:00-18:00
#acl weekday time SA
#acl evening time 19:00-23:59
#acl night time 00:00-08:59
#
acl denied_sites dstdomain "/etc/squid/blacklist"
acl sites_BAN dstdomain "/etc/squid/ban"
#
acl sites_SERVERS dstdomain "/etc/squid/allowed_sites_SERVERS"
acl sites_user1 dstdomain "/etc/squid/allowed_sites_user1"
acl sites_group_user3 dstdomain "/etc/squid/allowed_sites_group_user3"
acl sites_group_user2 dstdomain "/etc/squid/allowed_sites_group_user2"
acl sites_group_user1 dstdomain "/etc/squid/allowed_sites_group_user1"
#
acl noporno url_regex -i "/etc/squid/noporno"
acl relax urlpath_regex -i \.mp3 \.avi \.flv
acl media urlpath_regex -i \.mpeg \.mov \.asf$ \.wma$ \.iso \.nrg \.tib \.wav \.wmv \.mpg \.vob \.ogg \.exe \.com \.bat \.cmd
acl multimedia url_regex -i "/etc/squid/multimedia"
acl file_type url_regex -i "/etc/squid/file_type"
#
acl QUERY urlpath_regex cgi-bin \? chat
#
acl SSL_ports port 443 # https
acl Safe_ports port 80 # http
acl Safe_ports port 443 # https
acl Safe_ports port 21 # ftp
acl Safe_ports port 8080 #
acl Safe_ports port 8000 #
#
acl Safe_proto proto http
acl Safe_proto proto https
acl Safe_proto proto ftp
#
acl CONNECT method CONNECT
#acl Scan_HTTP proto http
acl Scan_FTP proto ftp
#
always_direct allow Scan_FTP
always_direct allow SSL_Ports
#never_direct allow Scan_HTTP
#
no_cache deny QUERY
#
http_access allow CONNECT SSL_ports !denied_sites
http_access deny CONNECT !SSL_ports
http_access deny !Safe_proto
http_access deny !Safe_ports
#
# ======= RULES ========
#
http_access allow server sites_SERVERS
http_access deny server
#
http_access allow user1
http_access allow user2
http_access allow user3 sites_user3
#
http_access deny relax
http_access deny sites_BAN
#
http_access allow group_user1
http_access allow user4
http_access allow user3 sites_user3
http_access allow group_user2 sites_group_user2
http_access allow group_user3 sites_group_user3
#
http_access deny localnet noporno
http_access deny localhost noporno
http_access deny localnet denied_sites
http_access deny localhost denied_sites
#
http_access deny file_type
http_access deny multimedia
http_access deny media
#
http_access deny weekday
http_access deny evening
http_access deny night
#
http_access allow group_user4
http_access deny group_user4
#
http_access allow group_user3
http_access deny group_user3
#
http_access allow group_user2
http_access deny group_user2
#
http_access allow localhost
http_access deny all
#
# ======= END of RULES ========
#
hierarchy_stoplist cgi-bin ? chat
# Add any of your own refresh_pattern entries above these.
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
refresh_pattern -i \.gif$ 43200 100% 43200 override-lastmod override-expire
refresh_pattern -i \.png$ 43200 100% 43200 override-lastmod override-expire
refresh_pattern -i \.jpg$ 43200 100% 43200 override-lastmod override-expire
refresh_pattern -i \.jpeg$ 43200 100% 43200 override-lastmod override-expire
refresh_pattern -i \.pdf$ 43200 100% 43200 override-lastmod override-expire
refresh_pattern -i \.zip$ 43200 100% 43200 override-lastmod override-expire
refresh_pattern -i \.tar$ 43200 100% 43200 override-lastmod override-expire
refresh_pattern -i \.gz$ 43200 100% 43200 override-lastmod override-expire
refresh_pattern -i \.tgz$ 43200 100% 43200 override-lastmod override-expire
refresh_pattern -i \.prz$ 43200 100% 43200 override-lastmod override-expire
refresh_pattern -i \.inf$ 43200 100% 43200 override-lastmod override-expire
refresh_pattern -i \.doc$ 43200 100% 43200 override-lastmod override-expire
refresh_pattern -i \.ppt$ 43200 100% 43200 override-lastmod override-expire
refresh_pattern -i \.xlc$ 43200 100% 43200 override-lastmod override-expire
refresh_pattern -i \.xls$ 43200 100% 43200 override-lastmod override-expire
refresh_pattern -i \.docx$ 43200 100% 43200 override-lastmod override-expire
refresh_pattern -i \.rtf$ 43200 100% 43200 override-lastmod override-expire
refresh_pattern -i \.txt$ 43200 100% 43200 override-lastmod override-expire
refresh_pattern -i \.rar$ 43200 100% 43200 override-lastmod override-expire
refresh_pattern -i \.7z$ 43200 100% 43200 override-lastmod override-expire
# Main SQUID settings
http_port 192.168.0.1:3128
icp_port 0
cache_mem 2000 MB
cache_dir ufs /var/spool/squid 2000 16 256
error_directory /etc/squid/errors
coredump_dir /var/spool/squid
buffered_logs on
cache_access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log
cache_store_log /var/log/squid/store.log
cache_mgr admin@my_firma.ru # тут пишем своё
visible_hostname Super-Puper-Server # тут тоже
cache_effective_user squid
cache_swap_high 95
cache_swap_low 80
maximum_object_size 16384 KB
maximum_object_size_in_memory 100 KB
minimum_object_size 0 KB
ipcache_size 1024
ipcache_high 95
ipcache_low 80
fqdncache_size 1024
quick_abort_max 16 KB
quick_abort_pct 90
read_ahead_gap 16 KB
negative_ttl 1 minutes
positive_dns_ttl 3 hours
negative_dns_ttl 3 minutes
range_offset_limit 0 KB
allow_underscore on
forwarded_for on
half_closed_clients on
store_objects_per_bucket 20
Это sarg.conf
# sarg.conf
# English
# Russian_koi8
# Russian_UTF-8
# Russian_windows1251
language Russian_UTF-8
# Cyrillic
# Windows-1251
# Koi8-r
# UTF-8
charset UTF-8
access_log /var/log/squid/access.log
output_dir /var/www/html/sarg
graphs yes
graph_days_bytes_bar_color orange
#
title "Название Вашей компании. Отчёт доступа к сети Интернет"
#
font_face Tahoma,Verdana,Arial
header_color darkblue
header_bgcolor blanchedalmond
font_size 9px
header_font_size 9px
title_font_size 11px
background_color white
text_color #000000
text_bgcolor lavender
title_color green
logo_image none
background_image none
password none
temporary_dir /var/tmp/sarg/
output_email none
resolve_ip yes
topuser_sort_field BYTES reverse
user_sort_field BYTES reverse
date_format e
lastlog 0
remove_temp_files yes
index yes
index_tree file
overwrite_report no
mail_utility mail
topsites_num 100
exclude_codes /etc/sarg/exclude_codes
report_type topusers topsites sites_users users_sites date_time denied auth_failures site_user_time_date downloads
date_time_by elap
privacy no
show_successful_message yes
show_read_statistics yes
topuser_fields NUM DATE_TIME USERID BYTES USED_TIME TOTAL AVERAGE
user_report_fields CONNECT BYTES USED_TIME TOTAL AVERAGE
topuser_num 0
site_user_time_date_type table
datafile none
hours 0-23
show_sarg_info no
show_sarg_logo no
parsed_output_log_compress /bin/gzip
external_css_file none
Собственно из всех пояснений тут только то, запросы клиентов получает SQUID и передаёт их HAVP-у, а ответ в обратном порядке.
Можно ещё было аутенефикацию по домененой учётке прикрутить, но ИМХО это лишний костыль в моём случае, поэтому вся привязка на уровне IP адреса (у меня они выдаются автоматом, к DHCP привязан МАС).
Как я уже сказал, вариаций решения может быть великое множество, у меня сделанно вот так.
Буду вопросы - пишите.
Истина ускользает от тех кто отказывается её видеть обоими глазами.
Талантам нужно помогать, бездарности пробьются сами.
В Туле настолько суровые парни, что вместо пены для бритья, используют пену монтажную.
cat /broken/hands > /dev/null