Установка и настройка Squid3 как кэширующий Transparent Proxy на Ubuntu

Unix - ставим, настраиваем, пользуемся: Установка и настройка Squid3 как кэширующий Transparent Proxy на Ubuntu

Настраиваем кеширующий прозрачный прокси сервер на основе squid3 и os ubuntu 12, для чего он нужен, такой прокси нужен для экономии трафика и увеличении скорости загрузки часто посещаемых страниц.

Для начала нам необходимо установить squid3:
sudo apt-get install squid3

Теперь переходим к настройке squid3 сервер, возьмем за основу сервер который настраивали в предыдущей статье freeitzone.ru/unix/2012/10/11/nastraivaem-nat-v-ubuntu-12-s-pomoschyu-iptables.html

У нас имеется:
Белый интернет с реальным ip адресом eth0 — 10.10.10.10/255.255.255.252
Серый ip адрес для локальной сети eth1 — 192.168.0.1/255.255.255.0

Начинаем настройку:

— создадим папку для кеша интернета нашего squid3 сервера

mkdir /opt/squid3/cache

— открываем и редактируем конфиг squid3
sudo cp /etc/squid3/squid.conf /etc/squid3/squid.conf.origin

sudo nano /etc/squid3/squid.conf

 

# ACCESS CONTROLS OPTIONS
# ====================
acl QUERY urlpath_regex cgi-bin \?
cache deny QUERY

#Описываем сети которым вы открываете доступ
acl manager proto cache_object
acl localnet src 192.168.0.0/24 # Your network here
acl localhost src 127.0.0.1/32
#Указываем порт 80 для проксирования, если нужны другие порты добавляем, но не забываем потом настроить iptables
acl Safe_ports port 80  # http
acl purge method PURGE
acl CONNECT method CONNECT

http_access allow manager localhost
http_access allow localnet
http_access deny manager

# Only allow purge requests from localhost
http_access allow purge localhost
http_access deny purge

# Deny requests to unknown ports
http_access deny !Safe_ports

# Deny CONNECT to other than SSL ports
http_access allow localhost

http_access deny all

#
# NETWORK OPTIONS
# —————
#Порт для проксирования
http_port 3128 transparent
#
# OPTIONS WHICH AFFECT THE CACHE SIZE
# ==============================
#
cache_mem 512 MB
maximum_object_size_in_memory 64 KB
memory_replacement_policy heap GDSF
cache_replacement_policy heap LFUDA
#Ставим размер кеша на диске тут примерно 11 Гб выставлено
cache_dir aufs /opt/squid3/cache 12000 16 256
#Максимальный размер кешируемого файла 256 МБ
maximum_object_size 256 MB
#Минимальный размер кешируемого файла
minimum_object_size 0,05 KB
cache_swap_high 99
cache_swap_low 95
#
# LOGFILE PATHNAMES AND CACHE DIRECTORIES
# ==================================
#Пути логирования информации
access_log /var/log/squid3/access.log
cache_log /var/log/squid3/cache.log
cache_store_log none
logfile_rotate 5
log_icp_queries off
#
# OPTIONS FOR TUNING THE CACHE
# ========================
#Кешуруем определенный типы файлов

#2gis
refresh_pattern -i /ver3/infolist\?.* 10 100% 10
refresh_pattern -i /ver3/download/.* 43200 100% 43200

#files
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 \.swf$ 43200 100% 43200 override-lastmod override-expire
refresh_pattern -i \.exe$ 43200 100% 43200 override-lastmod override-expire
refresh_pattern -i \.flv$ 43200 100% 43200 override-lastmod override-expire
refresh_pattern -i \.x-flv$ 43200 100% 43200 override-lastmod override-expire
refresh_pattern -i \.mp4$ 43200 100% 43200 override-lastmod override-expire
refresh_pattern -i \.flv$ 43200 100% 43200 override-lastmod override-expire
refresh_pattern -i \.gz$ 43200 100% 43200 override-lastmod override-expire
refresh_pattern -i \.tbz$ 43200 100% 43200 override-lastmod override-expire
refresh_pattern -i \.zip$ 43200 100% 43200 override-lastmod override-expire
refresh_pattern -i \.rar$ 43200 100% 43200 override-lastmod override-expire
refresh_pattern -i \.mpg$ 43200 100% 43200 override-lastmod override-expire
refresh_pattern -i \.mpeg$ 43200 100% 43200 override-lastmod override-expire
refresh_pattern -i \.avi$ 43200 100% 43200 override-lastmod override-expire
refresh_pattern -i \.asf$ 43200 100% 43200 override-lastmod override-expire
refresh_pattern -i \.mov$ 43200 100% 43200 override-lastmod override-expire
refresh_pattern -i \.xml$ 43200 100% 43200 override-lastmod override-expire
refresh_pattern -i \.vdb$ 43200 100% 43200 override-lastmod override-expire
refresh_pattern -i \.cab$ 43200 100% 43200 override-lastmod override-expire
refresh_pattern -i \.txt$ 43200 100% 43200 override-lastmod override-expire
refresh_pattern -i \.pdf$ 43200 100% 43200 override-lastmod override-expire

#Режем баннеры некоторые
#baners
refresh_pattern -i http://ad\.                        43200   100%    43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern -i http://ads\.                       43200   100%    43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern -i http://adv\.                       43200   100%    43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern -i http://click\.                     43200   100%    43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern -i http://count\.                     43200   100%    43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern -i http://counter\.                   43200   100%    43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern -i http://engine\.                    43200   100%    43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern -i http://img\.readme\.ru             43200   100%    43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern -i http://userpic\.livejournal\.com   43200   100%    43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern -i \.ru/bf-analyze                    43200   100%    43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern -i \.ru/bf-si                         43200   100%    43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern -i /advs/                             43200   100%    43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern -i /banners/                          43200   100%    43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern -i /cgi-bin/iframe/                   43200   100%    43200 override-lastmod override-expire ignore-reload ignore-no-cache

refresh_pattern ^ftp:    1440    20%    10080
refresh_pattern ^gopher:    1440    0%    1440
refresh_pattern -i (/cgi-bin/|\?) 0    0%    0
refresh_pattern . 1440 90% 10080

#
quick_abort_min 0 KB
quick_abort_max 0 KB
quick_abort_pct 100
store_avg_object_size 13 KB
#
# HTTP OPTIONS
# ===========
vary_ignore_expire on
#
# ANONIMITY OPTIONS
# ===============
#
request_header_access From deny all
request_header_access Server deny all
request_header_access Link deny all
request_header_access Via deny all
request_header_access X-Forwarded-For deny all
#
# TIMEOUTS
# =======
#
forward_timeout 240 second
connect_timeout 30 second
peer_connect_timeout 5 second
read_timeout 600 second
request_timeout 60 second
shutdown_lifetime 10 second
#
# ADMINISTRATIVE PARAMETERS
# =====================
#
cache_mgr NAT
cache_effective_user proxy
cache_effective_group proxy
httpd_suppress_version_string on
visible_hostname NAT
#
ftp_list_width 32
ftp_passive on
ftp_sanitycheck on
#
# DNS OPTIONS
# ==========
#
dns_timeout 5 seconds
dns_nameservers 8.8.8.8 8.8.4.4 # ТУТ пишем DNS Server вашего провайдера или любой другой, можно закоментировать
#
# MISCELLANEOUS
# ===========
#
memory_pools on
memory_pools_limit 640 MB
client_db off
reload_into_ims on
pipeline_prefetch on
offline_mode off
emulate_httpd_log on
half_closed_clients off
#Отключаем поддержку ipv6 в squid3 
tcp_outgoing_address 0.0.0.0 all

— сохраняем и делаем кеш папки и перезагрузку squid3

squid3 -z
squid3 restart
или
service squid3 restart

Теперь надо пере направить все запросы с 80 порта клиентов на 3128 порт squid3:

— в предыдущей статье писали как настраивается nat на ubuntu freeitzone.ru/nastraivaem-nat-v-ubuntu-12-s-pomoshhyu-iptables/ необходимо

добавить несколько строчек в IPtables и применить пере адресацию, добавляем до строчек iptables -t nat -A POSTROUTING -o eth0 %

#Редирект порта 80 на squid3 ip 10.10.10.10 порт 3128 интерфейса eth0 
iptables -t nat -A PREROUTING -p tcp -m tcp --dport 80 -j DNAT --to-destination ВНЕШНИЙ IP:3128
iptables -t nat -A PREROUTING -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
iptables -A INPUT -i eth0 -p tcp --dport 3128 -j REJECT

Сохранить и применить /opt/iptables.sh

Теперь ваш трафик проходит через squid3 и кешируется на сервере, что позволит вам посещать любимые сайты с большим количеством картинок и видео с большей скоростью, но сюда не входит www.youtube.com для него необходимо настраивать отдельно squid3 мануал тут wiki.squid-cache.org/ConfigExamples/DynamicContent/YouTube

Если есть вопросы пишем не стесняемся.

При размещении на других ресурсах просьба ставить источник.

Яндекс.Метрика