Инструменты пользователя

Инструменты сайта


squid:squid

Это старая версия документа!


Squid

Прокси (кеширующий) сервер.

http://www.squid-cache.org

Фильтр содержимогоРежик
Администрирование доступа пользователейSQUID Account Management System
Генератор отчетовSARG

Установка

apt install squid

Настройка

Файл squid.conf

Файл squid.conf

/etc/squid/squid.conf
#debug_options ALL,1 28,9
 
http_port 10.0.0.1:3128
http_port 10.0.0.11:3128
tcp_outgoing_address 10.0.0.1
 
maximum_object_size 131072 KB
# minimum_object_size 0 KB
maximum_object_size_in_memory 32 KB
 
#cache_dir null /null
#cache_dir ufs /usr/local/squid/cache 8192 16 256
#cache_log /dev/null
 
cache_dir null /tmp
cache_log /var/log/squid/cache.log
cache_replacement_policy heap LFUDA
 
# Протокол
# Включить
#access_log /var/log/squid/access.log
#cache_store_log /var/log/squid/store.log
# Отключить
access_log none
cache_store_log none
 
# Отключение /var/log/squid/netdb.state
netdb_filename none
 
ftp_user anonymous@domain.ru
visible_hostname HTTP Proxy
cache_mgr webmaster@domain.ru
 
# Использование авторизации basic
 
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
 
# Фильтр содержимого
#redirect_program /opt/rejik/redirector /opt/rejik/redirector.conf
 
# Запрет больших файлов
#request_body_max_size 1 MB
#reply_body_max_size 1 MB
 
acl NOQ1 urlpath_regex cgi-bin \?
no_cache deny NOQ1
 
# ACL: ALL
acl ALL src 0.0.0.0/0.0.0.0
 
# Not cache!
no_cache deny all
 
# Списки доступа по URL/IP
include /usr/local/etc/squid/urls-lists.conf
 
acl ftp proto FTP
#always_direct allow FTP
http_access allow ftp
 
#acl manager proto cache_object
acl SSL_ports port 443 563
acl Safe_ports port 80          # http
acl Safe_ports port 81          # http
acl Safe_ports port 21          # ftp
acl Safe_ports port 443 563     # https, snews
acl Safe_ports port 70          # gopher
acl Safe_ports port 210         # wais
acl Safe_ports port 1025-65535  # unregistered ports
acl Safe_ports port 280         # http-mgmt
acl Safe_ports port 488         # gss-http
acl Safe_ports port 591         # filemaker
acl Safe_ports port 777         # multiling http
acl CONNECT method CONNECT
http_access allow manager localhost
 
# ACL: Deny ALL
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access deny ALL
http_reply_access deny ALL
icp_access deny ALL
 
 
cache_effective_user proxy
cache_effective_group proxy
 
logfile_rotate 7
# minimum_retry_timeout 5 seconds
# maximum_single_addr_tries 3
 
#coredump_dir /usr/local/squid/cache
coredump_dir /var/log/squid
 
# Скрывать внутренний IP адрес клиента
forwarded_for off
via off
 
#header_access X-Forwarded-For deny all
#header_access Via deny all
 
# Выпуск трафика с разных IP-адресов

Использование авторизации basic

Добавление пользователя для авторизации:

htpasswd /etc/squid/passwd ПОЛЬЗОВАТЕЛЬ

Параметры для файла squid.conf:

auth_param basic program /usr/lib/squid3/basic_ncsa_auth /etc/squid/passwd
auth_param basic children 3
auth_param basic realm proxy
authenticate_ttl 600 seconds
authenticate_ip_ttl 10 seconds
auth_param basic credentialsttl 2 hours

Протокол (Log)

Для включения/отключения протокола нужно внести соответствующие изменения в файл squid.conf:

  • Отключить
    access_log none
    cache_store_log none
    cache_log /dev/null
  • Включить:
    access_log /var/log/squid/access.log
    cache_store_log /var/log/squid/store.log

Разрешение на использование

squid.conf
acl localnet src 192.168.1.0/24
http_access allow localnet

Выпуск трафика с разных IP-адресов

Пример выпуска трафика из разных сетей/адресов с разных внешних IP-адресов:

  • Для сети net1 использовать ВНЕШНИЙ_IP_1
  • Для сети net2 использовать ВНЕШНИЙ_IP_2
  • Для адреса net3 использовать ВНЕШНИЙ_IP_3
  • Для остальных использовать ВНЕШНИЙ_IP_4
squid.conf
acl net1 src 10.1.1.0/24
acl net2 src 10.1.2.0/24
acl net3 src 10.1.3.1/32
tcp_outgoing_address ВНЕШНИЙ_IP_1 net1
tcp_outgoing_address ВНЕШНИЙ_IP_2 net2
tcp_outgoing_address ВНЕШНИЙ_IP_3 net3
tcp_outgoing_address ВНЕШНИЙ_IP_4

Перезапуск

service squid reload

Тестирование

Видимость в сети:

netstat -tulpn |grep 3128

Для тестирования удобно использовать браузер Links.

Преобразование штампа даты времени из файла access.log

Примеры:

cat access.log | perl -p -e 's/^([0-9]*)/"[".localtime($1)."]"/e'

или

echo 1464578711.398 | perl -p -e 's/^([0-9]*)/"[".localtime($1)."]"/e'

Ссылки

squid/squid.1602053920.txt.gz · Последние изменения: 2020-10-07 09:58 — GreyWolf