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

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


flip:linux:squid

Различия

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

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

Следующая версия
Предыдущая версия
flip:linux:squid [2025/03/26 20:10] – создано flipflip:linux:squid [2025/07/08 17:27] (текущий) flip
Строка 219: Строка 219:
 </code> </code>
  
-Ограничение доступа по IP (если нужно)+**Ограничение доступа по IP (если нужно)**
  
 <code> <code>
Строка 227: Строка 227:
 </code> </code>
  
-Включение HTTPS-прокси (если нужно)+**Включение HTTPS-прокси (если нужно)**
  
 <code> <code>
 https_port 3130 cert=/etc/squid/ssl_cert/server.pem key=/etc/squid/ssl_cert/server.key https_port 3130 cert=/etc/squid/ssl_cert/server.pem key=/etc/squid/ssl_cert/server.key
 +</code>
 +
 +
 +==== Прокси с блокировкой ресурсов ====
 +
 +Создадим файл ''/etc/squid/blocked_sites.acl'', куда добавим запрещённые сайты
 +
 +<code>
 +nano /etc/squid/blocked_sites.acl
 +</code>
 +
 +Пример содержимого:
 +
 +<code>
 +.facebook.com
 +.twitter.com
 +.youtube.com
 +.netflix.com
 +.instagram.com
 +.pornhub.com
 +.vk.com
 +.telegram.org
 +.tiktok.com
 +.reddit.com
 +</code>
 +
 +Каждый домен с новой строки. \\
 +Точка в начале (*.example.com) блокирует все поддомены.
 +
 +Отредактируем ''/etc/squid/squid.conf''
 +
 +<code>
 +# Базовый порт прокси
 +http_port 3128
 +
 +# Подключаем файл с запрещёнными сайтами
 +acl blocked_sites dstdomain "/etc/squid/blocked_sites.acl"
 +
 +# Запрещаем доступ к этим сайтам
 +http_access deny blocked_sites
 +
 +# Разрешаем доступ всем остальным (или только определённым сетям)
 +acl localnet src 192.168.1.0/24  # Разрешить только локальную сеть
 +http_access allow localnet
 +
 +# Запретить всё остальное (если нужно)
 +http_access deny all
 +
 +# Логирование
 +access_log /var/log/squid/access.log
 +cache_log /var/log/squid/cache.log
 +
 +# Имя прокси (можно заменить на IP или домен)
 +visible_hostname my_proxy
 +</code>
 +
 +=== Дополнительно ===
 +
 +**Блокировка по ключевым словам в URL**
 +
 +<code>
 +acl blocked_keywords url_regex -i "/etc/squid/blocked_keywords.acl"
 +http_access deny blocked_keywords
 +</code>
 +
 +''-i'' – регистронезависимый поиск.
 +
 +Файл ''/etc/squid/blocked_keywords.acl''
 +
 +<code>
 +porn
 +torrent
 +hack
 +warez
 +</code>
 +
 +**Блокировка по IP (если сайты меняют домены)**
 +
 +<code>
 +acl blocked_ips dst "/etc/squid/blocked_ips.acl"
 +http_access deny blocked_ips
 +</code>
 +
 +Файл ''/etc/squid/blocked_ips.acl''
 +
 +<code>
 +185.191.171.0/24
 +104.16.0.0/12
 +</code>
 +
 +**Разрешить доступ только к белым спискам**
 +
 +<code>
 +acl whitelist dstdomain "/etc/squid/allowed_sites.acl"
 +http_access allow whitelist
 +http_access deny all
 +</code>
 +
 +Файл ''/etc/squid/allowed_sites.acl''
 +
 +<code>
 +.wikipedia.org
 +.google.com
 +.github.com
 +</code>
 +
 +
 +===== Мониторинг Squid =====
 +
 +Шаблон для zabbix \\
 +https://www.zabbix.com/ru/integrations/squid#squid_snmp
 +Документация по SNMP \\
 +https://wiki.squid-cache.org/Features/Snmp
 +
 +Если есть файрвол, открыть доступ к порту ''3401''!
 +
 +
 +==== Настройка SNMP в Squid ====
 +
 +<code>
 +snmp_port <port_number>
 +acl <zbx_acl_name> snmp_community <community_name>
 +snmp_access allow <zbx_acl_name> <zabbix_server_ip>
 +</code>
 +
 +  * ''snmp_port <port_number>'' - Указывает порт, на котором Squid будет принимать SNMP-запросы.
 +
 +  * ''acl <zbx_acl_name> snmp_community <community_name>'' - Определяет список контроля доступа (ACL) с именем `<zbx_acl_name>`, который связывается с указанным SNMP-сообществом `<community_name>`.
 +
 +  * ''snmp_access allow <zbx_acl_name> <zabbix_server_ip>'' - Разрешает доступ к SNMP для запросов, соответствующих ACL `<zbx_acl_name>`, с указанного IP-адреса `<zabbix_server_ip>`.
 +
 +**Пример**
 +
 +<code>
 +snmp_port 3401
 +acl zabbix snmp_community public
 +snmp_access allow zabbix 172.16.10.130
 +</code>
 +
 +**Рабочий способ**
 +
 +<code>
 +snmp_incoming_address 0.0.0.0
 +snmp_outgoing_address 0.0.0.0
 +snmp_port 3401
 +acl zabbix snmp_community public
 +snmp_access allow zabbix all
 +snmp_access deny all
 +</code>
 +
 +
 +==== Макросы ====
 +
 +^ Name ^ Description ^ Default ^
 +| {$SQUID.SNMP.PORT} | snmp_port configured in squid.conf (Default: 3401) | ''3401'' |
 +| {$SQUID.HTTP.PORT} | http_port configured in squid.conf (Default: 3128) | ''3128'' |
 +| {$SQUID.SNMP.COMMUNITY} | SNMP community allowed by ACL in squid.conf | ''public'' |
 +| {$SQUID.FILE.DESC.WARN.MIN} | The threshold for minimum number of available file descriptors | ''100'' |
 +| {$SQUID.PAGE.FAULT.WARN} | The threshold for sys page faults rate in percent of received HTTP requests | ''90'' |
 +
 +
 +==== Проверка порта ====
 +
 +Локально
 +
 +<code>
 +netstat -tulpn | grep 3401
 +netstat -a | grep 3401
 +netstat -apn | grep squid
 +</code>
 +
 +С другого узла
 +
 +<code>
 +nc -zv -u <IP> 3401
 +nmap -sU -p 3401 <IP>
 +</code>
 +
 +==== Проверка SNMP ====
 +
 +<code>
 +snmpwalk -v 2c -c public -L n <IP>:3401
 +snmpwalk -v 2c -c public -L n 172.28.0.251:3401 .1.3.6.1.4.1.3495.1.1
 </code> </code>
  
  
  
flip/linux/squid.1743019812.txt.gz · Последнее изменение: 2025/03/26 20:10 — flip

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki