Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
network:squid [2023/12/13 09:43] – удалено - внешнее изменение (Дата неизвестна) 127.0.0.1network:squid [2023/12/13 09:43] (текущий) – ↷ Страница перемещена из system:squid в network:squid mirocow
Строка 1: Строка 1:
 +{{tag>squid proxy rokomnadzor blocklist}}
  
 +====== Squid ======
 +
 +  * [[https://gist.github.com/search?p=3&q=squid.conf&utf8=%E2%9C%93|Примеры настроек]]
 +  * [[http://break-people.ru/cmsmade/index.php?page=articles_squid_practice|Советы]]
 +
 +===== Параметры =====
 +
 +  * src: IP-адрес источника (клиент) 
 +  * dst: IP-адрес назначения (сервер) 
 +  * myip: локальный IP-адрес клиентского соединения 
 +  * srcdomain: имя домена источника (клиент) 
 +  * dstdomain: имя домена назначения (сервер) 
 +  * srcdom_regex: шаблон регулярного выражения источника (клиент) 
 +  * dstdom_regex: шаблон регулярного выражения назначения (сервер) 
 +  * time: время дня и день недели 
 +  * url_regex: шаблон регулярного выражения для URL 
 +  * urlpath_regex: шаблон регулярного выражения для части URL, исключая протокол и имя хоста 
 +  * port: номер порта назначения (сервер) 
 +  * myport: номер локального порта, куда подключается клиент 
 +  * proto: тип протокола передачи (http, ftp, etc) 
 +  * method: метод HTTP-запроса (get, post, etc) 
 +  * browser: шаблон регулярного выражения, совпадающего с заголовком user-agent из запроса 
 +  * ident: строка совпадения с именем пользователя 
 +  * ident_regex: шаблон регулярного выражения имени пользователя 
 +  * src_as: номер Автономной Системы источника (клиент) 
 +  * dst_as: номер Автономной Системы назначения (сервер) 
 +  * proxy_auth: аутентификация пользователя через внешний процесс 
 +  * proxy_auth_regex: регулярное выражение аутентификации пользователя через внешний процесс 
 +  * snmp_community: строка SNMP-сообщества 
 +  * maxconn: ограничение максимального кол-ва соединений с одного клиентского IP-адреса 
 +  * req_mime_type: шаблон регулярного выражения для заголовка content-type запроса 
 +  * arp: Ethernet (MAC)-адрес 
 +
 +===== Darknet (onion) + i2p + hosts =====
 +
 +==== Обход запрета роскомнадзора ====
 +
 +nano /etc/squid/getblocklist.sh
 +<code bash>
 +#!/bin/bash
 +# git clone https://github.com/zapret-info/z-i.git
 +curl -s -X GET -L https://raw.githubusercontent.com/zapret-info/z-i/master/dump.csv > /etc/squid/blocklist.csv
 +URL_LIST=`cat /etc/squid/blocklist.csv | csvtool -t ';' col 2 - | sed -e '/^[0-9\.]*$/d' -e '/^[0-9\.a-z-]*$/!d' | \
 +sed -e 's/^.*\.\([a-z0-9\-]\{2,63\}\.[a-z0-9\-]\{2,63\}\)$/\1/' | sort | uniq 2>/dev/null`;
 +cat /dev/null > /etc/squid/eais.list 2>/dev/null;
 +for URL in $URL_LIST; do
 +        echo $URL | sed -e 's/\./\\\./g' -e 's/^/^http(s)?:\\\/\\\/([a-zA-Z0-9]+\\.)?/g' -e 's/$/.*$/g' >> /etc/squid/eais.list 2>/dev/null;
 +done;
 +/usr/sbin/squid3 -k reconfigure
 +</code>
 +
 +==== cron ====
 +
 +crontab -e
 +<code bash>
 +1 2 * * * /bin/bash /etc/squid/getblocklist.sh
 +</code>
 +==== squid.conf ====
 +
 +nano /etc/squid/squid.conf
 +<code bash>
 +acl localnet src 192.168.0.0/16
 +acl russia_block_urls url_regex "/etc/squid/blocklist.list"
 +acl i2p_urls url_regex -i .*://.*\.i2p\/.*
 +acl onion_urls url_regex -i .*://.*\.onion\/.*
 +cache_peer 127.0.0.1  parent    4444  4444  no-digest allow-miss no-query
 +cache_peer_access 127.0.0.1 allow i2p_urls
 +cache_peer 192.168.1.131 parent 8118 8118 no-digest allow-miss no-query
 +cache_peer_access 192.168.1.131 allow onion_urls
 +cache_peer_access 192.168.1.131 allow russia_block_urls
 +never_direct allow onion_urls
 +never_direct allow i2p_urls
 +never_direct allow russia_block_urls
 +never_direct deny localnet
 +always_direct deny onion_urls
 +always_direct deny i2p_urls
 +always_direct deny russia_block_urls
 +always_direct allow localnet
 +http_access allow localnet
 +hosts_file /etc/squid/hosts
 +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 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 deny !Safe_ports
 +http_access deny CONNECT !SSL_ports
 +http_access allow localhost manager
 +http_access deny manager
 +http_access allow localhost
 +http_access deny all
 +http_port 3128
 +coredump_dir /var/spool/squid
 +refresh_pattern ^ftp:           1440    20%     10080
 +refresh_pattern ^gopher:        1440    0%      1440
 +refresh_pattern -i (/cgi-bin/|\?) 0     0%      0
 +refresh_pattern .                     20%     4320
 +</code>
 +
 +===== Удаление комментариев =====
 +
 +<code bash>
 +$ cat /etc/squid/squid.conf | grep "^[^#;]"
 +</code>
 +===== Перенаправление на другой сайт =====
 +
 +<code>
 +acl redirect url_regex czx.to
 +http_access deny redirect
 +deny_info http://video.czx.to redirect
 +</code>