Настраиваем кеширующий прозрачный прокси сервер на основе 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
Если есть вопросы пишем не стесняемся.
При размещении на других ресурсах просьба ставить источник.