Все команды выполнялись от прав пользователя root.
1. Устанавливаю Squid — 'apt-get install squid3'. После установки останавливаю его, ибо нужно сконфигурировать его под мои нужды - '/etc/init.d/squid3 stop'.
2. Собственно редактирую конфиг прокси-сервера — 'nano /etc/squid3/squid.conf', до следующего вида:
# ACCESS CONTROLS
# -----------------------------------------------------------------------------
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8
acl homenet src 192.168.1.0/24
acl goodip src "/etc/allow.txt"
acl delaypool20 src "/etc/squid3/delay20.txt"
#acl perring src "/etc/squid3/perring.txt"
acl exception url_regex -i "/etc/squid3/exception.txt"
acl bad_url url_regex -i "/etc/squid3/advare.txt"
acl bad_url_reg urlpath_regex -i "/etc/squid3/adv_reg.txt"
acl ip2 src 192.168.1.2/32
acl site2 url_regex -i "/etc/squid3/2.txt"
acl directurl url_regex "/etc/squid3/nocache.txt"
acl timeless time 7:00-23:59
#acl media urlpath_regex -i \.mp3$ \.asf$ \.wma$ \.avi$ \.mov$
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 5190 # icq
acl Safe_ports port 1025-65535 # unregistered ports
acl CONNECT method CONNECT
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow exception
http_access deny bad_url
http_access deny bad_url_reg
http_access allow goodip
http_access allow localhost
http_access allow site2 ip2
http_access deny all
icp_access deny all
htcp_access deny all
# NETWORK OPTIONS
# -----------------------------------------------------------------------------
http_port 3128 transparent
# OPTIONS WHICH AFFECT THE NEIGHBOR SELECTION ALGORITHM
# -----------------------------------------------------------------------------
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \?
no_cache deny QUERY
no_cache deny directurl
# MEMORY CACHE OPTIONS
# -----------------------------------------------------------------------------
cache_mem 64 MB
maximum_object_size_in_memory 512 KB
# DISK CACHE OPTIONS
# -----------------------------------------------------------------------------
cache_dir ufs /var/spool/squid3 15000 16 256
maximum_object_size 8192 KB
# cache_swap_low 90 указывает до какого уровня очистить кэш (в процентах
# от максимального)при достижении "потолка" - cache_swap_high
cache_swap_low 90
cache_swap_high 95
# LOGFILE OPTIONS
# -----------------------------------------------------------------------------
access_log /var/log/squid3/access.log squid
cache_log /var/log/squid3/cache.log
cache_store_log none
pid_filename /var/run/squid3.pid
debug_options ALL,1
# OPTIONS FOR TUNING THE CACHE
# -----------------------------------------------------------------------------
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern (cgi-bin|\?) 0 0% 0
refresh_pattern . 0 20% 4320
quick_abort_min 16 KB
quick_abort_max 16 KB
quick_abort_pct 95
negative_ttl 5 minutes
positive_dns_ttl 6 hours
negative_dns_ttl 1 minutes
# HTTP OPTIONS
# -----------------------------------------------------------------------------
request_header_access From deny all
# request_header_access Referer deny all
request_header_access Server deny all
request_header_access User-Agent deny all
request_header_access WWW-Authenticate deny all
request_header_access Link deny all
header_replace User-Agent Opera/9.80 (Windows NT 6.1; U; ru) Presto/2.6.7 Version/11.00
# ADMINISTRATIVE PARAMETERS
# -----------------------------------------------------------------------------
cache_effective_user proxy
visible_hostname server.ex
# DELAY POOL PARAMETERS
# -----------------------------------------------------------------------------
delay_pools 4
# 1 класс - наказание за нарушение устава - 20% скорости
delay_class 1 1
delay_access 1 allow delaypool20
delay_parameters 1 5000/5000
delay_access 1 deny all
# 2 класс - для избранных сайтов вся сеть качает без ограничений
delay_class 2 1
#delay_access 2 allow perring
delay_access 2 allow directurl
delay_parameters 2 -1/-1
delay_access 2 deny all
# 3 класс - в период с 23.59 по 7.00 вся сеть качает практически без ограничений
# экспериментальный фильтр 70% на кач - 512КБ/сек
delay_class 3 2
delay_access 3 allow !timeless
delay_parameters 3 -1/-1 512000/512000
delay_access 3 deny all
# 4 класс - до 1МБ загружают весь канал без ограничений, свыше 1МБ только 50% от канала
delay_class 4 2
delay_access 4 allow goodip
delay_parameters 4 -1/-1 250000/512000
delay_access 4 deny all
# ICP OPTIONS
# -----------------------------------------------------------------------------
icp_port 3130
# ERROR PAGE OPTIONS
# -----------------------------------------------------------------------------
error_directory /usr/share/squid3/errors/Russian-koi8-r
deny_info ERR_BLOCKED_BANNERS bad_url
deny_info ERR_BLOCKED_BANNER_REG bad_url_reg
deny_info ERR_BLOCKED_SPYWARE spyware
# OPTIONS INFLUENCING REQUEST FORWARDING
# -----------------------------------------------------------------------------
always_direct allow directurl
# DNS OPTIONS
# -----------------------------------------------------------------------------
hosts_file /etc/hosts
# MISCELLANEOUS
# -----------------------------------------------------------------------------
forwarded_for off
coredump_dir /var/spool/squid3
3. Создаю необходимые файлы задействованные в конфиге.
- 'nano /etc/allow.txt' - список IP адресов которым разрешен доступ в Internet, список вида:
192.168.1.2
192.168.1.3
192.168.1.4
- 'nano /etc/squid3/delay20.txt' - список IP адресов людей злоупотребляющих Internet'ом (т.е. любителей качать большие объемы информации и тд.), список вида:
192.168.1.3
192.168.1.4
- 'nano /etc/squid3/perring.txt' - список IP адресов попадающих в пиринговую зону провайдера, список вида:
86.57.253.1
91.149.189.0/25
-'nano /etc/squid3/advare.txt' - стоп лист неблагоприятных сайтов (рекламных, вирусных и тд.), список имеет вид:
94.198.240.94/content/
ad.sprinthost.ru
- 'nano /etc/squid3/adv_reg.txt' - еще один стоп лист, но несколько другого вида:
bannerid
lg.php
.ad.infoseek.com
.bikinicollection.com/clickmexxx.html
- 'nano /etc/squid3/exception.txt' - список надежных сайтов, рассматриваемых по какой-либо причине стоп листами как плохие, имеет вид:
adwords.google.com
adwords.google.ru
- 'nano /etc/squid3/2.txt' - список сайтов находящихся в стоп листе, но по какой-либо причине нужных конкретному пользователю, имеет вид:
sextracker.de
shoppingads.com
- 'nano /etc/squid3/nocache.txt' - список адресов которые не нужно кэшировать (например игровые), имее вид:
ereality.ru
l2.ru
4. Запускаю Squid — '/etc/init.d/squid3 start''/etc/init.d/squid3 start'
5. Создаю правило в iptables для перенаправления локального трафика с 80 порта на порт Squid'а — 3128:
/sbin/iptables -t nat -A PREROUTING -i eth1 -s 192.168.0.0/24 -p tcp -d 0.0.0.0/0 --dport 80 -j REDIRECT --to-port 3128
1. Устанавливаю Squid — 'apt-get install squid3'. После установки останавливаю его, ибо нужно сконфигурировать его под мои нужды - '/etc/init.d/squid3 stop'.
2. Собственно редактирую конфиг прокси-сервера — 'nano /etc/squid3/squid.conf', до следующего вида:
# ACCESS CONTROLS
# -----------------------------------------------------------------------------
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8
acl homenet src 192.168.1.0/24
acl goodip src "/etc/allow.txt"
acl delaypool20 src "/etc/squid3/delay20.txt"
#acl perring src "/etc/squid3/perring.txt"
acl exception url_regex -i "/etc/squid3/exception.txt"
acl bad_url url_regex -i "/etc/squid3/advare.txt"
acl bad_url_reg urlpath_regex -i "/etc/squid3/adv_reg.txt"
acl ip2 src 192.168.1.2/32
acl site2 url_regex -i "/etc/squid3/2.txt"
acl directurl url_regex "/etc/squid3/nocache.txt"
acl timeless time 7:00-23:59
#acl media urlpath_regex -i \.mp3$ \.asf$ \.wma$ \.avi$ \.mov$
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 5190 # icq
acl Safe_ports port 1025-65535 # unregistered ports
acl CONNECT method CONNECT
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow exception
http_access deny bad_url
http_access deny bad_url_reg
http_access allow goodip
http_access allow localhost
http_access allow site2 ip2
http_access deny all
icp_access deny all
htcp_access deny all
# NETWORK OPTIONS
# -----------------------------------------------------------------------------
http_port 3128 transparent
# OPTIONS WHICH AFFECT THE NEIGHBOR SELECTION ALGORITHM
# -----------------------------------------------------------------------------
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \?
no_cache deny QUERY
no_cache deny directurl
# MEMORY CACHE OPTIONS
# -----------------------------------------------------------------------------
cache_mem 64 MB
maximum_object_size_in_memory 512 KB
# DISK CACHE OPTIONS
# -----------------------------------------------------------------------------
cache_dir ufs /var/spool/squid3 15000 16 256
maximum_object_size 8192 KB
# cache_swap_low 90 указывает до какого уровня очистить кэш (в процентах
# от максимального)при достижении "потолка" - cache_swap_high
cache_swap_low 90
cache_swap_high 95
# LOGFILE OPTIONS
# -----------------------------------------------------------------------------
access_log /var/log/squid3/access.log squid
cache_log /var/log/squid3/cache.log
cache_store_log none
pid_filename /var/run/squid3.pid
debug_options ALL,1
# OPTIONS FOR TUNING THE CACHE
# -----------------------------------------------------------------------------
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern (cgi-bin|\?) 0 0% 0
refresh_pattern . 0 20% 4320
quick_abort_min 16 KB
quick_abort_max 16 KB
quick_abort_pct 95
negative_ttl 5 minutes
positive_dns_ttl 6 hours
negative_dns_ttl 1 minutes
# HTTP OPTIONS
# -----------------------------------------------------------------------------
request_header_access From deny all
# request_header_access Referer deny all
request_header_access Server deny all
request_header_access User-Agent deny all
request_header_access WWW-Authenticate deny all
request_header_access Link deny all
header_replace User-Agent Opera/9.80 (Windows NT 6.1; U; ru) Presto/2.6.7 Version/11.00
# ADMINISTRATIVE PARAMETERS
# -----------------------------------------------------------------------------
cache_effective_user proxy
visible_hostname server.ex
# DELAY POOL PARAMETERS
# -----------------------------------------------------------------------------
delay_pools 4
# 1 класс - наказание за нарушение устава - 20% скорости
delay_class 1 1
delay_access 1 allow delaypool20
delay_parameters 1 5000/5000
delay_access 1 deny all
# 2 класс - для избранных сайтов вся сеть качает без ограничений
delay_class 2 1
#delay_access 2 allow perring
delay_access 2 allow directurl
delay_parameters 2 -1/-1
delay_access 2 deny all
# 3 класс - в период с 23.59 по 7.00 вся сеть качает практически без ограничений
# экспериментальный фильтр 70% на кач - 512КБ/сек
delay_class 3 2
delay_access 3 allow !timeless
delay_parameters 3 -1/-1 512000/512000
delay_access 3 deny all
# 4 класс - до 1МБ загружают весь канал без ограничений, свыше 1МБ только 50% от канала
delay_class 4 2
delay_access 4 allow goodip
delay_parameters 4 -1/-1 250000/512000
delay_access 4 deny all
# ICP OPTIONS
# -----------------------------------------------------------------------------
icp_port 3130
# ERROR PAGE OPTIONS
# -----------------------------------------------------------------------------
error_directory /usr/share/squid3/errors/Russian-koi8-r
deny_info ERR_BLOCKED_BANNERS bad_url
deny_info ERR_BLOCKED_BANNER_REG bad_url_reg
deny_info ERR_BLOCKED_SPYWARE spyware
# OPTIONS INFLUENCING REQUEST FORWARDING
# -----------------------------------------------------------------------------
always_direct allow directurl
# DNS OPTIONS
# -----------------------------------------------------------------------------
hosts_file /etc/hosts
# MISCELLANEOUS
# -----------------------------------------------------------------------------
forwarded_for off
coredump_dir /var/spool/squid3
3. Создаю необходимые файлы задействованные в конфиге.
- 'nano /etc/allow.txt' - список IP адресов которым разрешен доступ в Internet, список вида:
192.168.1.2
192.168.1.3
192.168.1.4
- 'nano /etc/squid3/delay20.txt' - список IP адресов людей злоупотребляющих Internet'ом (т.е. любителей качать большие объемы информации и тд.), список вида:
192.168.1.3
192.168.1.4
- 'nano /etc/squid3/perring.txt' - список IP адресов попадающих в пиринговую зону провайдера, список вида:
86.57.253.1
91.149.189.0/25
-'nano /etc/squid3/advare.txt' - стоп лист неблагоприятных сайтов (рекламных, вирусных и тд.), список имеет вид:
94.198.240.94/content/
ad.sprinthost.ru
- 'nano /etc/squid3/adv_reg.txt' - еще один стоп лист, но несколько другого вида:
bannerid
lg.php
.ad.infoseek.com
.bikinicollection.com/clickmexxx.html
- 'nano /etc/squid3/exception.txt' - список надежных сайтов, рассматриваемых по какой-либо причине стоп листами как плохие, имеет вид:
adwords.google.com
adwords.google.ru
- 'nano /etc/squid3/2.txt' - список сайтов находящихся в стоп листе, но по какой-либо причине нужных конкретному пользователю, имеет вид:
sextracker.de
shoppingads.com
- 'nano /etc/squid3/nocache.txt' - список адресов которые не нужно кэшировать (например игровые), имее вид:
ereality.ru
l2.ru
4. Запускаю Squid — '/etc/init.d/squid3 start''/etc/init.d/squid3 start'
5. Создаю правило в iptables для перенаправления локального трафика с 80 порта на порт Squid'а — 3128:
/sbin/iptables -t nat -A PREROUTING -i eth1 -s 192.168.0.0/24 -p tcp -d 0.0.0.0/0 --dport 80 -j REDIRECT --to-port 3128