{"id":487812,"date":"2026-07-19T17:13:13","date_gmt":"2026-07-19T17:13:13","guid":{"rendered":"https:\/\/savepearlharbor.com\/?p=487812"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=487812","title":{"rendered":"\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0430\u044f \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f \u043f\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0435 Squid 7.5 (Squid proxy, krb+ldap auth, ssl-bump, log in JSON, delay, cache)"},"content":{"rendered":"<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u0418\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f \u043f\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0435 Squid HTTP-proxy \u0432 \u043a\u043e\u0440\u043f\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u0441\u0440\u0435\u0434\u0435.<\/p>\n<p>\u0412 \u0434\u0430\u043d\u043d\u043e\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u0440\u0435\u0448\u0430\u0435\u0442\u0441\u044f \u0437\u0430\u0434\u0430\u0447\u0430 <strong>\u043f\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0435 \u043f\u0440\u043e\u043a\u0441\u0438-\u0441\u0435\u0440\u0432\u0435\u0440\u0430 Squid \u0434\u043b\u044f \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044f \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442-\u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439<\/strong>.<\/p>\n<p>\u0427\u0442\u043e \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0432 \u0441\u0435\u0431\u044f \u0441\u0442\u0430\u0442\u044c\u044f:<\/p>\n<ol>\n<li>\n<p><a href=\"#1\" rel=\"noopener noreferrer nofollow\">\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 OpenSSL \u0438 Squid.<\/a> <\/p>\n<ul>\n<li>\n<p><a href=\"#1.1\" rel=\"noopener noreferrer nofollow\">\u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430, \u0441\u0431\u043e\u0440\u043a\u0430 \u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043f\u0430\u043a\u0435\u0442\u0430 OpenSSL.<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#1.2\" rel=\"noopener noreferrer nofollow\">\u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430, \u0441\u0431\u043e\u0440\u043a\u0430 \u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043f\u0430\u043a\u0435\u0442\u0430 Squid.<\/a><\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><a href=\"#2\" rel=\"noopener noreferrer nofollow\">\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0447\u0435\u0440\u0435\u0437 systemd.<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#3\" rel=\"noopener noreferrer nofollow\">\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 Kerberos \u0438 LDAP.<\/a> <\/p>\n<ul>\n<li>\n<p><a href=\"#3.1\" rel=\"noopener noreferrer nofollow\">\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0442\u043e\u043a\u0435\u043d\u0430 keytab &#8212; Windows AD DC.<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#3.2\" rel=\"noopener noreferrer nofollow\">\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 Kerberos \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u0441\u043e Squid.<\/a><\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><a href=\"#4\" rel=\"noopener noreferrer nofollow\">\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 SSL-Bump (MITM).<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#5\" rel=\"noopener noreferrer nofollow\">\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043b\u043e\u0433\u0430 \u0438 \u043f\u0435\u0440\u0435\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u0430 \u0441\u0431\u043e\u0440\u0449\u0438\u043a \u043b\u043e\u0433\u043e\u0432.<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#6\" rel=\"noopener noreferrer nofollow\">\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0444\u0438\u0447.<\/a> <\/p>\n<ul>\n<li>\n<p><a href=\"#6.1\" rel=\"noopener noreferrer nofollow\">\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f.<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#6.2\" rel=\"noopener noreferrer nofollow\">\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438.<\/a><\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><a href=\"#7\" rel=\"noopener noreferrer nofollow\">\u041f\u0440\u0438\u043c\u0435\u0440 \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u043f\u043e\u043b\u043d\u043e\u0433\u043e \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430.<\/a><\/p>\n<\/li>\n<\/ol>\n<blockquote>\n<p>Squid \u0431\u0443\u0434\u0435\u0442 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0435 \u0432 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0443\u044e \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e, \u0430 \u0442\u0430\u043a \u0436\u0435  \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c OpenSSL \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0439 \u0440\u044f\u0434\u043e\u043c (\u0447\u0442\u043e \u0431\u044b \u043d\u0435 \u0437\u0430\u043c\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u0441 \u0443\u0436\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u043c OpenSSL \u0438\u043b\u0438 \u043d\u0435 \u043d\u0430\u0432\u0440\u0435\u0434\u0438\u0442\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u0435 + \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044e\u044e \u0432\u0435\u0440\u0441\u0438\u044e OpenSSL).<\/p>\n<\/blockquote>\n<blockquote>\n<p><strong>\u0412\u041d\u0418\u041c\u0410\u041d\u0418\u0415<\/strong>: \u0412 \u0441\u0442\u0430\u0442\u044c\u0435 \u0447\u0430\u0441\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0431\u043b\u043e\u043a\u0438 \u043a\u043e\u0434\u0430 \u0441 \u043a\u043e\u043c\u0430\u043d\u0434\u0430\u043c\u0438. \u041f\u0435\u0440\u0435\u0434 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435\u043c \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0447\u0442\u043e \u0432\u044b \u0434\u0435\u043b\u0430\u0435\u0442\u0435 \u0438 \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438, \u0432 \u043d\u0438\u0445 \u043c\u043e\u0433\u0443\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c\u0441\u044f \u0432\u0430\u0436\u043d\u044b\u0435 \u0437\u0430\u043c\u0435\u0447\u0430\u043d\u0438\u044f.<\/p>\n<\/blockquote>\n<hr\/>\n<p><a class=\"anchor\" name=\"1\" id=\"1\"><\/a><\/p>\n<h2>1) \u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 OpenSSL \u0438 Squid.<\/h2>\n<p>\u0412 \u043f\u0435\u0440\u0432\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0441 \u043c\u043e\u0434\u0443\u043b\u044f\u043c\u0438 (\u043a\u043b\u044e\u0447\u0430\u043c\u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438) Squid \u0438 OpenSSL.<\/p>\n<blockquote>\n<p>\u041b\u0443\u0447\u0448\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0439 \u043c\u0438\u043d\u0438\u043c\u0443\u043c, \u0447\u0442\u043e \u0431\u044b \u0443\u043c\u0435\u043d\u044c\u0448\u0438\u0442\u044c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0442\u043e\u0447\u0435\u043a \u043e\u0431\u0445\u043e\u0434\u0430 \u0437\u0430\u0449\u0438\u0442\u044b (\u0414\u0430\u043d\u043d\u0430\u044f \u0441\u0442\u0430\u0442\u044c\u0441\u044f \u0441\u043a\u043e\u0440\u0435\u0435 \u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0435, \u0447\u0435\u043c \u043e \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438\u2026).<\/p>\n<\/blockquote>\n<p><a class=\"anchor\" name=\"1.1\" id=\"1.1\"><\/a><\/p>\n<h4>\u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430, \u0441\u0431\u043e\u0440\u043a\u0430 \u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043f\u0430\u043a\u0435\u0442\u0430 OpenSSL.<\/h4>\n<p>\u041e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439: <a href=\"https:\/\/github.com\/openssl\/openssl\" rel=\"noopener noreferrer nofollow\">https:\/\/github.com\/openssl\/openssl<\/a>.<\/p>\n<pre><code class=\"bash\">wget https:\/\/github.com\/openssl\/openssl\/releases\/download\/openssl-3.6.1\/openssl-3.6.1.tar.gztar -xzf openssl-3.6.1.tar.gzcd openssl-3.6.1# apt\u00a0install\u00a0build-essential\u00a0pkg-config # \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430 C.\/config shared --prefix=\/opt\/squid\/openssl \\--openssldir=\/opt\/squid\/openssl \\-Wl,-rpath=\/opt\/squid\/openssl\/lib64# -Wl,... \u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0443: \u00ab\u043f\u0435\u0440\u0435\u0434\u0430\u0439 \u0432\u0441\u0451, \u0447\u0442\u043e \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u043f\u044f\u0442\u043e\u0439, \u043b\u0438\u043d\u043a\u043e\u0432\u0449\u0438\u043a\u0443 # -rpath=\/opt\/squid\/openssl\/lib \u043e\u043f\u0446\u0438\u044f \u0434\u043b\u044f \u043b\u0438\u043d\u043a\u043e\u0432\u0449\u0438\u043a\u0430: \u00ab\u0432\u0441\u0442\u0440\u043e\u0439 \u0432 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0439 \u0444\u0430\u0439\u043b \u043f\u0443\u0442\u044c \u043a \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u043c\u00bb make make installldd \/opt\/squid\/openssl\/bin\/openssl # \u041f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u0438 \u0434\u043e\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043f\u0440\u0438 \u0438\u0445 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0438<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:87px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p><a class=\"anchor\" name=\"1.2\" id=\"1.2\"><\/a><\/p>\n<h4>\u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430, \u0441\u0431\u043e\u0440\u043a\u0430 \u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043f\u0430\u043a\u0435\u0442\u0430 Squid.<\/h4>\n<p>\u041e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439: <a href=\"https:\/\/github.com\/squid-cache\/squid\" rel=\"noopener noreferrer nofollow\">https:\/\/github.com\/squid-cache\/squid<\/a><\/p>\n<pre><code class=\"bash\"># \u041d\u0443\u0436\u043d\u044b \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u0434\u043b\u044f \u043f\u0430\u043a\u0435\u0442\u0430apt install \\libtirpc-dev \\libldap2-dev \\libsasl2-dev \\pkg-config \\libpam0g-dev \\libkrb5-dev \\libtdb-dev \\libcap-dev \\libnetfilter-conntrack-dev \\libcppunit-dev \\heimdal-clients# GitHub - https:\/\/github.com\/squid-cache\/squid# \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0432\u043e\u0430\u0442\u044c \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044e\u044e \u0432\u0441\u0435\u0440\u0438\u044e, \u0430 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u044c \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 squid \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0430 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u043c \u0444\u0430\u0439\u043b\u0435 \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438: https:\/\/www.squid-cache.org\/Versions\/v7\/cfgman\/index_all.html#toc_accept_filterwget https:\/\/github.com\/squid-cache\/squid\/releases\/download\/SQUID_7_5\/squid-7.5.tar.gztar -zxf squid-7.5.tar.gzcd squid-7.5# \u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u043e\u0439\u0442\u0438 \u0443\u0441\u043f\u0435\u0448\u043d\u043e, \u043d\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b \u0431\u0443\u0434\u0435\u0442 \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0438\u0437 \u0437\u0430 \u043d\u0435\u0445\u0432\u0430\u0442\u043a\u0430 \u043a\u0430\u043a\u043e\u0439 \u0442\u043e \u0438\u0437 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a# \u0412\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0438\u0441\u043b\u0435\u0434\u0443\u0439\u0442\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 \u0438 \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u044f# \u041a\u041e\u041c\u041c\u0415\u041d\u0422\u0410\u0420\u0418\u0418 \u0423\u0414\u0410\u041b\u0418\u0422\u042c \u043f\u0435\u0440\u0435\u0434 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435\u043c.\/configure \\  --prefix=\/opt\/squid \\                          # \u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u043a\u0430\u0442\u0430\u043b\u043e\u0433 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 Squid  --sysconfdir=\/opt\/squid\/etc \\                  # \u041a\u0430\u0442\u0430\u043b\u043e\u0433 \u0434\u043b\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 (squid.conf \u0438 \u0434\u0440.)  --localstatedir=\/opt\/squid\/var \\               # \u0411\u0430\u0437\u043e\u0432\u044b\u0439 \u043a\u0430\u0442\u0430\u043b\u043e\u0433 \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 (\u043b\u043e\u0433\u0438, \u043a\u044d\u0448, PID \u0438 \u0442.\u0434.)  --libexecdir=\/opt\/squid\/libexec \\              # \u041a\u0430\u0442\u0430\u043b\u043e\u0433 \u0434\u043b\u044f \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, ssl_crtd)  --with-swapdir=\/opt\/squid\/var\/cache\/squid \\    # \u0414\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u043a\u044d\u0448\u0430 \u043d\u0430 \u0434\u0438\u0441\u043a\u0435  --with-logdir=\/opt\/squid\/var\/log\/squid \\       # \u0414\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u0434\u043b\u044f \u043b\u043e\u0433-\u0444\u0430\u0439\u043b\u043e\u0432  --with-pidfile=\/opt\/squid\/var\/run\/squid.pid \\  # \u041f\u0443\u0442\u044c \u043a \u0444\u0430\u0439\u043b\u0443 PID \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 Squid  --with-default-user=proxy \\                    # \u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c, \u043e\u0442 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c\u0441\u044f Squid  --enable-auth-negotiate=kerberos \\             # \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 Negotiate\/Kerberos  --enable-auth-basic=LDAP,PAM \\                 # \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 Basic-\u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0447\u0435\u0440\u0435\u0437 LDAP \u0438 PAM  --enable-external-acl-helpers=time_quota,unix_group,SQL_session,file_userip,kerberos_ldap_group,LDAP_group \\  # \u0412\u043d\u0435\u0448\u043d\u0438\u0435 ACL-\u0445\u0435\u043b\u043f\u0435\u0440\u044b \u0434\u043b\u044f \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430  --enable-icap-client \\                         # \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 ICAP-\u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430 (\u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u0441 \u0430\u043d\u0442\u0438\u0432\u0438\u0440\u0443\u0441\u0430\u043c\u0438 \u0438 DLP)  --enable-delay-pools \\                         # \u0412\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043d\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u0438 (traffic shaping)  --enable-cache-digests \\                       # \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 Cache Digests \u0434\u043b\u044f \u043a\u043e\u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f  --enable-follow-x-forwarded-for \\              # \u0423\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a X-Forwarded-For \u043f\u0440\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0438 IP \u043a\u043b\u0438\u0435\u043d\u0442\u0430  --enable-eui \\                                 # \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f MAC-\u0430\u0434\u0440\u0435\u0441\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0430 (EUI-48\/EUI-64)  --enable-esi \\                                 # \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 Edge Side Includes (\u0434\u043b\u044f \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u043e\u0432)  --enable-icmp \\                                # \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c ICMP \u0434\u043b\u044f \u043e\u0446\u0435\u043d\u043a\u0438 \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0438 (pinger)  --enable-wccp \\                                # \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 Web Cache Communication Protocol (Cisco \u0438 \u0434\u0440.)  --enable-linux-netfilter \\                     # \u0418\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u0441 Netfilter (\u0434\u043b\u044f TPROXY \u0438 \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f)  --enable-storeio=rock \\                        # \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c storeio \"rock\" \u2014 \u0432\u044b\u0441\u043e\u043a\u043e\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043a\u044d\u0448-\u0434\u0432\u0438\u0436\u043e\u043a \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 SQLite  --enable-removal-policies=heap,lru \\           # \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0432\u0441\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0435 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0438\u0437 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, heap, LRU\u2011\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u043d\u044b\u0435 \u0438 \u0434\u0440.)  --disable-arch-native \\                        # \u041e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u043e\u0434 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u0443\u044e \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0443 CPU (\u0434\u043b\u044f \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0438\u043c\u043e\u0441\u0442\u0438)  --disable-translation \\                        # \u041e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043b\u043e\u043a\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 (\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438\u0439)# \u0434\u043b\u044f ssl-dump:  --enable-ssl \\ # \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 ssl \u0440\u0435\u0436\u0438\u043c\u0430  --enable-ssl-crtd \\                            # \u0412\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044e \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0432 \u0434\u043b\u044f HTTPS-\u0442\u0440\u0430\u0444\u0438\u043a\u0430 (SSL Bump) # \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0435\u0439 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0432 \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441, \u0430 \u043d\u0435 \u0441\u0430\u043c \u043f\u0440\u043e\u043a\u0441\u0438 \u0441\u0435\u0440\u0432\u0435\u0440.  --with-openssl=\/opt\/squid\/openssl             # \u0423\u043a\u0430\u0437\u0430\u0442\u044c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u0443\u044e \u0441\u0431\u043e\u0440\u043a\u0443 OpenSSL (\u0432\u0430\u0436\u043d\u043e \u0434\u043b\u044f SSL Bump)make allmake install# \u041f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0437\u0430\u0432\u0438\u0432\u0438\u043c\u043e\u0441\u0442\u0438, \u0441\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e \u0447\u0435\u0433\u043e \u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u043d\u0435 \u0445\u0432\u0430\u0442\u0430\u0442\u044cldd \/opt\/squid\/sbin\/squid# \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c\u00a0\u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u0443\u044e \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u044c \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b\u00a0Squid\u00a0\u0438\u00a0ADsudo apt-get install libsasl2-modules-gssapi-mit <\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<hr\/>\n<p><a class=\"anchor\" name=\"2\" id=\"2\"><\/a><\/p>\n<h2>2) \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0447\u0435\u0440\u0435\u0437 systemd.<\/h2>\n<p>\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0444\u0430\u0439\u043b \u0441\u0435\u0440\u0432\u0438\u0441\u0430 <code>\/etc\/systemd\/system\/squid.service<\/code> c \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u044b\u043c:<\/p>\n<pre><code class=\"bash\">[Unit]Description=Squid Web Proxy Server (custom build)Documentation=man:squid(8)After=network.target network-online.target nss-lookup.target[Service]# \u041f\u0443\u0442\u044c \u043a \u0444\u0430\u0439\u043b\u0443 keytab \u043c\u043e\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0437\u0434\u0435\u0441\u044c \u0438\u043b\u0438 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0432 squid.conf &gt; \"auth_param negotiate program...-k &lt;FullPath&gt;\", \u0432 \u043c\u043e\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0443\u043a\u0430\u0436\u0443 \u0442\u0430\u043c# Environment=KRB5_KTNAME=\/opt\/squid\/etc\/squid.keytabType=forkingPIDFile=\/opt\/squid\/var\/run\/squid.pidExecStartPre=\/opt\/squid\/sbin\/squid -z                     # \u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043a\u044d\u0448\u0430 SquidExecStart=\/opt\/squid\/sbin\/squidExecReload=\/opt\/squid\/sbin\/squid -k reconfigureExecStop=\/opt\/squid\/sbin\/squid -k shutdownUser=root                                                                  # Squid \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u043e\u0442 root, \u0434\u043b\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f socket, \u043f\u043e\u0442\u043e\u043c \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442 \u0432 \u0440\u0435\u0436\u0438\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0433\u043e \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438.Group=rootLimitNOFILE=65536# Restart=on-failure# RestartSec=10[Install]WantedBy=multi-user.target<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<hr\/>\n<p><a class=\"anchor\" name=\"3\" id=\"3\"><\/a><\/p>\n<h2>3) \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 Kerberos \u0438 LDAP.<\/h2>\n<p>\u041f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f: &#8212; \u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c Active Directory (AD) \u0434\u043b\u044f Kerberos \u0438 LDAP, \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u0432 \u043e\u0441\u043d\u0430\u0441\u0442\u043a\u0435 \u201c\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u0438 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u044b\u201d. &#8212; <a href=\"#3.1\" rel=\"noopener noreferrer nofollow\">\u0422\u043e\u043a\u0435\u043d keytab \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043d\u0430 DC AD, \u0434\u043b\u044f Kerberos \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438.<\/a> &#8212; \u041d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0443\u044e \u0447\u0430\u0441\u0442\u044c Kerberos \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u0441\u043e Squid. &#8212; \u041d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e Squid \u043d\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0445\u0435\u043b\u043f\u0435\u0440\u043e\u0432 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 Kerberos \u0438 LDAP. &#8212; \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 Kerberos. &#8212; \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0433\u0440\u0443\u043f\u043f\u044b \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 LDAP.<\/p>\n<p><a class=\"anchor\" name=\"3.1\" id=\"3.1\"><\/a><\/p>\n<h3>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0442\u043e\u043a\u0435\u043d\u0430 keytab &#8212; Windows AD DC<\/h3>\n<details class=\"spoiler\">\n<summary>Keytab-\u0444\u0430\u0439\u043b &#8212; \u0447\u0442\u043e \u044d\u0442\u043e \u0438 \u0437\u0430\u0447\u0435\u043c<\/summary>\n<div class=\"spoiler__content\">\n<p>Keytab-\u0444\u0430\u0439\u043b \u043d\u0443\u0436\u0435\u043d \u0422\u041e\u041b\u042c\u041a\u041e \u0434\u043b\u044f \u0441\u0430\u043c\u043e\u0433\u043e Squid-\u0441\u0435\u0440\u0432\u0435\u0440\u0430. \u041e\u043d \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c\u0438, \u0430 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 Squid \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u0442\u0438\u043a\u0435\u0442\u044b \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 (\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0430)<\/p>\n<p>Keytab \u2014 \u044d\u0442\u043e \u0444\u0430\u0439\u043b \u0441 \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438 \u043a\u043b\u044e\u0447\u0430\u043c\u0438 \u0441\u043b\u0443\u0436\u0431\u044b, \u043f\u0440\u0438\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0439 \u043a SPN (Service Principal Name) \u0432\u0438\u0434\u0430: HTTP\/servername.domain.ru@DOMAIN.RU \u042d\u0442\u043e\u0442 SPN \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d \u0432 Active Directory \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u0443\u0447\u0451\u0442\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, UserAD_Squid \u0438\u043b\u0438 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043d\u043e\u0439 \u0443\u0447\u0451\u0442\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438)<\/p>\n<p>\u041b\u043e\u0433\u0438\u043a\u0430 \u0440\u0430\u0431\u043e\u0442\u044b: \u0428\u0430\u0433 1: \u041a\u043b\u0438\u0435\u043d\u0442 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u0442\u0438\u043a\u0435\u0442 &#8212; \u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c <code>ivanov<\/code> \u043d\u0430 Windows-\u043c\u0430\u0448\u0438\u043d\u0435 \u0432 \u0434\u043e\u043c\u0435\u043d\u0435 \u0437\u0430\u0445\u043e\u0434\u0438\u0442 \u043d\u0430 \u0441\u0430\u0439\u0442 \u0447\u0435\u0440\u0435\u0437 \u043f\u0440\u043e\u043a\u0441\u0438. &#8212; \u0411\u0440\u0430\u0443\u0437\u0435\u0440 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u0442 \u0443 DC (\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 \u0434\u043e\u043c\u0435\u043d\u0430) \u0442\u0438\u043a\u0435\u0442 \u0434\u043b\u044f \u0441\u043b\u0443\u0436\u0431\u044b HTTP\/servername.domain.ru \u0428\u0430\u0433 2: Squid \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u0442\u0438\u043a\u0435\u0442 &#8212; Squid \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u0442\u0438\u043a\u0435\u0442 \u043e\u0442 \u043a\u043b\u0438\u0435\u043d\u0442\u0430 &#8212; \u0427\u0442\u043e\u0431\u044b \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u0438 \u0443\u0437\u043d\u0430\u0442\u044c, \u043a\u0442\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c, Squid \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0441\u0432\u043e\u0439 keytab &#8212; \u0415\u0441\u043b\u0438 \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u0430 \u0443\u0441\u043f\u0435\u0448\u043d\u0430, \u0442\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0451\u043d \u043a\u0430\u043a <code>ivanov@DOMAIN.RU<\/code><\/p>\n<p>Keytab \u2014 \u044d\u0442\u043e \u201c\u043f\u0440\u0438\u0432\u0430\u0442\u043d\u044b\u0439 \u043a\u043b\u044e\u0447\u201d \u0434\u043b\u044f \u0441\u043b\u0443\u0436\u0431\u044b HTTP\/servername.domain.ru, \u0411\u0435\u0437 \u043d\u0435\u0433\u043e Squid \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u043f\u043e\u0434\u043b\u0438\u043d\u043d\u043e\u0441\u0442\u044c \u0442\u0438\u043a\u0435\u0442\u0430<\/p>\n<ol>\n<li>\n<p>Keytab \u043d\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043f\u0430\u0440\u043e\u043b\u0435\u0439 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439, \u043e\u043d \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043a\u043b\u044e\u0447\u0438 \u0434\u043b\u044f \u043e\u0434\u043d\u043e\u0439 \u0441\u043b\u0443\u0436\u0431\u044b HTTP\/servername.domain.ru<\/p>\n<\/li>\n<li>\n<p>\u041a\u0430\u0436\u0434\u044b\u0439 \u043a\u043b\u0438\u0435\u043d\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0441\u0432\u043e\u0439 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0442\u0438\u043a\u0435\u0442 Keytab. Squid \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u043b\u044e\u0431\u043e\u0439 \u0442\u0438\u043a\u0435\u0442, \u0432\u044b\u0434\u0430\u043d\u043d\u044b\u0439 \u0434\u043b\u044f HTTP\/servername.domain.ru, \u043d\u043e \u043d\u0435 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442 \u0442\u0438\u043a\u0435\u0442\u044b \u0434\u043b\u044f \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432.<\/p>\n<\/li>\n<li>\n<p>\u0415\u0441\u043b\u0438 \u0443\u043a\u0440\u0430\u0441\u0442\u044c keytab &#8212; \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0434\u0434\u0435\u043b\u0430\u0442\u044c \u043f\u0440\u043e\u043a\u0441\u0438, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0435\u0433\u043e \u043d\u0443\u0436\u043d\u043e \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0441 \u043f\u0440\u0430\u0432\u0430\u043c\u0438 <code>600<\/code> \u0438 \u0432\u043b\u0430\u0434\u0435\u043b\u044c\u0446\u0435\u043c \u0441\u043b\u0443\u0436\u0431\u044b Squid (\u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 proxy)<\/p>\n<\/li>\n<\/ol>\n<\/div>\n<\/details>\n<p><strong>\u0420\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044f \u043d\u0430 DC AD SPN \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0430 (\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 keytab):<\/strong><\/p>\n<pre><code class=\"bash\"># \u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0443\u0447\u0435\u0442\u043a\u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0432 AD# \u0420\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u0443\u0435\u043c SPN \u0434\u043b\u044f \u044d\u0442\u043e\u0439 \u0443\u0447\u0451\u0442\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 AD# setspn \/S &lt;\u041f\u0440\u0438\u043d\u0446\u0435\u043f\u0430\u043b&gt; &lt;sAMAccountName \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f&gt;setspn \/S HTTP\/servername.domain.ru ADUserSquid# \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043csetspn \/L squid# \u0413\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c keytabktpass \/princ HTTP\/servername.domain.ru@DOMAIN.RU `\/mapuser ADUserSquid@DOMAIN.RU `\/crypto ALL ` # \u0414\u043b\u044f \u043f\u0440\u043e\u0441\u0442\u043e\u0442\u044b \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0432\u0441\u0435 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0438 \u0432 \u0444\u0430\u0439\u043b\/ptype KRB5_NT_PRINCIPAL `\/pass password_ADUserSquid `\/out C:\\squid.keytab# \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043csetspn \/L squid### \u0415\u0441\u043b\u0438 \u0432 keytab \u043f\u043e\u043c\u0435\u0449\u0430\u043b\u0438 \u0442\u043e\u043b\u044c\u043a\u0443\u043e \u043e\u0434\u043d\u0443 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0443, \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0432 1 \u0444\u0430\u0439\u043b keytab### AES128 \u2014 \u0414\u041e\u0411\u0410\u0412\u041b\u042f\u0415\u041c \u043a \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u043c\u0443 \u0444\u0430\u0439\u043b\u0443# ktpass \/princ HTTP\/servername.domain.ru@DOMAIN.RU `#   \/mapuser ADUserSquid@DOMAIN.RU `#   \/crypto AES128-SHA1 `#   \/ptype KRB5_NT_PRINCIPAL `#   \/pass password_ADUserSquid `#   \/in C:\\squid.keytab `#   \/out C:\\squid.keytab# \u0415\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u043e \u0443\u0434\u0430\u043b\u0438\u0442\u044c SPN# setspn \/D HTTP\/servername.domain.ru ADUserSquid# \u041a\u043e\u043f\u0438\u0440\u0443\u0435\u043c C:\\squid.keytab \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440 squid# \u0417\u0430\u0434\u0430\u0434\u0438\u043c \u0444\u0430\u0439\u043b\u0443 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043f\u0440\u0430\u0432\u0430:chown proxy:proxy \/opt\/squid\/etc\/squid.keytabchmod 600 \/opt\/squid\/etc\/squid.keytab# \u0415\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c, \u0447\u0442\u043e keytab \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043d\u0443\u0436\u043d\u044b\u0439 SPN (linux)klist -kte squid.keytab# Keytab name: FILE:squid.keytab# KVNO Timestamp           Principal# ---- ------------------- ------------------------------------------------------#   11 01\/01\/1970 03:00:00 HTTP\/servername.domain.ru@DOMAIN.RU<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<blockquote>\n<p>\u0414\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0422\u041e\u041b\u042c\u041a\u041e \u041e\u0414\u0418\u041d \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c, \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0439 \u043e\u0434\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u044c\u044e SPN (HTTP\/&lt;\u0438\u043c\u044f \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0441 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u043c Squid \u0432 \u043d\u0438\u0436\u043d\u0435\u043c \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0435&gt;@&lt;realm Active Directory \u0432 \u0432\u0435\u0440\u0445\u043d\u0435\u043c \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0435&gt;) \u0415\u0441\u043b\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437\u043d\u044b\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0445 \u0441 \u0437\u0430\u043f\u0438\u0441\u044c\u044e SPN, \u0442\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043f\u043e\u0434\u043b\u0438\u043d\u043d\u043e\u0441\u0442\u0438 Kerberos \u0431\u0443\u0434\u0435\u0442 \u0412\u0421\u0415\u0413\u0414\u0410 \u041d\u0415\u0423\u0414\u0410\u0427\u041d\u041e\u0419<\/p>\n<\/blockquote>\n<p><a class=\"anchor\" name=\"3.2\" id=\"3.2\"><\/a><\/p>\n<h4>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 Kerberos \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u0441\u043e Squid.<\/h4>\n<p>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430:<\/p>\n<pre><code class=\"bash\">### \u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430### \u0412\u042b\u041f\u041e\u041b\u041d\u042f\u0419\u0422\u0415 \u041e\u0411\u0414\u0423\u041c\u0410\u041d\u041d\u041e!!!# \u041e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0438 \u0443\u0434\u0430\u043b\u0438\u0442\u044c winbind, samba, \u0435\u0441\u043b\u0438 \u0431\u044b\u043b \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d \u0434\u043e \u044d\u0442\u043e\u0433\u043e squid \u0441 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0435\u0439 \u0432 AD \u0447\u0435\u0440\u0435\u0437 NTLM#sudo systemctl stop winbind smbd nmbd#sudo apt purge winbind samba samba-common smbclient -y#sudo apt autoremove -y# \u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0441\u0442\u0430\u0440\u044b\u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0438 (\u0435\u0441\u043b\u0438 \u0435\u0441\u0442\u044c)#sudo rm -f \/etc\/samba\/smb.conf#sudo rm -f \/etc\/krb5.conf# \u0421\u0442\u0430\u0432\u0438\u043c \u043d\u0443\u0436\u043d\u044b\u0435 libsudo apt install -y \\    krb5-user \\    # \u0435\u0441\u043b\u0438 \u043d\u0435 \u0441\u0442\u0430\u043b\u043e \u0442\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0435\u0441\u0442\u044c \u043b\u0438 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u044c libkrb5-3 - \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0432\u0435\u0440\u0441\u0438\u044f \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u0442\u0430\u0436\u0435 \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u0430 \u043f\u0440\u043e\u0441\u0442\u043e \"\u043f\u0430\u0442\u0447\u0435\u043d\u043d\u0430\u044f \u043e\u0441\u044c\u044e OS\"    libkrb5-dev \\    libldap2-dev \\    libsasl2-dev \\    ldap-utils<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0421\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0444\u0430\u0439\u043b\u0430 <code>\/etc\/krb5.conf<\/code><\/p>\n<pre><code class=\"bash\">[libdefaults]default_realm = DOMAIN.RU          # \u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0434\u043e\u043c\u0435\u043d ADdns_lookup_realm = false                  # \u041d\u0435 \u0438\u0441\u043a\u0430\u0442\u044c realm \u0447\u0435\u0440\u0435\u0437 DNSdns_lookup_kdc = true                     # \u0418\u0441\u043a\u0430\u0442\u044c \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u044b \u0447\u0435\u0440\u0435\u0437 DNS SRV-\u0437\u0430\u043f\u0438\u0441\u0438ticket_lifetime = 24h                     # \u0412\u0440\u0435\u043c\u044f \u0436\u0438\u0437\u043d\u0438 \u0431\u0438\u043b\u0435\u0442\u0430renew_lifetime = 7d                       # \u0412\u0440\u0435\u043c\u044f \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0431\u0438\u043b\u0435\u0442\u0430forwardable = true                        # \u0420\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c \u0434\u0435\u043b\u0435\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0431\u0438\u043b\u0435\u0442\u0430rdns = false                              # \u041d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043e\u0431\u0440\u0430\u0442\u043d\u044b\u0439 DNS (\u0443\u043b\u0443\u0447\u0448\u0430\u0435\u0442 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c)# \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u0434\u043b\u044f \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044f \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0438 # (\u0437\u0430\u043a\u043e\u043c\u0435\u043d\u0442\u0438\u0440\u0443\u0439\u0442\u0435 default_tgs_enctypes, default_tkt_enctypes, permitted_enctypes, \u0447\u0442\u043e \u0431\u044b \u043d\u0435 \u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u043b\u0438 allow_weak_crypto)# allow_weak_crypto = true# \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0439 AES# - Default Ticket Granting Service encryption types. \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0441\u043f\u0438\u0441\u043e\u043a \u0448\u0438\u0444\u0440\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043a\u043b\u0438\u0435\u043d\u0442 \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0442\u044c \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e, \u043a\u043e\u0433\u0434\u0430 \u043e\u0431\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u043a \u0441\u0435\u0440\u0432\u0438\u0441\u0443 (TGS) \u0437\u0430 \u0431\u0438\u043b\u0435\u0442\u043e\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0439 \u0441\u043b\u0443\u0436\u0431\u0435 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043a HTTP-\u0441\u0435\u0440\u0432\u0438\u0441\u0443 Squid).# \u041a\u043e\u0433\u0434\u0430 \u0432\u0430\u0448 \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u0438\u043b\u0438 \u0443\u0442\u0438\u043b\u0438\u0442\u0430 kinit \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u0442 \u0431\u0438\u043b\u0435\u0442 \u0434\u043b\u044f HTTP\/servername...`, \u043e\u043d\u0430 \u0441\u043a\u0430\u0436\u0435\u0442 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0443 \u0434\u043e\u043c\u0435\u043d\u0430: \u00ab\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0432\u044b\u0434\u0430\u0439 \u0431\u0438\u043b\u0435\u0442, \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0435\u0440\u0435\u0437 `aes256-cts-hmac-sha1-96`\u00bb. \u041e\u043d\u0430 \u0434\u0430\u0436\u0435 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u0442\u044c \u0434\u0440\u0443\u0433\u0438\u0435 \u0442\u0438\u043f\u044b (AES128, RC4, DES).default_tgs_enctypes = aes256-cts-hmac-sha1-96  # aes128-cts-hmac-sha1-96# Default Ticket (TGT) encryption types. \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0441\u043f\u0438\u0441\u043e\u043a \u0448\u0438\u0444\u0440\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043a\u043b\u0438\u0435\u043d\u0442 \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0442\u044c \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043f\u0440\u0438 \u043f\u0435\u0440\u0432\u043e\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0439 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f TGT (Ticket Granting Ticket) \u2014 \u0433\u043b\u0430\u0432\u043d\u043e\u0433\u043e \u0431\u0438\u043b\u0435\u0442\u0430 \u0441\u0435\u0441\u0441\u0438\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f.# \u041f\u0440\u0438 \u0432\u0445\u043e\u0434\u0435 \u0432 \u0434\u043e\u043c\u0435\u043d \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u043f\u043e\u043f\u0440\u043e\u0441\u0438\u0442 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0432\u044b\u0434\u0430\u0442\u044c \u0433\u043b\u0430\u0432\u043d\u044b\u0439 \u0431\u0438\u043b\u0435\u0442 (TGT), \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0435\u0440\u0435\u0437 `aes256`.default_tkt_enctypes = aes256-cts-hmac-sha1-96  # aes128-cts-hmac-sha1-96# Permitted encryption types. \u041e\u043d \u0437\u0430\u0434\u0430\u0435\u0442 \u00ab\u0431\u0435\u043b\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a\u00bb \u0448\u0438\u0444\u0440\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u043e\u043e\u0431\u0449\u0435.permitted_enctypes = aes256-cts-hmac-sha1-96    # aes128-cts-hmac-sha1-96 rc4-hmac[realms]DOMAIN.RU = {kdc = DC1.domain.ru# \u041a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0434\u043e\u043c\u0435\u043dkdc = DC2.domain.ruadmin_server = DC1.domain.ru# \u0421\u0435\u0440\u0432\u0435\u0440 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044fdefault_domain = domain.ru}[domain_realm].domain.ru = DOMAIN.RU# \u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0434\u043e\u043c\u0435\u043d\u0430domain.ru = DOMAIN.RU<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<pre><code class=\"bash\"># \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c keytab# \u041f\u0440\u043e\u0431\u0443\u0435\u043c \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0431\u0438\u043b\u0435\u0442kinit -V -k -t \/opt\/squid\/etc\/squid.keytab HTTP\/servername.domain.ru@DOMAIN.RU# \u0421\u043c\u043e\u0442\u0440\u0438\u043c \u0431\u0438\u043b\u0435\u0442klist# -----------------  \u0415\u0441\u043b\u0438 \u043d\u0435 \u043f\u0440\u043e\u0448\u043b\u043e### \u041f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0443. \u043c\u043e\u0436\u0435\u0442 AES \u043d\u0435 \u0442\u0430 # \u043e\u0447\u0438\u0441\u0442\u0438\u0442\u0435 \u043a\u044d\u0448kdestroy -A# -----------------<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<details class=\"spoiler\">\n<summary>\u041f\u0440\u0438\u043c\u0435\u0440 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 Kerberos \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0435 squid.conf:<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"bash\">visible_hostname servername.DOMAIN.RUhttpd_suppress_version_string oncache_effective_user proxyhttp_port 3128debug_options ALL,1 33,2 28,2 50,2 # \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u044b\u0439 \u043b\u043e\u0432 \u0434\u043b\u044f debugaccess_log stdio:\/opt\/squid\/var\/log\/squid\/access.logcache_log stdio:\/opt\/squid\/var\/log\/squid\/cache.log# \u0410\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f Kerberosauth_param negotiate program \/opt\/squid\/libexec\/negotiate_kerberos_auth     -d \/    -k \/opt\/squid\/etc\/squid.keytab \/    -s HTTP\/servername.domain.ru@DOMAIN.RUauth_param negotiate children 20auth_param negotiate keep_alive on# \u0414\u043e\u0441\u0442\u0443\u043f \u0432\u0441\u0435\u043c \u043f\u0440\u043e\u0448\u0435\u0434\u0448\u0438\u043c \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044eacl auth proxy_auth REQUIREDhttp_access allow auth<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<\/div>\n<\/details>\n<details class=\"spoiler\">\n<summary>\u041f\u0440\u0438\u043c\u0435\u0440 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0433\u0440\u0443\u043f\u043f\u044b \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 LDAP \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0435 squid.conf:<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"bash\">visible_hostname servername.DOMAIN.RUhttpd_suppress_version_string oncache_effective_user proxyhttp_port 3128access_log stdio:\/opt\/squid\/var\/log\/squid\/access.logcache_log stdio:\/opt\/squid\/var\/log\/squid\/cache.logauth_param negotiate program \/opt\/squid\/libexec\/negotiate_kerberos_auth \\    -d \\    -k \/opt\/squid\/etc\/squid.keytab \\    -s HTTP\/servername.domain.ru@DOMAIN.RU############################################################################# \u0410\u0423\u0422\u0415\u041d\u0422\u0418\u0424\u0418\u041a\u0410\u0426\u0418\u042f LDAP. \u041f\u043e\u0438\u0441\u043a \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0432 \u0433\u0440\u0443\u043f\u043f\u0435 ADexternal_acl_type ldap_Squid_ADGroup_InternetAccess \\ttl=300 negative_ttl=60 \\%LOGIN \/opt\/squid\/libexec\/ext_kerberos_ldap_group_acl \\    -g ADGroup_InternetAccess \\    -D DOMAIN.RU \\    -u ADUserSquid@DOMAIN.RU \\-p password_ADUserSquid \\  # \u0438\u043d\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u043f\u0430\u0440\u043e\u043b\u044f \u043d\u0435 \u043f\u0440\u043e\u0439\u0434\u0435\u0442, \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u044f\u0432\u043d\u043e\u043c \u0432\u0438\u0434\u0435-l ldap:\/\/DOMAIN.RU# \u0414\u043e\u043b\u0436\u043d\u043e \u0438\u0434\u0442\u0438 \u043f\u043e\u0441\u043b\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 external_acl_typeacl politics_Squid_ADGroup_InternetAccess_From_AD external ldap_Squid_ADGroup_InternetAccessacl politics_authenticated proxy_auth REQUIRED# \u0417\u0430\u043f\u0440\u0435\u0442 \u0434\u043b\u044f \u043d\u0435 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0445http_access deny !politics_authenticated# \u0414\u043e\u0441\u0442\u0443\u043f \u0434\u043b\u044f \u0433\u0440\u0443\u043f\u043f AD - ADGroup_InternetAccesshttp_access allow politics_Squid_ADGroup_InternetAccess_From_AD# \u0417\u0430\u043f\u0440\u0435\u0442\u0438\u0442\u044c \u0432\u0441\u0435 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0435http_access deny all<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<\/div>\n<\/details>\n<details class=\"spoiler\">\n<summary>\u0415\u0441\u043b\u0438 \u043f\u043e\u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043e\u0448\u0438\u0431\u043a\u0438, \u0442\u043e \u0434\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0445\u0435\u043b\u043f\u0435\u0440\u043e\u0432 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u043e:<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"bash\"># \u041d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435 Squid### \u0425\u0435\u043b\u043f\u0435\u0440 ext_kerberos_ldap_group_acl echo \"ADUserSquid@DOMAIN.RU ADGroup_InternetAccess\" | \\sudo -u proxy \/opt\/squid\/libexec\/ext_kerberos_ldap_group_acl \\    -n \\    -g ADGroup_InternetAccess \\    -D DOMAIN.RU \\    -u ADUserSquid@DOMAIN.RU\\    -p \"$(cat \/opt\/squid\/etc\/ldap.pass)\" \\  # \u0438\u043b\u0438 \u0441\u0440\u0430\u0437\u0443 password_ADUserSquid    # -p password_ADUserSquid \\    -l ldap:\/\/dc1.DOMAIN.RU # \u041c\u043e\u0436\u0435\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0439 DC    ###################### \u0425\u0435\u043b\u043f\u0435\u0440 negotiate_kerberos_auth sudo -u proxy \/opt\/squid\/libexec\/negotiate_kerberos_auth \\-k \/opt\/squid\/etc\/squid.keytab \\-s HTTP\/servername.domain.ru@DOMAIN.RU# \u0415\u0441\u043b\u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u043e\u0436\u0438\u0434\u0430\u0435\u0442 (\u0437\u0430\u0432\u0438\u0441\u043b\u043e) - \u0442\u043e \u0432\u0441\u0435 OK, \u043f\u043e \u043a\u0440\u0430\u0439\u043d\u0435\u0439 \u043c\u0435\u0440\u0435 \u043d\u0430 \u0443\u0440\u043e\u0432\u043a\u0435 keytab \u0438 \u043f\u0440\u0438\u043d\u0446\u0435\u043f\u0430\u043b\u0430<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u043f\u043e\u0438\u0441\u043a\u0430\u0442\u044c \u0437\u0434\u0435\u0441\u044c: <a href=\"https:\/\/habr.com\/ru\/articles\/1016422\/\" rel=\"noopener noreferrer nofollow\">\u0418\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0447\u0430\u0441\u0442\u044b\u0445 \u043e\u0448\u0438\u0431\u043e\u043a Squid \u043f\u0440\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0435 Kerberos MS AD DC<\/a><\/p>\n<\/div>\n<\/details>\n<hr\/>\n<p><a class=\"anchor\" name=\"4\" id=\"4\"><\/a><\/p>\n<h2>4) \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 SSL-Bump (MITM).<\/h2>\n<details class=\"spoiler\">\n<summary>\u041d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043f\u043e \u0440\u0430\u0431\u043e\u0442\u0435 SSL-Bump (\u0414\u0430\u043d\u043d\u044b\u0439 \u0431\u043b\u043e\u043a \u043d\u0435\u0441\u0435\u0442 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440, \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u0442\u044c)<\/summary>\n<div class=\"spoiler__content\">\n<blockquote>\n<p>Server Name Indication (SNI) \u2014 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430 TLS, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043a\u043b\u0438\u0435\u043d\u0442\u0443 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0438\u043c\u044f \u0445\u043e\u0441\u0442\u0430, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043e\u043d \u043f\u044b\u0442\u0430\u0435\u0442\u0441\u044f \u0441\u043e\u0435\u0434\u0438\u043d\u0438\u0442\u044c\u0441\u044f, \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u00ab\u0440\u0443\u043a\u043e\u043f\u043e\u0436\u0430\u0442\u0438\u044f\u00bb (\u043f\u0435\u0440\u0432\u043e\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f)<\/p>\n<\/blockquote>\n<blockquote>\n<p>\u0426\u0435\u043b\u044c SNI \u2014 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442\u044c \u0441\u0435\u0440\u0432\u0435\u0440\u0443 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0432 \u043d\u0430 \u043e\u0434\u043d\u043e\u043c IP-\u0430\u0434\u0440\u0435\u0441\u0435 \u0438 TCP-\u043f\u043e\u0440\u0442\u0443, \u0447\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b\u043c (HTTPS) \u0441\u0430\u0439\u0442\u0430\u043c (\u0438\u043b\u0438 \u0434\u0440\u0443\u0433\u0438\u043c \u0441\u0435\u0440\u0432\u0438\u0441\u0430\u043c \u043f\u043e\u0432\u0435\u0440\u0445 TLS) \u043d\u0430 \u043e\u0434\u043d\u043e\u043c IP-\u0430\u0434\u0440\u0435\u0441\u0435 \u0431\u0435\u0437 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u0434\u043d\u043e\u0433\u043e \u0438 \u0442\u043e\u0433\u043e \u0436\u0435 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430 \u043d\u0430 \u0432\u0441\u0435\u0445 \u0441\u0430\u0439\u0442\u0430\u0445<\/p>\n<\/blockquote>\n<p><strong>\u0412\u0441\u043a\u0440\u044b\u0442\u0438\u0435 HTTPs \u0442\u0440\u0430\u0444\u0438\u043a\u0430 Squid<\/strong><\/p>\n<p>\u041a\u043e\u0433\u0434\u0430 \u043a\u043b\u0438\u0435\u043d\u0442 (\u0431\u0440\u0430\u0443\u0437\u0435\u0440) \u0438\u043d\u0438\u0446\u0438\u0438\u0440\u0443\u0435\u0442 HTTPS-\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0447\u0435\u0440\u0435\u0437 \u043f\u0440\u043e\u043a\u0441\u0438, Squid \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u043e\u0441\u0442\u043e \u0442\u0430\u043a \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0442\u0440\u0430\u0444\u0438\u043a. \u0415\u043c\u0443 \u043d\u0443\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0445\u0432\u0430\u0442\u0438\u0442\u044c \u0440\u0443\u043a\u043e\u043f\u043e\u0436\u0430\u0442\u0438\u0435 (Handshake), \u043f\u043e\u0434\u043c\u0435\u043d\u0438\u0442\u044c \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0441\u0432\u043e\u0438\u043c (\u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c \u0438\u043b\u0438 PKI) \u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0434\u0432\u0430 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 TLS-\u0442\u0443\u043d\u043d\u0435\u043b\u044f<\/p>\n<p><strong>\u042d\u0442\u0430\u043f\u044b \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0432\u043d\u0443\u0442\u0440\u0438 Squid<\/strong><\/p>\n<p>\u041f\u0440\u043e\u0446\u0435\u0441\u0441 ssl_bump \u0440\u0430\u0437\u0431\u0438\u0442 \u043d\u0430 \u0442\u0440\u0438 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u044d\u0442\u0430\u043f\u0430. \u0414\u0438\u0440\u0435\u043a\u0442\u0438\u0432\u044b acl \u2026 at_step \u2026 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u0442\u0435\u0431\u0435 \u0441\u043a\u0430\u0437\u0430\u0442\u044c Squid: \u00ab\u041d\u0430 \u044d\u0442\u043e\u043c \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u043c \u044d\u0442\u0430\u043f\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u044c \u0432\u043e\u0442 \u044d\u0442\u0438 \u0443\u0441\u043b\u043e\u0432\u0438\u044f \u0438 \u0440\u0435\u0448\u0438, \u0447\u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u0434\u0430\u043b\u044c\u0448\u0435\u00bb<\/p>\n<p>SslBump1 &#8212; \u044d\u0442\u0430\u043f \u043f\u0440\u0438\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u044f<\/p>\n<ul>\n<li>\n<p>\u041a\u043e\u0433\u0434\u0430: \u0421\u0440\u0430\u0437\u0443 \u043f\u043e\u0441\u043b\u0435 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u043f\u0430\u043a\u0435\u0442\u0430 ClientHello \u043e\u0442 \u043a\u043b\u0438\u0435\u043d\u0442\u0430<\/p>\n<ul>\n<li>\n<p>\u0427\u0442\u043e \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e Squid:<\/p>\n<\/li>\n<li>\n<p>IP-\u0430\u0434\u0440\u0435\u0441 \u043a\u043b\u0438\u0435\u043d\u0442\u0430<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u0440\u0442 \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f<\/p>\n<\/li>\n<li>\n<p>SNI (Server Name Indication) \u2014 \u0438\u043c\u044f \u0434\u043e\u043c\u0435\u043d\u0430, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043a\u043b\u0438\u0435\u043d\u0442 \u0445\u043e\u0447\u0435\u0442 \u043f\u043e\u0441\u0435\u0442\u0438\u0442\u044c (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, google.com). \u042d\u0442\u043e \u043a\u0440\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u0430\u0436\u043d\u043e, \u0442\u0430\u043a \u043a\u0430\u043a \u043d\u0430 \u044d\u0442\u043e\u043c \u044d\u0442\u0430\u043f\u0435 \u0442\u0440\u0430\u0444\u0438\u043a \u0435\u0449\u0435 \u043d\u0435 \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e, \u043d\u043e SNI \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442\u0441\u044f \u0432 \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u043c \u0432\u0438\u0434\u0435<\/p>\n<\/li>\n<li>\n<p>\u0412\u0435\u0440\u0441\u0438\u0438 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u043e\u0432 \u0438 \u0448\u0438\u0444\u0440\u044b, \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0435 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u043c<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u0427\u0442\u043e \u041d\u0415 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e: \u041f\u043e\u043b\u043d\u044b\u0439 URL (\u043f\u0443\u0442\u044c \/path), \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0438 HTTP, \u043a\u043e\u043d\u0442\u0435\u043d\u0442. \u0421\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0435\u0449\u0435 \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0435\u043d Squid\u2019\u043e\u043c \u043e\u0442 \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0445\u043e\u0441\u0442\u0430<\/p>\n<\/li>\n<li>\n<p>\u0417\u0430\u0447\u0435\u043c \u043d\u0443\u0436\u0435\u043d: \u0427\u0442\u043e\u0431\u044b \u043f\u0440\u0438\u043d\u044f\u0442\u044c \u0440\u0435\u0448\u0435\u043d\u0438\u0435: \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043b\u0438 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0441\u0440\u0430\u0437\u0443 \u043f\u043e \u0434\u043e\u043c\u0435\u043d\u0443 (SNI), \u043f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043b\u0438 \u0435\u0433\u043e \u0431\u0435\u0437 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 (bypass) \u0438\u043b\u0438 \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u043a \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c\u0443 \u044d\u0442\u0430\u043f\u0443 \u0434\u043b\u044f \u0433\u043b\u0443\u0431\u043e\u043a\u043e\u0439 \u0438\u043d\u0441\u043f\u0435\u043a\u0446\u0438\u0438<\/p>\n<\/li>\n<\/ul>\n<p>SslBump2 &#8212; \u044d\u0442\u0430\u043f \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u043e\u0433\u043e \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430<\/p>\n<ul>\n<li>\n<p>\u041a\u043e\u0433\u0434\u0430: \u041f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e \u043a\u0430\u043a Squid \u0441\u0432\u044f\u0437\u0430\u043b\u0441\u044f \u0441 \u0446\u0435\u043b\u0435\u0432\u044b\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c \u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u043b \u043e\u0442 \u043d\u0435\u0433\u043e \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 (ServerHello + Certificate), \u043d\u043e \u0434\u043e \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u043e\u043d \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u043b \u043f\u043e\u0434\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u043a\u043b\u0438\u0435\u043d\u0442\u0443.<\/p>\n<\/li>\n<li>\n<p>\u0427\u0442\u043e \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e Squid:<\/p>\n<ul>\n<li>\n<p>\u0412\u0441\u0451, \u0447\u0442\u043e \u0431\u044b\u043b\u043e \u043d\u0430 \u044d\u0442\u0430\u043f\u0435 1.<\/p>\n<\/li>\n<li>\n<p>\u0414\u0430\u043d\u043d\u044b\u0435 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430: Subject, Issuer, \u0434\u0430\u0442\u044b validity, SAN (Subject Alternative Names), \u043d\u0430\u043b\u0438\u0447\u0438\u0435 EV-\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0439.<\/p>\n<\/li>\n<li>\n<p>Squid \u0443\u0436\u0435 \u0437\u043d\u0430\u0435\u0442, \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0435\u0442 \u043b\u0438 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u0441 \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u044b\u043c \u0434\u043e\u043c\u0435\u043d\u043e\u043c.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u0417\u0430\u0447\u0435\u043c \u043d\u0443\u0436\u0435\u043d: \u0421\u0430\u043c\u044b\u0439 \u043c\u043e\u0449\u043d\u044b\u0439 \u044d\u0442\u0430\u043f \u0434\u043b\u044f \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u0438. \u0422\u044b \u043c\u043e\u0436\u0435\u0448\u044c \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c: &#8212; \u041a\u0442\u043e \u0432\u044b\u043f\u0443\u0441\u0442\u0438\u043b \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442? (\u0411\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0430\u043c\u043e\u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0435 \u0438\u043b\u0438 \u043d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0435 CA). &#8212; \u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u0435\u043d \u043b\u0438 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442? &#8212; \u0421\u043e\u0432\u043f\u0430\u0434\u0430\u0435\u0442 \u043b\u0438 CN\/SAN \u0441 SNI?<\/p>\n<ul>\n<li>\n<p>\u0415\u0441\u043b\u0438 \u0432\u0441\u0451 \u043e\u043a \u2014 Squid \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442 \u0441\u0432\u043e\u0439 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u201c\u043d\u0430 \u043b\u0435\u0442\u0443\u201d (\u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u0442\u0432\u043e\u0438\u043c \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u043c CA) \u0438 \u043e\u0442\u0434\u0430\u0435\u0442 \u0435\u0433\u043e \u043a\u043b\u0438\u0435\u043d\u0442\u0443.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>SslBump3 &#8212; \u044d\u0442\u0430\u043f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0442\u0443\u043d\u043d\u0435\u043b\u044f<\/p>\n<ul>\n<li>\n<p>\u041a\u043e\u0433\u0434\u0430: \u041f\u043e\u0441\u043b\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u0440\u0443\u043a\u043e\u043f\u043e\u0436\u0430\u0442\u0438\u044f \u0441 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u043c. \u0422\u0443\u043d\u043d\u0435\u043b\u044c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d.<\/p>\n<\/li>\n<li>\n<p>\u0427\u0442\u043e \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e Squid:<\/p>\n<ul>\n<li>\n<p>\u041f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043f\u043e\u0442\u043e\u043a \u0434\u0430\u043d\u043d\u044b\u0445 (\u0442\u0430\u043a \u043a\u0430\u043a Squid \u0442\u0435\u043f\u0435\u0440\u044c \u0441\u0442\u043e\u0438\u0442 \u043f\u043e\u0441\u0435\u0440\u0435\u0434\u0438\u043d\u0435 \u0441 \u0434\u0432\u0443\u043c\u044f \u043a\u043b\u044e\u0447\u0430\u043c\u0438).<\/p>\n<\/li>\n<li>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u044d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043a\u0430\u043a \u043e\u0431\u044b\u0447\u043d\u044b\u0439 HTTP-\u0442\u0440\u0430\u0444\u0438\u043a \u0432\u043d\u0443\u0442\u0440\u0438 \u0442\u0443\u043d\u043d\u0435\u043b\u044f. \u0414\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u043c\u0435\u0442\u043e\u0434\u044b HTTP, \u043f\u043e\u043b\u043d\u044b\u0435 URL, \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0438, \u043a\u0443\u043a\u0438.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u0417\u0430\u0447\u0435\u043c \u043d\u0443\u0436\u0435\u043d: \u041e\u0431\u044b\u0447\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0444\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u043e\u0432\u0435\u0440\u043e\u043a \u043f\u0435\u0440\u0435\u0434 \u0442\u0435\u043c, \u043a\u0430\u043a \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0442\u0440\u0430\u0444\u0438\u043a (peek -&gt; splice \u0438\u043b\u0438 \u043e\u043a\u043e\u043d\u0447\u0430\u043d\u0438\u0435 bump). \u0412 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0432\u0435\u0440\u0441\u0438\u044f\u0445 Squid \u0431\u043e\u043b\u044c\u0448\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u043b\u043e\u0433\u0438\u043a\u0438 \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u0438 \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430 \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u0443\u0436\u0435 \u043f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u044d\u0442\u0430\u043f\u0430 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u043c\u0438 ACL (url_regex, mime_type \u0438 \u0442.\u0434.), \u043d\u043e \u0437\u0434\u0435\u0441\u044c \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0438\u043d\u044f\u0442\u044c \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043f\u0440\u0435\u0440\u0432\u0430\u0442\u044c \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435, \u0435\u0441\u043b\u0438 \u0447\u0442\u043e-\u0442\u043e \u043f\u043e\u0448\u043b\u043e \u043d\u0435 \u0442\u0430\u043a \u043f\u0440\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 \u0442\u0443\u043d\u043d\u0435\u043b\u044f.<\/p>\n<\/li>\n<\/ul>\n<p>\u0418\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f <code>ssl_bump<\/code><\/p>\n<pre><code class=\"bash\">ssl_bump &lt;action&gt; [!]acl ...# &lt;action&gt;: \u0427\u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u0441 \u0442\u0440\u0430\u0444\u0438\u043a\u043e\u043c (splice, bump, peek, stare, terminate).# [!]acl_name: \u041d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u0435. \u0415\u0441\u043b\u0438 \u0443\u043a\u0430\u0437\u0430\u043d ACL, \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0435\u0441\u043b\u0438 \u0437\u0430\u043f\u0440\u043e\u0441 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u044d\u0442\u043e\u043c\u0443 ACL. \u0417\u043d\u0430\u043a ! \u0438\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u0443\u0435\u0442 \u0443\u0441\u043b\u043e\u0432\u0438\u0435 (\u00ab\u0435\u0441\u043b\u0438 \u041d\u0415 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442\u00bb)<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p><strong>Action<\/strong><\/p>\n<ol>\n<li>\n<p><code>splice<\/code> &#8212; \u0421\u0442\u0430\u0442\u044c TCP-\u0442\u0443\u043d\u043d\u0435\u043b\u0435\u043c \u0431\u0435\u0437 \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u0438 \u0442\u0440\u0430\u0444\u0438\u043a\u0430. \u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e<\/p>\n<ul>\n<li>\n<p>\u041a\u043b\u0438\u0435\u043d\u0442 \u043e\u0431\u0449\u0430\u0435\u0442\u0441\u044f \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0441 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c. Squid \u043d\u0435 \u0432\u0438\u0434\u0438\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435, \u043d\u0435 \u0432\u0438\u0434\u0438\u0442 URL, \u043d\u0435 \u0432\u0438\u0434\u0438\u0442 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0438. \u0412\u0438\u0434\u0438\u0442 \u0442\u043e\u043b\u044c\u043a\u043e IP \u0438 \u043f\u043e\u0440\u0442.<\/p>\n<\/li>\n<li>\n<p>\u041a\u043b\u0438\u0435\u043d\u0442 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0439 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u043e\u0442 \u0446\u0435\u043b\u0435\u0432\u043e\u0433\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430. \u0426\u0435\u043f\u043e\u0447\u043a\u0430 \u0434\u043e\u0432\u0435\u0440\u0438\u044f \u043d\u0435 \u043d\u0430\u0440\u0443\u0448\u0430\u0435\u0442\u0441\u044f. \u041a\u043e\u0433\u0434\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c:<\/p>\n<\/li>\n<li>\n<p>\u0414\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432, \u0433\u0434\u0435 \u0437\u0430\u043f\u0440\u0435\u0449\u0435\u043d\u0430 \u043f\u043e\u0434\u043c\u0435\u043d\u0430 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0432 (Banking, Google, \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043a\u043e\u0440\u043f\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0435 \u043f\u043e\u0440\u0442\u0430\u043b\u044b \u0441 Certificate Pinning).<\/p>\n<\/li>\n<li>\n<p>\u0414\u043b\u044f \u043f\u043e\u0432\u044b\u0448\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 (\u043d\u0435\u0442 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043d\u0430 CPU \u0434\u043b\u044f \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f\/\u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u0438).<\/p>\n<\/li>\n<li>\n<p>\u0414\u043b\u044f \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u044b\u0445 \u0434\u043e\u043c\u0435\u043d\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0442\u044b \u043d\u0435 \u0445\u043e\u0447\u0435\u0448\u044c \u0438\u043d\u0441\u043f\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c. \u041d\u044e\u0430\u043d\u0441 \u044d\u0442\u0430\u043f\u043e\u0432:<\/p>\n<\/li>\n<li>\n<p>\u041d\u0430 <code>SslBump1<\/code>: \u0422\u0443\u043d\u043d\u0435\u043b\u044c \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u0441\u043b\u0435 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f SNI. \u0421\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0434\u0430\u0436\u0435 \u043d\u0435 \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u0442\u0441\u044f Squid\u2019\u043e\u043c.<\/p>\n<\/li>\n<li>\n<p>\u041d\u0430 <code>SslBump2\/3<\/code>: \u0415\u0441\u043b\u0438 \u043c\u044b \u0443\u0436\u0435 \u0441\u0434\u0435\u043b\u0430\u043b\u0438 peek \u0438\u043b\u0438 stare, \u0442\u043e splice \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u0435\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0438\u043d\u0441\u043f\u0435\u043a\u0446\u0438\u0438 \u0438 \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0432 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0442\u0443\u043d\u043d\u0435\u043b\u044c \u0434\u043b\u044f \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u0435\u0441\u0441\u0438\u0438.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><code>bump<\/code> &#8212; \u041f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u0430\u044f \u0430\u0442\u0430\u043a\u0430 MITM. \u0420\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u0430, \u0438\u043d\u0441\u043f\u0435\u043a\u0446\u0438\u044f \u0438 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u0435 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u041a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442:<\/p>\n<ul>\n<li>\n<p>\u041d\u0430 <code>SslBump1<\/code>: Squid \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u0435\u0442 \u0440\u0443\u043a\u043e\u043f\u043e\u0436\u0430\u0442\u0438\u0435 \u0441 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u043c, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0441\u0432\u043e\u0439 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 (\u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u0442\u0432\u043e\u0438\u043c \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u043c CA). \u0422\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u043e\u043d \u0438\u0434\u0435\u0442 \u043a \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c\u0443 \u0441\u0435\u0440\u0432\u0435\u0440\u0443.<\/p>\n<\/li>\n<li>\n<p>\u041d\u0430 <code>SslBump2<\/code>: Squid \u0443\u0436\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043b \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430, \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u0435\u0433\u043e, \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442 \u043d\u043e\u0432\u044b\u0439 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u00ab\u043d\u0430 \u043b\u0435\u0442\u0443\u00bb (\u043a\u043b\u043e\u043d\u0438\u0440\u0443\u044f Subject, SAN, \u043d\u043e \u043f\u043e\u0434\u043f\u0438\u0441\u044b\u0432\u0430\u044f \u0441\u0432\u043e\u0438\u043c \u043a\u043b\u044e\u0447\u043e\u043c) \u0438 \u043e\u0442\u0434\u0430\u0435\u0442 \u0435\u0433\u043e \u043a\u043b\u0438\u0435\u043d\u0442\u0443.<\/p>\n<\/li>\n<li>\n<p>\u041d\u0430 <code>SslBump3<\/code>: \u041e\u0431\u044b\u0447\u043d\u043e \u0437\u0434\u0435\u0441\u044c bump \u0443\u0436\u0435 \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u0441\u043c\u044b\u0441\u043b\u0430, \u0442\u0430\u043a \u043a\u0430\u043a \u0442\u0443\u043d\u043d\u0435\u043b\u044c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d. \u041d\u043e \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438 \u044d\u0442\u043e \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u044f \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u0438. \u0414\u0432\u0430 \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u044b\u0445 TLS-\u043a\u0430\u043d\u0430\u043b\u0430: \u041a\u043b\u0438\u0435\u043d\u0442&lt;-&gt;Squid \u0438 Squid&lt;-&gt;\u0421\u0435\u0440\u0432\u0435\u0440. Squid \u0432\u0438\u0434\u0438\u0442 \u0432\u0441\u0451 \u0432 \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u043c \u0432\u0438\u0434\u0435 (URL, cookies, \u043a\u043e\u043d\u0442\u0435\u043d\u0442). \u041a\u043b\u0438\u0435\u043d\u0442 \u0432\u0438\u0434\u0438\u0442 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442, \u0432\u044b\u043f\u0443\u0449\u0435\u043d\u043d\u044b\u0439 \u0442\u0432\u043e\u0438\u043c \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u043c CA. \u0422\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u044d\u0442\u043e\u0433\u043e CA \u0432 \u0434\u043e\u0432\u0435\u0440\u0435\u043d\u043d\u044b\u0435 \u043a\u043e\u0440\u043d\u0438 \u043d\u0430 \u0432\u0441\u0435\u0445 \u043a\u043b\u0438\u0435\u043d\u0442\u0430\u0445, \u0438\u043d\u0430\u0447\u0435 \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u0432\u044b\u0434\u0430\u0441\u0442 \u043e\u0448\u0438\u0431\u043a\u0443 <code>NET::ERR_CERT_AUTHORITY_INVALID<\/code>. \u041a\u043e\u0433\u0434\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c:<\/p>\n<\/li>\n<li>\n<p>\u0414\u043b\u044f \u043f\u043e\u043b\u043d\u043e\u0439 \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u0438 \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430 (\u0430\u043d\u0442\u0438\u0432\u0438\u0440\u0443\u0441, \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0430 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439, DLP).<\/p>\n<\/li>\n<li>\n<p>\u0414\u043b\u044f \u0430\u0443\u0434\u0438\u0442\u0430 \u0442\u0440\u0430\u0444\u0438\u043a\u0430. \u0420\u0438\u0441\u043a\u0438: \u041b\u043e\u043c\u0430\u0435\u0442 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0441 \u0436\u0435\u0441\u0442\u043a\u0438\u043c \u043f\u0438\u043d\u043d\u0438\u043d\u0433\u043e\u043c \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0432 (HPKP, \u0445\u043e\u0442\u044f \u0441\u0435\u0439\u0447\u0430\u0441 \u0440\u0435\u0434\u043a\u043e, \u0438\u043b\u0438 app-specific pinning).<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><code>peek<\/code> &#8212; \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0440\u0443\u043a\u043e\u043f\u043e\u0436\u0430\u0442\u0438\u044f, \u043d\u043e \u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u0437\u0436\u0435 \u0441\u0442\u0430\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u044b\u043c \u0442\u0443\u043d\u043d\u0435\u043b\u0435\u043c (<code>splice<\/code>). \u042d\u0442\u043e \u0433\u0438\u0431\u0440\u0438\u0434\u043d\u044b\u0439 \u0440\u0435\u0436\u0438\u043c, \u0432\u0432\u0435\u0434\u0435\u043d\u043d\u044b\u0439 \u0434\u043b\u044f \u0433\u0438\u0431\u043a\u043e\u0441\u0442\u0438.<\/p>\n<\/li>\n<\/ol>\n<p>\u041a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442:<\/p>\n<pre><code>- \u041d\u0430 `SslBump1`: Squid \u0447\u0438\u0442\u0430\u0435\u0442 `ClientHello` (\u0432\u0438\u0434\u0438\u0442 SNI), \u043d\u043e \u043d\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u0435\u0442 \u0440\u0443\u043a\u043e\u043f\u043e\u0436\u0430\u0442\u0438\u0435 \u0441 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u043c \u0441\u0440\u0430\u0437\u0443. \u041e\u043d \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442 \u043a \u0448\u0430\u0433\u0443 2.- \u041d\u0430 `SslBump2`: Squid \u0441\u043e\u0435\u0434\u0438\u043d\u044f\u0435\u0442\u0441\u044f \u0441 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c, \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u0435\u0433\u043e \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0439 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442, \u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442 \u0435\u0433\u043e (\u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c ACL \u043f\u043e \u0438\u043c\u0435\u043d\u0438 \u0432 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0435, issuer, \u0441\u0440\u043e\u043a\u0443 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f), \u043d\u043e \u0435\u0449\u0435 \u043d\u0435 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u043a\u043b\u0438\u0435\u043d\u0442\u0443 \u043f\u043e\u0434\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442.<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p><strong>\u041a\u043b\u044e\u0447\u0435\u0432\u0430\u044f \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044c<\/strong>: \u041f\u043e\u0441\u043b\u0435 <code>peek<\/code> \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u044d\u0442\u0430\u043f\u0435 \u0442\u044b \u043c\u043e\u0436\u0435\u0448\u044c \u0432\u044b\u0431\u0440\u0430\u0442\u044c <code>splice<\/code>. \u0415\u0441\u043b\u0438 \u0442\u044b \u0432\u044b\u0431\u0435\u0440\u0435\u0448\u044c <code>splice<\/code> \u043f\u043e\u0441\u043b\u0435 <code>peek<\/code> \u043d\u0430 \u0448\u0430\u0433\u0435 2, Squid \u043f\u0435\u0440\u0435\u0434\u0430\u0441\u0442 **\u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 **\u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0443 \u0438 \u0441\u0442\u0430\u043d\u0435\u0442 \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u044b\u043c \u0442\u0443\u043d\u043d\u0435\u043b\u0435\u043c.<\/p>\n<p>\u0417\u0430\u0447\u0435\u043c \u043d\u0443\u0436\u043d\u043e: \u0427\u0442\u043e\u0431\u044b \u043f\u0440\u0438\u043d\u044f\u0442\u044c \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043e \u043f\u043e\u0434\u043c\u0435\u043d\u0435 (<code>bump<\/code>) \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0430, \u043d\u043e \u0435\u0441\u043b\u0438 \u0443\u0441\u043b\u043e\u0432\u0438\u044f \u043d\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0442 \u2014 \u0447\u0435\u0441\u0442\u043d\u043e \u043f\u0440\u043e\u0431\u0440\u043e\u0441\u0438\u0442\u044c \u0442\u0440\u0430\u0444\u0438\u043a (<code>splice<\/code>), \u043d\u0435 \u043b\u043e\u043c\u0430\u044f \u0434\u043e\u0432\u0435\u0440\u0438\u0435 \u043a\u043b\u0438\u0435\u043d\u0442\u0430.<\/p>\n<ul>\n<li>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440: \u00ab\u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 (<code>step2<\/code>). \u0415\u0441\u043b\u0438 \u043e\u043d \u0432\u044b\u043f\u0443\u0449\u0435\u043d \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u043c CA \u2014 \u0441\u0434\u0435\u043b\u0430\u0439 <code>splice<\/code> (\u043d\u0435 \u043b\u043e\u043c\u0430\u0439). \u0415\u0441\u043b\u0438 \u0441\u0430\u043c\u043e\u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u2014 \u0441\u0434\u0435\u043b\u0430\u0439 <code>bump<\/code> (\u0438\u043d\u0441\u043f\u0435\u043a\u0442\u0438\u0440\u0443\u0439, \u0442\u0430\u043a \u043a\u0430\u043a \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e \u0434\u043e\u0432\u0435\u0440\u0438\u044f \u043d\u0435\u0442)\u00bb.<\/p>\n<\/li>\n<\/ul>\n<blockquote>\n<p>\u042d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442: \u0435\u0441\u043b\u0438 \u0442\u044b \u0441\u0434\u0435\u043b\u0430\u043b peek \u043d\u0430 \u0448\u0430\u0433\u0435 2, \u0430 \u043f\u043e\u0442\u043e\u043c \u043d\u0430 \u0448\u0430\u0433\u0435 3 \u0440\u0435\u0448\u0438\u043b \u0434\u0435\u043b\u0430\u0442\u044c <code>bump<\/code>, \u044d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u043d\u0435 \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u0438\u043b\u0438 \u0431\u044b\u0442\u044c \u043d\u0435\u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u043c, \u0442\u0430\u043a \u043a\u0430\u043a \u043c\u043e\u043c\u0435\u043d\u0442 \u0434\u043b\u044f \u0438\u043d\u0438\u0446\u0438\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u0434\u043c\u0435\u043d\u044b \u0441 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u043c \u043c\u043e\u0433 \u0431\u044b\u0442\u044c \u0443\u043f\u0443\u0449\u0435\u043d. \u041e\u0431\u044b\u0447\u043d\u043e \u0446\u0435\u043f\u043e\u0447\u043a\u0430 <code>peek<\/code> -&gt; <code>bump<\/code> \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0440\u0435\u0436\u0435, \u0447\u0435\u043c <code>peek<\/code> -&gt; <code>splice<\/code>. \u0427\u0430\u0449\u0435 peek \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442, \u0447\u0442\u043e\u0431\u044b \u0440\u0435\u0448\u0438\u0442\u044c: <code>bump<\/code> \u0438\u043b\u0438 <code>splice<\/code>.<\/p>\n<\/blockquote>\n<ol start=\"4\">\n<li>\n<p><code>stare<\/code> &#8212; \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0440\u0443\u043a\u043e\u043f\u043e\u0436\u0430\u0442\u0438\u044f, \u043d\u043e \u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u0437\u0436\u0435 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043f\u043e\u043b\u043d\u0443\u044e \u043f\u043e\u0434\u043c\u0435\u043d\u0443 (<code>bump<\/code>). \u0422\u043e\u0436\u0435 \u0433\u0438\u0431\u0440\u0438\u0434\u043d\u044b\u0439 \u0440\u0435\u0436\u0438\u043c, \u043d\u043e \u0441 \u043f\u0440\u043e\u0442\u0438\u0432\u043e\u043f\u043e\u043b\u043e\u0436\u043d\u043e\u0439 \u0446\u0435\u043b\u044c\u044e \u043f\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e \u0441 <code>peek<\/code>.<\/p>\n<\/li>\n<\/ol>\n<p>\u041a\u043b\u044e\u0447\u0435\u0432\u0430\u044f \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044c: \u041f\u043e\u0441\u043b\u0435 stare \u0442\u044b \u043f\u043b\u0430\u043d\u0438\u0440\u0443\u0435\u0448\u044c \u0441\u0434\u0435\u043b\u0430\u0442\u044c bump. \u042d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u0440\u0438\u043d\u044f\u0442\u044c \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043e \u043f\u043e\u0434\u043c\u0435\u043d\u0435 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438, \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u043e\u0439 \u043e\u0442 \u0441\u0435\u0440\u0432\u0435\u0440\u0430.<\/p>\n<ul>\n<li>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440: \u00ab\u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 (step2). \u0415\u0441\u043b\u0438 \u0432 \u043d\u0435\u043c \u0435\u0441\u0442\u044c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0435 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 \u0438\u043b\u0438 \u043e\u043d \u043e\u0442 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e Issuer \u2014 \u0442\u043e\u0433\u0434\u0430 \u0434\u0435\u043b\u0430\u0439 bump. \u0418\u043d\u0430\u0447\u0435 \u2014 splice\u00bb.<\/p>\n<\/li>\n<\/ul>\n<p>\u042d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442: \u0435\u0441\u043b\u0438 \u0442\u044b \u0441\u0434\u0435\u043b\u0430\u043b stare \u043d\u0430 \u0448\u0430\u0433\u0435 2, \u043f\u0443\u0442\u044c \u043d\u0430\u0437\u0430\u0434 \u043a \u0447\u0435\u0441\u0442\u043d\u043e\u043c\u0443 splice (\u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430) \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0437\u0430\u043a\u0440\u044b\u0442 \u0438\u043b\u0438 \u0441\u043b\u043e\u0436\u0435\u043d. \u041f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442, \u0447\u0442\u043e \u0442\u044b \u0433\u043e\u0442\u043e\u0432\u0438\u0448\u044c\u0441\u044f \u043a \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0439 \u043f\u043e\u0434\u043c\u0435\u043d\u0435.<\/p>\n<ol start=\"5\">\n<li>\n<p><code>terminate<\/code> &#8212; \u041d\u0435\u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e \u0437\u0430\u043a\u0440\u044b\u0442\u044c \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0441 \u043e\u0431\u0435\u0438\u0445 \u0441\u0442\u043e\u0440\u043e\u043d.<\/p>\n<\/li>\n<\/ol>\n<p><strong>\u041a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442<\/strong>:<\/p>\n<ul>\n<li>\n<p>Squid \u0440\u0432\u0435\u0442 TCP-\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435. \u041a\u043b\u0438\u0435\u043d\u0442 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u043e\u0448\u0438\u0431\u043a\u0443 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f (\u0447\u0430\u0441\u0442\u043e ERR_CONNECTION_RESET \u0438\u043b\u0438 ERR_SSL_PROTOCOL_ERROR).<\/p>\n<\/li>\n<li>\n<p>\u041a\u043e\u0433\u0434\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c:<\/p>\n<ul>\n<li>\n<p>\u0411\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0437\u0430\u043f\u0440\u0435\u0449\u0435\u043d\u043d\u044b\u043c \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c (\u0447\u0435\u0440\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u0434\u043e\u043c\u0435\u043d\u043e\u0432 \u0447\u0435\u0440\u0435\u0437 SNI \u043d\u0430 \u0448\u0430\u0433\u0435 1).<\/p>\n<\/li>\n<li>\n<p>\u041e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u0435 \u043d\u0435\u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b\u0445 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0432 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0438\u0441\u0442\u0435\u043a\u0448\u0438\u0439 \u0441\u0440\u043e\u043a, \u043d\u0435\u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435 \u0438\u043c\u0435\u043d\u0438, \u043e\u0442\u0437\u044b\u0432 CRL\/OCSP) \u043d\u0430 \u0448\u0430\u0433\u0435 2.<\/p>\n<\/li>\n<li>\n<p>\u0417\u0430\u0449\u0438\u0442\u0430 \u043e\u0442 \u0430\u0442\u0430\u043a \u0438\u043b\u0438 \u043f\u043e\u0434\u043e\u0437\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u043f\u0440\u0438 \u0440\u0443\u043a\u043e\u043f\u043e\u0436\u0430\u0442\u0438\u0438.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u043e\u043c\u0430\u043d\u0434:<\/p>\n<pre><code class=\"bash\"># 1. \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c \u044d\u0442\u0430\u043f\u044bacl step1 at_step SslBump1 # ClientHalloacl step2 at_step SslBump2 # ClientHallo + Certificateacl step3 at_step SslBump3 # \u043a\u0430\u043a \u043e\u0431\u044b\u0447\u043d\u044b\u0439 HTTP-\u0442\u0440\u0430\u0444\u0438\u043a \u0432\u043d\u0443\u0442\u0440\u0438 \u0442\u0443\u043d\u043d\u0435\u043b\u044f. \u0414\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u043c\u0435\u0442\u043e\u0434\u044b HTTP, \u043f\u043e\u043b\u043d\u044b\u0435 URL, \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0438, \u043a\u0443\u043a\u0438.# 2. \u0421\u043f\u0438\u0441\u043a\u0438 \u0434\u043e\u043c\u0435\u043d\u043e\u0432acl sites_to_bypass ssl_dom_regex (google\\.com|bank\\.ru|.*\\.local$)# \u0422\u043e\u0436\u0435 \u0441\u0430\u043c\u043e\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0435\u0440\u0435\u0437 \u0444\u0430\u0439\u043b acl sites_to_bypass regex \"\/etc\/squid\/lists\/bypass_regex.txt\"# \u041a\u0430\u0436\u0434\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430 - \u044d\u0442\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0435 \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u043e\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435# \u042d\u043a\u0440\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u043e\u0447\u043a\u0438 \u043d\u0443\u0436\u043d\u043e \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e# google\\.com# bank\\.ru# .*\\.local$acl sites_to_bypass dstdomain \"\/etc\/squid\/lists\/bypass_sites.txt\" # \u0434\u043b\u044f \u0444\u0430\u0439\u043b\u0430 \u041e\u0434\u0438\u043d \u0434\u043e\u043c\u0435\u043d \u043d\u0430 \u0441\u0442\u0440\u043e\u043a\u0443# \u0427\u0442\u043e\u0431\u044b \u043e\u0445\u0432\u0430\u0442\u0438\u0442\u044c \u0434\u043e\u043c\u0435\u043d \u0438 \u0432\u0441\u0435 \u0435\u0433\u043e \u043f\u043e\u0434\u0434\u043e\u043c\u0435\u043d\u044b, \u0441\u0442\u0430\u0432\u044c \u0442\u043e\u0447\u043a\u0443 \u0432 \u043d\u0430\u0447\u0430\u043b\u0435 (.domain.com).# \u041a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438 \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0442\u0441\u044f \u0441 `#`.# ssl_cert_error - A\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u043e\u043f\u0430\u0434\u0430\u0435\u0442 \u0432 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044e \u00ab\u043f\u043b\u043e\u0445\u0438\u0445\u00bb, \u0435\u0441\u043b\u0438 **\u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0432\u044b\u044f\u0432\u0438\u043b\u0430 \u043e\u0448\u0438\u0431\u043a\u0443**.# \u042d\u0442\u043e \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0439 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c Squid \u0434\u043b\u044f \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u0438 SSL-\u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0432 \u043d\u0430 \u044d\u0442\u0430\u043f\u0435 `SslBump2` (\u043a\u043e\u0433\u0434\u0430 Squid \u0443\u0436\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043b \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u043e\u0442 \u0446\u0435\u043b\u0435\u0432\u043e\u0433\u043e \u0441\u0430\u0439\u0442\u0430, \u043d\u043e \u0435\u0449\u0435 \u043d\u0435 \u043e\u0442\u0434\u0430\u043b \u0441\u0432\u043e\u0439 \u043a\u043b\u0438\u0435\u043d\u0442\u0443).acl bad_certs ssl_cert_error# 3. \u041b\u043e\u0433\u0438\u043a\u0430 Step 1 (SNI)# \u0415\u0441\u043b\u0438 \u0434\u043e\u043c\u0435\u043d \u0432 \u0441\u043f\u0438\u0441\u043a\u0435 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439 - \u0441\u0440\u0430\u0437\u0443 \u0434\u0435\u043b\u0430\u0435\u043c \u0442\u0443\u043d\u043d\u0435\u043b\u044c (splice), \u0434\u0430\u0436\u0435 \u043d\u0435 \u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u0441\u0435\u0440\u0432\u0435\u0440\u0430.# \u042d\u0442\u043e \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0442 \u0440\u0435\u0441\u0443\u0440\u0441\u044b \u0438 \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u0443\u0435\u0442 100% \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u044c.ssl_bump splice step1 sites_to_bypass# \u0415\u0441\u043b\u0438 \u0434\u043e\u043c\u0435\u043d \u0432 \u0441\u043f\u0438\u0441\u043a\u0435 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0438 - \u0440\u0432\u0435\u043c \u0441\u0440\u0430\u0437\u0443.# ssl_bump terminate step1 blacklisted_domains# \u0414\u043b\u044f \u0432\u0441\u0435\u0445 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445 - \u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0434\u0430\u043b\u044c\u0448\u0435 (peek), \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u0441\u0435\u0440\u0432\u0435\u0440\u0430.# \u0421\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 ClientHello \u0432\u0441\u0435\u0445 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0439 (\u0447\u0442\u043e\u0431\u044b \u0443\u0437\u043d\u0430\u0442\u044c SNI\/\u0434\u043e\u043c\u0435\u043d)ssl_bump peek step1# 4. \u041b\u043e\u0433\u0438\u043a\u0430 Step 2 (\u0421\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u0441\u0435\u0440\u0432\u0435\u0440\u0430)# \u0415\u0441\u043b\u0438 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 \u043e\u0448\u0438\u0431\u043a\u0438 (\u0438\u0441\u0442\u0435\u043a, \u043d\u0435\u0432\u0435\u0440\u043d\u043e\u0435 \u0438\u043c\u044f) - \u0440\u0432\u0435\u043c.ssl_bump terminate step2 bad_certs# \u0415\u0441\u043b\u0438 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u043e\u0442 \u0434\u043e\u0432\u0435\u0440\u0435\u043d\u043d\u043e\u0433\u043e \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u043e\u0433\u043e CA \u0438 \u0441\u0430\u0439\u0442 \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0438\u043d\u0441\u043f\u0435\u043a\u0446\u0438\u0438 - \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c splice.# (\u0417\u0434\u0435\u0441\u044c \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u043e peek: \u043c\u044b \u0432\u0438\u0434\u0435\u043b\u0438 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442, \u0440\u0435\u0448\u0438\u043b\u0438 \u043d\u0435 \u043b\u043e\u043c\u0430\u0442\u044c \u0438 \u043f\u0440\u043e\u0431\u0440\u043e\u0441\u0438\u043b\u0438 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b).ssl_bump splice step2 trusted_public_sites# \u0414\u043b\u044f \u0432\u0441\u0435\u0433\u043e \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0433\u043e - \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u043c \u043f\u043e\u043b\u043d\u0443\u044e \u043f\u043e\u0434\u043c\u0435\u043d\u0443 (bump).# \u041c\u044b \u0443\u0436\u0435 \u0432\u0438\u0434\u0435\u043b\u0438 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 (\u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f peek \u043d\u0430 \u0448\u0430\u0433\u0435 1 \u0438 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0435 \u0441\u044e\u0434\u0430), \u0442\u0435\u043f\u0435\u0440\u044c \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c \u0441\u0432\u043e\u0439.ssl_bump bump step2# 5. \u041b\u043e\u0433\u0438\u043a\u0430 Step 3# \u0415\u0441\u043b\u0438 \u043c\u044b \u0434\u043e\u0448\u043b\u0438 \u0441\u044e\u0434\u0430, \u0437\u043d\u0430\u0447\u0438\u0442 \u0442\u0443\u043d\u043d\u0435\u043b\u044c \u0441 \u043f\u043e\u0434\u043c\u0435\u043d\u043e\u0439 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d. \u041f\u0440\u043e\u0441\u0442\u043e \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u043c \u0440\u0430\u0431\u043e\u0442\u0443.ssl_bump splice step3<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<\/div>\n<\/details>\n<p><strong>\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u0421\u0438\u0441\u0442\u0435\u043c\u044b \u0438 Squid \u0434\u043b\u044f SSL-Bump<\/strong><\/p>\n<pre><code class=\"bash\"># openssl # \u0414\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443 \u0432 \u0440\u0430\u0437\u0434\u0435\u043b [v3_ca] \u0444\u0430\u0439\u043b\u0430 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 openssl.cnf # \u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u043e\u0442 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u0434\u043b\u044f \u043f\u043e\u0434\u043f\u0438\u0441\u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0432# \u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u043e\u0442 \u043a\u043b\u044e\u0447 \u0434\u043b\u044f \u043f\u043e\u0434\u043f\u0438\u0441\u0438 \u0441\u043f\u0438\u0441\u043a\u043e\u0432 \u043e\u0442\u043e\u0437\u0432\u0430\u043d\u043d\u044b\u0445 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0432keyUsage = cRLSign, keyCertSign# \u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u044c\u0442\u0435 \u0441\u0440\u0435\u0434\u0443 \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f SSL-\u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0432mkdir \/opt\/squid\/etc\/ssl -pchown proxy:proxy \/opt\/squid\/etc\/ssl -Rchmod 700 \/opt\/squid\/etc\/ssl -Rcd \/opt\/squid\/etc\/ssl# \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0441\u0430\u043c\u043e\u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442openssl req -new -newkey rsa:4096 -sha256 -days 365 -nodes -x509 -extensions v3_ca -keyout squid_ca.pem -out squid_ca.pem# \u041f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0439\u0442\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442 DERopenssl x509 -in squid_ca.pem -outform DER -out squid_ca.der# \u042d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0439\u0442\u0435 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u043d\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0435 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u044b \u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 \u0435\u0433\u043e \u043d\u0430 \u043d\u0438\u0445 \u043a\u0430\u043a \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u0446\u0435\u043d\u0442\u0440\u0430 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438. \u0421\u043f\u043e\u0441\u043e\u0431 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u044d\u0442\u043e\u0433\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430 \u0438 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u043a\u043b\u0438\u0435\u043d\u0442\u0430# \u0421\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u043d\u043e\u0432\u0443\u044e \u0431\u0430\u0437\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 SSL \u0434\u043b\u044f \u0441\u0435\u0440\u0432\u0435\u0440\u0430 Squid:# \u041e\u0431\u0430\u0442\u0438\u0442\u044c\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f ssl_db \u0434\u043e\u043b\u0436\u043d\u0430 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c\u0441\u044f \u0441\u0430\u043c\u0430 \u043f\u0440\u0438 \u0432\u044b\u043f\u043b\u043d\u0435\u043d\u0438\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u044bmkdir \/opt\/squid\/var\/lib -p\/opt\/squid\/libexec\/security_file_certgen -c -s \/opt\/squid\/var\/lib\/ssl_db -M 4MBchown proxy:proxy \/opt\/squid\/var\/lib -R<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<details class=\"spoiler\">\n<summary>\u041f\u0440\u0438\u043c\u0435\u0440 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0441 SSL-Bump &#8212; squid.conf<\/summary>\n<div class=\"spoiler__content\">\n<p>\u0414\u043b\u044f \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0438\u043d\u0441\u043f\u0435\u043a\u0446\u0438\u0438 \u0437\u0430\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u0430 \u0441\u0442\u0440\u043e\u043a\u0430 <code>http_port 3128<\/code> \u043d\u0430 \u044d\u0442\u043e:<\/p>\n<pre><code class=\"bash\"># \u041f\u0440\u043e\u0441\u043b\u0443\u0448\u0438\u0432\u0430\u0435\u043c\u044b\u0439 \u043f\u043e\u0440\u0442http_port 3128 ssl-bump cert=\/opt\/squid\/etc\/ssl\/squid_ca.pem generate-host-certificates=on dynamic_cert_mem_cache_size=4MB# \u042d\u0442\u0430\u043f\u044b \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 SSLacl step1 at_step SslBump1acl step2 at_step SslBump2acl step3 at_step SslBump3# \u041f\u043e\u043b\u0438\u0442\u0438\u043a\u0430 \u0434\u043e\u043c\u0435\u043d\u043e\u0432 \u0431\u0435\u0437 SSL-\u0438\u043d\u0441\u043f\u0435\u043a\u0446\u0438\u0438acl politics_sites_no-inspection dstdomain \"\/opt\/squid\/etc\/sites_no-inspection\"# \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u043d\u0430 \u043e\u0448\u0438\u0431\u043a\u0438 (\u0438\u0441\u0442\u0435\u043a, \u0441\u0430\u043c\u043e\u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439, \u0438\u043c\u044f \u043d\u0435 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0435\u0442 \u0438 \u0442.\u0434.)# \u0421\u043e\u0437\u0434\u0430\u0435\u043c ACL, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438\u0441\u0442\u0438\u043d\u0435\u043d, \u0435\u0441\u043b\u0438 \u0435\u0441\u0442\u044c \u041b\u042e\u0411\u0410\u042f \u0438\u0437 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u0445 \u043e\u0448\u0438\u0431\u043e\u043a# Squid \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u0435\u0442 \u0441\u0442\u0440\u043e\u043a\u0438 \u0441 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u043c \u0438\u043c\u0435\u043d\u0435\u043c acl \u043f\u043e ORacl politics_bad_certs ssl_error certHasExpired# \u0421\u0440\u043e\u043a \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430 \u0438\u0441\u0442\u0435\u043a ERR_CERT_DATE_INVALIDacl politics_bad_certs ssl_error certNotYetValid# \u0421\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u0435\u0449\u0435 \u043d\u0435 \u043d\u0430\u0447\u0430\u043b \u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044cacl politics_bad_certs ssl_error certUntrusted# \u0418\u0437\u0434\u0430\u0442\u0435\u043b\u044c \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430 (Certificate Authority, CA) \u043d\u0435 \u0434\u043e\u0432\u0435\u0440\u044f\u0435\u0442\u0441\u044f Squid'\u043e\u043cacl politics_bad_certs ssl_error certSelfSigned# \u0421\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043d \u0441\u0430\u043c\u0438\u043c \u0436\u0435 \u0432\u043b\u0430\u0434\u0435\u043b\u044c\u0446\u0435\u043c \u0441\u0430\u0439\u0442\u0430, \u0430 \u043d\u0435 \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u044b\u043c \u0446\u0435\u043d\u0442\u0440\u043e\u043cacl politics_bad_certs ssl_error certDomainMismatch# \u0418\u043c\u044f \u0434\u043e\u043c\u0435\u043d\u0430, \u043a \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0442\u044b \u043e\u0431\u0440\u0430\u0449\u0430\u0435\u0448\u044c\u0441\u044f, \u043d\u0435 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0435\u0442 \u0441 \u0438\u043c\u0435\u043d\u0435\u043c, \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u043c \u0432 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0435# \u041f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0431\u0435\u0437 SSL-\u0438\u043d\u0441\u043f\u0435\u043a\u0446\u0438\u0438 SNI \u0438\u0437 \u0441\u043f\u0438\u0441\u043a\u0430ssl_bump splice step1 politics_sites_no-inspection# \u0421\u043c\u043e\u0442\u0440\u0438\u043c SNI \u0438 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043a \u0448\u0430\u0433\u0443 2, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u0441\u0435\u0440\u0432\u0435\u0440\u0430.ssl_bump peek step1# \u0422\u0435\u043f\u0435\u0440\u044c \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u0441\u0435\u0440\u0432\u0435\u0440\u0430. \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u0435\u0433\u043e \u0432\u0430\u043b\u0438\u0434\u043d\u043e\u0441\u0442\u044c.# \u0415\u0441\u043b\u0438 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u043f\u043b\u043e\u0445\u043e\u0439 -&gt; \u0440\u0432\u0435\u043c \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435.# ssl_bump terminate step2 politics_bad_certs# \u0432\u0441\u043a\u0440\u044b\u0432\u0430\u0435\u043c (bump) \u0432\u0441\u0435 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f# \u0421\u044e\u0434\u0430 \u043f\u043e\u043f\u0430\u0434\u0443\u0442 \u0432\u0441\u0435, \u043a\u0440\u043e\u043c\u0435 \u0431\u0430\u043d\u043a\u043e\u0432 \u0438 \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u043f\u043b\u043e\u0445\u0438\u043c\u0438 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430\u043c\u0438ssl_bump bump step2# \u041f\u0440\u043e\u0441\u0442\u043e \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u043c \u0440\u0430\u0431\u043e\u0442\u0443ssl_bump splice step3# \u0423\u043a\u0430\u0436\u0438\u0442\u0435 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 \u0434\u043b\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0430 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0432. security_file_certgen -h #helpsslcrtd_program \/opt\/squid\/libexec\/security_file_certgen -s \/opt\/squid\/var\/lib\/ssl_db -M 4MB<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<\/div>\n<\/details>\n<hr\/>\n<p><a class=\"anchor\" name=\"5\" id=\"5\"><\/a><\/p>\n<h2>5) \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043b\u043e\u0433\u0430 \u0438 \u043f\u0435\u0440\u0435\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u0430 \u0441\u0431\u043e\u0440\u0449\u0438\u043a \u043b\u043e\u0433\u043e\u0432.<\/h2>\n<p>\u0414\u043b\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0441\u0442\u043e\u0438\u0442 \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c\u0441\u044f \u043a \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u0430\u0439\u0442\u0430 \u0422\u0430\u043c \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043a\u0430\u043a:<\/p>\n<ul>\n<li>\n<p>\u043d\u0435 \u043f\u0438\u0441\u0430\u0442\u044c \u043b\u043e\u0433 \u0434\u043b\u044f \u043d\u0443\u0436\u043d\u044b\u0445 ACL.<\/p>\n<\/li>\n<li>\n<p>\u043f\u0438\u0441\u0430\u0442\u044c \u043b\u043e\u0433 \u0432 \u0444\u0430\u0439\u043b.<\/p>\n<\/li>\n<li>\n<p>\u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u043b\u043e\u0433 \u043f\u043e UDP\/TCP.<\/p>\n<\/li>\n<li>\n<p>\u043f\u0438\u0441\u0430\u0442\u044c \u043b\u043e\u0433 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439 \u0436\u0443\u0440\u043d\u0430\u043b.<\/p>\n<\/li>\n<\/ul>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440 \u0441 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u043e\u0439 \u043b\u043e\u0433\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u0447\u0435\u0440\u0435\u0437 syslog:<\/p>\n<ul>\n<li>\n<p>\u041b\u043e\u0433 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d \u0438 \u043f\u0440\u0430\u0432\u0435\u0434\u0435\u043d \u043a \u0444\u043e\u0440\u043c\u0430\u0442\u0443 JSON<\/p>\n<\/li>\n<\/ul>\n<details class=\"spoiler\">\n<summary>\u0411\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e: \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0444\u043e\u0440\u043c\u0430\u0442\u0430 \u043b\u043e\u0433\u0430 \u043a JSON<\/summary>\n<div class=\"spoiler__content\">\n<p><em>\u041f\u0440\u043e\u0432\u0435\u0440\u044f\u043b\u0438\u0441\u044c \u043d\u0435 \u0432\u0441\u0435, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0438<\/em><\/p>\n<pre><code class=\"bash\">\"timestamp\": \"%ts.%03tu\",          # \u0412\u0440\u0435\u043c\u044f: Unix-timestamp \u0441 \u043c\u0438\u043b\u043b\u0438\u0441\u0435\u043a\u0443\u043d\u0434\u0430\u043c\u0438 (\u043e\u0441\u043d\u043e\u0432\u0430 \u0434\u043b\u044f \u0442\u0430\u0439\u043c\u043b\u0430\u0439\u043d\u0430)\"time_human\": \"%tl\"           # \u0414\u043b\u044f \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u0430 (\u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u0432\u0438\u0434: 25\/Oct\/2023:14:30:05 +0300)\"time_iso\": \"%tl{%Y-%m-%dT%H:%M:%S %z}\" # \u0414\u043b\u044f \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u0430 \u0438 \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0438 (2023-10-25T14:30:05 +0300)\"date\": \"%tl{%Y-%m-%d}\" # \u0414\u043b\u044f \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u0430\"time\": \"%tl{%H:%M:%S}\" # \u0414\u043b\u044f \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u0430\"tz\": \"%z\"\"client_ip\": \"%&gt;a\",           # IP-\u0430\u0434\u0440\u0435\u0441 \u043a\u043b\u0438\u0435\u043d\u0442\u0430 (\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u0437\u0430\u043f\u0440\u043e\u0441\u0430)\"client_port\": \"%&gt;p\",         # \u041f\u043e\u0440\u0442 \u043a\u043b\u0438\u0435\u043d\u0442\u0430 (\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a)\"client_mac\": \"%&gt;eui\",        # MAC-\u0430\u0434\u0440\u0435\u0441 \u043a\u043b\u0438\u0435\u043d\u0442\u0430 (EUI-48\/64), \u0435\u0441\u043b\u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0432 \u0441\u0435\u0442\u0438\"user\": \"%[un\",               # \u0418\u043c\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f (\u0438\u0437 Auth, External ACL \u0438\u043b\u0438 SSL Cert)\"auth_user\": \"%ul\",           # \u0418\u043c\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0441\u0442\u0440\u043e\u0433\u043e \u0438\u0437 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 (Basic\/NTLM\/Kerberos)\"external_user\": \"%ue\",       # \u0418\u043c\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0438\u0437 external_acl helper\"ssl_user\": \"%us\",            # \u0418\u043c\u044f \u0438\u0437 Subject SSL-\u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0430\"http_method\": \"%rm\",         # \u041c\u0435\u0442\u043e\u0434 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 (GET, POST, CONNECT \u0438 \u0442.\u0434.)\"url\": \"%ru\",                 # \u041f\u043e\u043b\u043d\u044b\u0439 URL \u0437\u0430\u043f\u0440\u043e\u0441\u0430 (\u043f\u043e\u0441\u043b\u0435 \u0440\u0435\u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0432 \u0438 \u0430\u0434\u0430\u043f\u0442\u0430\u0446\u0438\u0438)\"raw_url\": \"%&gt;ru\",            # URL \u0442\u043e\u0447\u043d\u043e \u0442\u0430\u043a, \u043a\u0430\u043a \u043f\u0440\u0438\u0441\u043b\u0430\u043b \u043a\u043b\u0438\u0435\u043d\u0442 (\u0434\u043e \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 Squid)\"upstream_url\": \"%&lt;ru\",       # URL, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0443\u0448\u0435\u043b \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440 \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f#\"domain\": \"%{host}ru\",       # \u0414\u043e\u043c\u0435\u043d \u0438\u0437 URL (\u0443\u0434\u043e\u0431\u043d\u043e \u0434\u043b\u044f \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u0438 \u043f\u043e \u0441\u0430\u0439\u0442\u0430\u043c)\"path\": \"%rp\",                # \u041f\u0443\u0442\u044c \u043a \u0440\u0435\u0441\u0443\u0440\u0441\u0443 \u0431\u0435\u0437 \u0434\u043e\u043c\u0435\u043d\u0430 \u0438 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430\"http_version\": \"%rv\",        # \u0412\u0435\u0440\u0441\u0438\u044f HTTP \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430 (1.0, 1.1, 2)\"http_status\": \"%&gt;Hs\",        # HTTP \u043a\u043e\u0434 \u043e\u0442\u0432\u0435\u0442\u0430, \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0439 \u043a\u043b\u0438\u0435\u043d\u0442\u0443 (200, 403, 502)\"upstream_status\": \"%&lt;Hs\",    # HTTP \u043a\u043e\u0434 \u043e\u0442\u0432\u0435\u0442\u0430, \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0439 \u043e\u0442 \u0441\u0435\u0440\u0432\u0435\u0440\u0430\/\u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044f\"squid_status\": \"%Ss\",        # \u0421\u0442\u0430\u0442\u0443\u0441 \u043a\u044d\u0448\u0430\/\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f Squid (TCP_HIT, TCP_MISS, TCP_DENIED, ERR_...)\"hierarchy\": \"%Sh\",           # \u041e\u0442\u043a\u0443\u0434\u0430 \u0432\u0437\u044f\u0442\u044b \u0434\u0430\u043d\u043d\u044b\u0435 (DEFAULT_PARENT, FIRST_PARENT, NONE)\"size_response\": \"%&lt;st\",      # \u0420\u0430\u0437\u043c\u0435\u0440 \u0442\u0435\u043b\u0430 \u043e\u0442\u0432\u0435\u0442\u0430, \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u043a\u043b\u0438\u0435\u043d\u0442\u0443 (\u0431\u0430\u0439\u0442\u044b)\"size_request\": \"%&gt;st\",       # \u0420\u0430\u0437\u043c\u0435\u0440 \u0442\u0435\u043b\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u043e\u0442 \u043a\u043b\u0438\u0435\u043d\u0442\u0430 (\u0431\u0430\u0439\u0442\u044b)\"size_total_traffic\": \"%st\",  # \u041e\u0431\u0449\u0438\u0439 \u0442\u0440\u0430\u0444\u0438\u043a \u0441\u0434\u0435\u043b\u043a\u0438 (\u0437\u0430\u043f\u0440\u043e\u0441 + \u043e\u0442\u0432\u0435\u0442)\"response_time_ms\": \"%tr\",    # \u041e\u0431\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 (\u043c\u0441)\"dns_time_ms\": \"%dt\",         # \u0412\u0440\u0435\u043c\u044f, \u0437\u0430\u0442\u0440\u0430\u0447\u0435\u043d\u043d\u043e\u0435 \u043d\u0430 DNS-\u0440\u0435\u0437\u043e\u043b\u0432\u0438\u043d\u0433 (\u043c\u0441)\"peer_time_ms\": \"%&lt;pt\",       # \u0412\u0440\u0435\u043c\u044f \u043e\u0442\u0432\u0435\u0442\u0430 \u043e\u0442 \u0432\u044b\u0448\u0435\u0441\u0442\u043e\u044f\u0449\u0435\u0433\u043e \u043f\u0440\u043e\u043a\u0441\u0438\/\u0441\u0435\u0440\u0432\u0435\u0440\u0430 (\u043c\u0441)\"forwarding_time_ms\": \"%&lt;tt\", # \u041e\u0431\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u0444\u043e\u0440\u0432\u0430\u0440\u0434\u0438\u043d\u0433\u0430 (\u0432\u043a\u043b\u044e\u0447\u0430\u044f DNS, ACL, retries)\"mime_type\": \"%mt\",           # MIME-\u0442\u0438\u043f \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430 (text\/html, image\/jpeg, application\/json)\"referer\": \"%{Referer}&gt;h\",    # \u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a Referer (\u043e\u0442\u043a\u0443\u0434\u0430 \u043f\u0440\u0438\u0448\u0435\u043b \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c)\"user_agent\": \"%{User-Agent}&gt;h\", # \u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a User-Agent (\u0431\u0440\u0430\u0443\u0437\u0435\u0440\/\u0431\u043e\u0442\/\u041e\u0421)\"content_range\": \"%&lt;sH\",      # \u0421\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u043a\u043e\u043d\u0446\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430 (\u0434\u043b\u044f \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430)\"upstream_obj_size\": \"%&lt;sS\",  # \u041f\u043e\u043b\u043d\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u043d\u0430 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0435 (\u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u043e\u0442\u0434\u0430\u043d\u0430 \u0447\u0430\u0441\u0442\u044c)\"req_attempts\": \"%[http::]request_attempts\", # \u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u043e\u043f\u044b\u0442\u043e\u043a \u043f\u0435\u0440\u0435\u0441\u044b\u043b\u043a\u0438 (\u0440\u0435\u0442\u0440\u0430\u0438)\"conn_id\": \"%transport::&gt;connection_id\",   # \u0423\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0439 ID \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u043e\u0433\u043e \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f (\u0434\u043b\u044f \u043a\u043e\u0440\u0440\u0435\u043b\u044f\u0446\u0438\u0438) # \u0427\u0442\u043e\u0431\u044b \u0441\u0432\u044f\u0437\u0430\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0438, \u043e\u0442\u043d\u043e\u0441\u044f\u0449\u0438\u0435\u0441\u044f \u043a \u043e\u0434\u043d\u043e\u043c\u0443 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u043c\u0443 TCP-\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044e (Keep-Alive)\"master_xid\": \"%master_xaction\",             # ID \u043c\u0430\u0441\u0442\u0435\u0440-\u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438 (\u043c\u043e\u043d\u043e\u0442\u043e\u043d\u043d\u044b\u0439 \u0441\u0447\u0435\u0442\u0447\u0438\u043a \u0432\u043d\u0443\u0442\u0440\u0438 \u0432\u043e\u0440\u043a\u0435\u0440\u0430) # \u0427\u0442\u043e\u0431\u044b \u0441\u0432\u044f\u0437\u0430\u0442\u044c \u0447\u0430\u0441\u0442\u0438 \u043e\u0434\u043d\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 (Range requests) \u0438\u043b\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u043e\u0434\u043d\u043e\u0439 \u0432\u043a\u043b\u0430\u0434\u043a\u0438 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430\"local_ip\": \"%&gt;la\",           # \u041b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0439 IP, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u043b\u0441\u044f \u043a\u043b\u0438\u0435\u043d\u0442 (\u0432\u0430\u0436\u043d\u043e \u043f\u0440\u0438 \u043c\u0443\u043b\u044c\u0442\u0438-IP)\"local_port\": \"%&gt;lp\",         # \u041b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u043e\u0440\u0442, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u043b\u0441\u044f \u043a\u043b\u0438\u0435\u043d\u0442\"server_ip\": \"%&lt;a\",           # IP \u0430\u0434\u0440\u0435\u0441\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f (\u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0445\u043e\u043f)\"server_fqdn\": \"%&lt;A\",         # FQDN \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0438\u043b\u0438 \u0438\u043c\u044f \u043f\u0438\u0440\u0430\"server_port\": \"%&lt;p\",         # \u041f\u043e\u0440\u0442 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\"QoS_value\": \"%&gt;qos\",         # \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 TOS\/DSCP \u043f\u0430\u043a\u0435\u0442\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0430 (Quality of Service)\"netfilter_mark\": \"%&gt;nfmark\", # Netfilter MARK \u043f\u0430\u043a\u0435\u0442\u0430 (\u0435\u0441\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u0441 iptables\/nftables)\"ssl_bump_mode\": \"%ssl::bump_mode\",       # \u0420\u0435\u0436\u0438\u043c SSL Bump (peek, bump, splice, stare, terminate)\"ssl_sni\": \"%ssl::&gt;sni\",                  # SNI (Server Name Indication) \u043e\u0442 \u043a\u043b\u0438\u0435\u043d\u0442\u0430\"ssl_client_subject\": \"%ssl::&gt;cert_subject\", # Subject \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0430 (\u0435\u0441\u043b\u0438 \u0435\u0441\u0442\u044c mTLS)\"ssl_client_issuer\": \"%ssl::&gt;cert_issuer\",   # Issuer \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0430\"ssl_server_subject\": \"%ssl::&lt;cert_subject\", # Subject \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\"ssl_server_issuer\": \"%ssl::&lt;cert_issuer\",   # Issuer \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\"ssl_cert_errors\": \"%ssl::&lt;cert_errors\",     # \u0421\u043f\u0438\u0441\u043e\u043a \u043e\u0448\u0438\u0431\u043e\u043a \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u0438 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0430\"ssl_tls_version\": \"%ssl::&gt;negotiated_version\", # \u0421\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f TLS (TLSv1.2, TLSv1.3)\"ssl_cipher\": \"%ssl::&gt;negotiated_cipher\",     # \u0421\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0448\u0438\u0444\u0440 (ECDHE-RSA-AES256-GCM-SHA384)\"ssl_client_hello_ver\": \"%ssl::&gt;received_hello_version\", # \u0412\u0435\u0440\u0441\u0438\u044f TLS \u0432 ClientHello\"ssl_max_supported_ver\": \"%ssl::&gt;received_supported_version\", # \u041c\u0430\u043a\u0441. \u0432\u0435\u0440\u0441\u0438\u044f TLS, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u0430\u044f \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u043c\"handshake_data\": \"%&gt;handshake\", # \u0421\u044b\u0440\u044b\u0435 \u0431\u0430\u0439\u0442\u044b \u0440\u0443\u043a\u043e\u043f\u043e\u0436\u0430\u0442\u0438\u044f (Base64), \u043f\u043e\u043b\u0435\u0437\u043d\u043e \u0434\u043b\u044f \u0434\u0435\u0442\u0435\u043a\u0446\u0438\u0438 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u043e\u0432\"error_code\": \"%err_code\",      # \u0412\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0439 \u043a\u043e\u0434 \u043e\u0448\u0438\u0431\u043a\u0438 Squid (\u0435\u0441\u043b\u0438 \u0437\u0430\u043f\u0440\u043e\u0441 \u043d\u0435 \u0443\u0441\u043f\u0435\u0448\u0435\u043d)\"error_detail\": \"%err_detail\",  # \u0414\u0435\u0442\u0430\u043b\u044c\u043d\u043e\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 (\u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u043e '+')\"busy_time_ns\": \"%busy_time\",   # \u0412\u0440\u0435\u043c\u044f CPU, \u0437\u0430\u0442\u0440\u0430\u0447\u0435\u043d\u043d\u043e\u0435 Squid \u043d\u0430 \u044d\u0442\u0443 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e (\u043d\u0441, \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u043e)\"adapt_total_ms\": \"%adapt::sum_trs\", # \u0421\u0443\u043c\u043c\u0430\u0440\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0440\u0430\u0431\u043e\u0442\u044b ICAP\/eCAP \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 (\u043c\u0441)\"adapt_times_list\": \"%adapt::all_trs\", # \u0421\u043f\u0438\u0441\u043e\u043a \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043a\u0430\u0436\u0434\u043e\u0433\u043e ICAP\/eCAP \u0432\u044b\u0437\u043e\u0432\u0430 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\"proxy_src_addr\": \"%{proxy_protocol::&gt;h{:src_addr}\", # \u0420\u0435\u0430\u043b\u044c\u043d\u044b\u0439 IP \u0438\u0437 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430 PROXY Protocol (\u0435\u0441\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0449\u0438\u043a)\"proxy_dst_addr\": \"%{proxy_protocol::&gt;h{:dst_addr}\", # \u0420\u0435\u0430\u043b\u044c\u043d\u044b\u0439 IP \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0438\u0437 PROXY Protocol\"note_annotation\": \"%note\",    # \u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438 (\u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435) \u043e\u0442 \u0430\u0434\u0430\u043f\u0442\u0435\u0440\u043e\u0432 \u0438\u043b\u0438 \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<\/div>\n<\/details>\n<pre><code class=\"bash\"># \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0444\u043e\u0440\u043c\u0430\u0442\u0430 \u043b\u043e\u0433\u0430logformat squid_json {\"datetime\":\"%tl{%Y-%m-%d} %tl{%H:%M:%S}\",\"client_ip\":\"%&gt;a\",\"client_port\":\"%&gt;p\",\"auth_user\":\"%ul\",\"http_method\":\"%rm\",\"url\":\"%ru\",\"http_version\":\"%rv\",\"http_status\":\"%&gt;Hs\",\"squid_status\":\"%Ss\",\"hierarchy\":\"%Sh\",\"size_response\":\"%&lt;st\",\"size_request\":\"%&gt;st\",\"mime_type\":\"%mt\",\"user_agent\":\"%{User-Agent}&gt;h\",\"conn_id\":\"%transport::&gt;connection_id\",\"master_xid\":\"%master_xaction\",\"server_ip\":\"%&lt;a\",\"server_fqdn\":\"%&lt;A\",\"server_port\":\"%&lt;p\",\"QoS_value\":\"%&gt;qos\",\"ssl_bump_mode\":\"%ssl::bump_mode\",\"ssl_sni\":\"%ssl::&gt;sni\",\"ssl_tls_version\":\"%ssl::&gt;negotiated_version\",\"ssl_cipher\":\"%ssl::&gt;negotiated_cipher\"}# \u0417\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u043a\u0430\u0436\u0434\u044b\u0439 \u0437\u0430\u043f\u0440\u043e\u0441, \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u043d\u044b\u0439 Squid, \u0432 \u0444\u0430\u0439\u043b access.log# C\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u0448\u0430\u0431\u043b\u043e\u043daccess_log stdio:\/opt\/squid\/var\/log\/squid\/access.log# \u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u043a\u0430\u0436\u0434\u044b\u0439 \u0437\u0430\u043f\u0440\u043e\u0441, \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u043d\u044b\u0439 Squid, \u0432 \u0444\u0430\u0439\u043b access.log# \u0428\u0430\u0431\u043b\u043e\u043d JSONaccess_log udp:\/\/10.0.0.41:5141 squid_json# \u0421\u043b\u0443\u0436\u0435\u0431\u043d\u044b\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f Squid \u043e\u0448\u0438\u0431\u043a\u0438, \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u044f, \u043e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044fcache_log stdio:\/opt\/squid\/var\/log\/squid\/cache.log<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<blockquote>\n<p>\u0415\u0441\u043b\u0438 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f SSL-Bump, \u0442\u043e \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043b\u044f \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u043f\u0443\u0441\u0442\u044b\u043c\u0438 \u0438\u043b\u0438 \u2018-\u2019<\/p>\n<\/blockquote>\n<hr\/>\n<p><a class=\"anchor\" name=\"6\" id=\"6\"><\/a><\/p>\n<h2>6) \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0444\u0438\u0447.<\/h2>\n<p><a class=\"anchor\" name=\"6.1\" id=\"6.1\"><\/a><\/p>\n<h4>6.1) \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f.<\/h4>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0423\u0440\u043e\u0432\u0435\u043d\u044c<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0413\u0434\u0435 \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0414\u043b\u044f \u0447\u0435\u0433\u043e<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>RAM-\u043a\u044d\u0448<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u0430\u044f \u043f\u0430\u043c\u044f\u0442\u044c<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0411\u044b\u0441\u0442\u0440\u044b\u0439 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u043c\/\u0447\u0430\u0441\u0442\u044b\u043c \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>cache_mem<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>\u0414\u0438\u0441\u043a\u043e\u0432\u044b\u0439 \u043a\u044d\u0448<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0416\u0451\u0441\u0442\u043a\u0438\u0439 \u0434\u0438\u0441\u043a\/SSD<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0425\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 (\u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438, \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f)<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>cache_dir<\/code><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<blockquote>\n<p>\u041e\u0431\u044a\u0435\u043a\u0442 \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u043e\u043f\u0430\u0434\u0430\u0435\u0442 \u0432 RAM \u2192 \u0435\u0441\u043b\u0438 \u0434\u043e\u043b\u0433\u043e \u043d\u0435 \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u2014 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0434\u0438\u0441\u043a \u2192 \u0435\u0441\u043b\u0438 \u043c\u0435\u0441\u0442\u043e \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u2014 \u0443\u0434\u0430\u043b\u044f\u0435\u0442\u0441\u044f<\/p>\n<\/blockquote>\n<pre><code># cache_mem &lt;\u043e\u0431\u044a\u0451\u043c&gt;# \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043e 1 \u0413\u0411 RAM \u0434\u043b\u044f \u043a\u044d\u0448\u0430cache_mem 1024 MB# \u041e\u0431\u044a\u0435\u043a\u0442\u044b \u2264 cache_mem \u2192 \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0432 RAM# \u041e\u0431\u044a\u0435\u043a\u0442\u044b &gt; cache_mem \u2192 \u0441\u0440\u0430\u0437\u0443 \u0438\u0434\u0443\u0442 \u043d\u0430 \u0434\u0438\u0441\u043a<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<pre><code class=\"bash\"># cache_dir &lt;\u0442\u0438\u043f&gt; &lt;\u043f\u0443\u0442\u044c&gt; &lt;\u0440\u0430\u0437\u043c\u0435\u0440_\u041c\u0411&gt; [L1] [L2]# - &lt;L1&gt; \u2014 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u0432 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f (\u043e\u0431\u044b\u0447\u043d\u043e 16) - \u0412 \u0441\u0442\u0430\u0440\u044b\u0445 Unix-\u0444\u0430\u0439\u043b\u043e\u0432\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445 (ext2, UFS) \u0431\u044b\u043b\u043e \u0436\u0451\u0441\u0442\u043a\u043e\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435: \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435 \u0444\u0430\u0439\u043b\u043e\u0432 \u0432 1 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0435# - &lt;L2&gt; \u2014 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u0432 \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f (\u043e\u0431\u044b\u0447\u043d\u043e 256) - #### \u041e\u0434\u0438\u043d \u043a\u044d\u0448 \u043d\u0430 SSD (\u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f)# Squid \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0435\u0442 \u0432\u0441\u0435 cache_dir \u043a\u0430\u043a \u0435\u0434\u0438\u043d\u043e\u0435 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f# Rock \u2014 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0439 \u0434\u0432\u0438\u0436\u043e\u043a \u0434\u043b\u044f SSD\/NVMecache_dir rock \/opt\/squid\/var\/cache\/rock1 20000  # 20 \u0413\u0411<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<details class=\"spoiler\">\n<summary>\u041f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0435 squid.conf<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"bash\"># ACL \u0434\u043b\u044f \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0439acl ubuntu dstdomain .archive.ubuntu.comacl security_ubuntu dstdomain security.ubuntu.comacl windows_update dstdomain .windowsupdate.com .update.microsoft.com# \u041a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0422\u041e\u041b\u042c\u041a\u041e \u044d\u0442\u0438 \u0434\u043e\u043c\u0435\u043d\u044bcache allow ubuntucache allow security_ubuntucache allow windows_updatecache deny all############# ACL \u0434\u043b\u044f \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0445 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432acl intranet dstdomain .dd.local .yourcompany.local# \u0417\u0430\u043f\u0440\u0435\u0442\u0438\u0442\u044c \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0445 \u0441\u0430\u0439\u0442\u043e\u0432cache deny intranet# \u0420\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0432\u0441\u0435\u0433\u043e \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0433\u043ecache allow all############### \u041a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438 \u0438 CSS# ACL \u0434\u043b\u044f \u0441\u0442\u0430\u0442\u0438\u043a\u0438acl static_content urlpath_regex -i \\.(jpg|jpeg|png|gif|css|js)$# \u041a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u0442\u0430\u0442\u0438\u043a\u0443cache allow static_contentcache deny all############### \u0420\u0430\u0437\u043d\u044b\u0435 \u043a\u044d\u0448\u0438 \u0434\u043b\u044f \u0440\u0430\u0437\u043d\u044b\u0445 \u0441\u0435\u0442\u0435\u0439# \u0421\u0435\u0442\u0438acl office src 10.0.1.0\/24acl warehouse src 10.0.2.0\/24# Office: \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u0451cache allow office# Warehouse: \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044facl updates dstdomain .windowsupdate.comcache allow warehouse updates# \u041e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0435 \u2014 \u043d\u0435 \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u0442\u044ccache deny all<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b:<\/p>\n<pre><code class=\"bash\">### \u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0432 \u043a\u044d\u0448\u0435# \u041d\u0435 \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0444\u0430\u0439\u043b\u044b \u0431\u043e\u043b\u044c\u0448\u0435 100 \u041c\u0411maximum_object_size 100 MB# \u041c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 (\u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e 0)minimum_object_size 0 KB### \u0412\u0440\u0435\u043c\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432# \u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u041e\u0421 \u2014 \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0434\u043e\u043b\u044c\u0448\u0435refresh_pattern -i \\.(deb|rpm|msi|exe)$ 10080 90% 43200 override-expire# \u041e\u0431\u044b\u0447\u043d\u044b\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u2014 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044frefresh_pattern . 0 20% 4320<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<\/div>\n<\/details>\n<p><a class=\"anchor\" name=\"6.2\" id=\"6.2\"><\/a><\/p>\n<h4>6.2) \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438.<\/h4>\n<blockquote>\n<p>\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0432\u044b \u0437\u0430\u0445\u043e\u0442\u0438\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0433\u0440\u0443\u043f\u043f\u044b AD \u0434\u043b\u044f \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438, \u043d\u043e \u043a\u0430\u043a \u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u0430\u044f \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f, \u0434\u0438\u0440\u0435\u043a\u0442\u0438\u0432\u0430 <a href=\"https:\/\/www.squid-cache.org\/Versions\/v7\/cfgman\/delay_class.html#:~:text=This%20clause%20only%20supports%20fast%20acl%20types.\" rel=\"noopener noreferrer nofollow\">delay_class <\/a> \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0441 acl \u0442\u0438\u043f\u0430 \u201cfast\u201d.<\/p>\n<\/blockquote>\n<blockquote>\n<p>\u0415\u0441\u043b\u0438 \u0432\u044b \u0437\u043d\u0430\u0435\u0442\u0435 \u0441\u043f\u043e\u0441\u043e\u0431 \u043e\u0431\u043e\u0439\u0442\u0438 \u044d\u0442\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435, \u043f\u0440\u043e\u0448\u0443 \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043a\u0430\u043a\u2026 \u041f\u0440\u043e\u0431\u043e\u0432\u0430\u043b \u0442\u0430\u043a \u0436\u0435 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0441 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e header \u0434\u043b\u044f \u0433\u0440\u0443\u043f\u043f\u044b, \u0438 \u043f\u043e\u0441\u043b\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0442\u044c \u0432 \u043f\u0443\u043b \u043f\u043e \u043d\u0430\u043b\u0438\u0447\u0438\u044e \u044d\u0442\u043e\u0433\u043e \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430 header, \u043d\u043e \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0441\u044f \u0441 \u043e\u0448\u0438\u0431\u043a\u043e\u0439 (\u0443\u0432\u044b, \u0443\u0436\u0435 \u043d\u0435 \u0432\u0441\u043f\u043e\u043c\u043d\u044e \u0441 \u043a\u0430\u043a\u043b\u0439 \u0438\u043c\u0435\u043d\u043d\u043e)<\/p>\n<\/blockquote>\n<blockquote>\n<p>\u0412 Squid <code>delay_parameters<\/code> \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0432 <strong>\u0431\u0430\u0439\u0442\u0430\u0445 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443<\/strong>, \u0430 \u043d\u0435 \u0432 \u0431\u0438\u0442\u0430\u0445.<\/p>\n<\/blockquote>\n<pre><code class=\"bash\"># \u0424\u043e\u0440\u043c\u0443\u043b\u0430: \u041c\u0431\u0438\u0442\/\u0441 \u2192 \u0431\u0430\u0439\u0442\u044b\/\u0441\u0435\u043a# (\u041c\u0431\u0438\u0442 \u00d7 1_000_000) \u00f7 8 = \u0431\u0430\u0439\u0442\u044b\/\u0441\u0435\u043a# \u041f\u0440\u0438\u043c\u0435\u0440\u044b:# 10 \u041c\u0431\u0438\u0442\/\u0441  \u2192 (10 \u00d7 1_000_000) \u00f7 8 = 1_250_000 \u0431\u0430\u0439\u0442\/\u0441\u0435\u043a# 50 \u041c\u0431\u0438\u0442\/\u0441  \u2192 (50 \u00d7 1_000_000) \u00f7 8 = 6_250_000 \u0431\u0430\u0439\u0442\/\u0441\u0435\u043a# 100 \u041c\u0431\u0438\u0442\/\u0441 \u2192 (100 \u00d7 1_000_000) \u00f7 8 = 12_500_000 \u0431\u0430\u0439\u0442\/\u0441\u0435\u043a# 1 \u0413\u0431\u0438\u0442\/\u0441   \u2192 (1000 \u00d7 1_000_000) \u00f7 8 = 125_000_000 \u0431\u0430\u0439\u0442\/\u0441\u0435\u043a<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<blockquote>\n<p>Squid \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u043f\u0443\u043b\u044b \u043f\u043e \u043f\u043e\u0440\u044f\u0434\u043a\u0443 \u043d\u043e\u043c\u0435\u0440\u043e\u0432 (\u0441\u043d\u0430\u0447\u0430\u043b\u0430 1, \u043f\u043e\u0442\u043e\u043c 2). \u041f\u0435\u0440\u0432\u044b\u0439 \u043f\u0443\u043b, \u0433\u0434\u0435 \u0437\u0430\u043f\u0440\u043e\u0441 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 <code>allow<\/code>, \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f. \u0415\u0441\u043b\u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 <code>deny<\/code> \u2014 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442 \u043a \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c\u0443 \u043f\u0443\u043b\u0443<\/p>\n<\/blockquote>\n<pre><code class=\"bash\"># \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u041f\u0443\u043b 1delay_access 1 deny politics_Squid_InternetAccess_speed-full  # \u0413\u0440\u0443\u043f\u043f\u0435 \u0417\u0410\u041f\u0420\u0415\u0429\u0415\u041d \u041f\u0443\u043b 1delay_access 1 allow all                                      # \u041e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u043c \u0420\u0410\u0417\u0420\u0415\u0428\u0401\u041d \u041f\u0443\u043b 1# \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u041f\u0443\u043b 2 (\u0435\u0441\u043b\u0438 \u043d\u0435 \u043f\u043e\u043f\u0430\u043b\u0438 \u0432 \u041f\u0443\u043b 1)delay_access 2 allow politics_Squid_InternetAccess_speed-full # \u0413\u0440\u0443\u043f\u043f\u0435 \u0420\u0410\u0417\u0420\u0415\u0428\u0401\u041d \u041f\u0443\u043b 2# (\u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u043c \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u041f\u0443\u043b\u0443 2 \u043d\u0435\u044f\u0432\u043d\u043e \u0437\u0430\u043f\u0440\u0435\u0449\u0451\u043d)<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<details class=\"spoiler\">\n<summary>\u041d\u0435\u043c\u043d\u043e\u0433\u043e \u0442\u0435\u043e\u0440\u0438\u0438 \u043f\u0440\u043e \u043a\u043b\u0430\u0441\u0441\u044b delay<\/summary>\n<div class=\"spoiler__content\">\n<h2>\u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u201cToken Bucket\u201d (\u0432\u0435\u0434\u0440\u043e \u0441 \u0442\u043e\u043a\u0435\u043d\u0430\u043c\u0438)<\/h2>\n<p>Squid \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c, \u0433\u0434\u0435 \u201c\u0431\u0430\u0439\u0442\u044b\u201d \u2014 \u044d\u0442\u043e \u201c\u0442\u043e\u043a\u0435\u043d\u044b\u201d, \u043a\u043e\u0442\u043e\u0440\u044b\u0435:<\/p>\n<ul>\n<li>\n<p><strong>\u041d\u0430\u043a\u0430\u043f\u043b\u0438\u0432\u0430\u044e\u0442\u0441\u044f<\/strong> \u0432 \u201c\u0432\u0435\u0434\u0440\u0435\u201d \u0434\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430 <code>\u043c\u0430\u043a\u0441<\/code> (burst)<\/p>\n<\/li>\n<li>\n<p><strong>\u0422\u0440\u0430\u0442\u044f\u0442\u0441\u044f<\/strong> \u043f\u0440\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0435 \u0434\u0430\u043d\u043d\u044b\u0445<\/p>\n<\/li>\n<li>\n<p><strong>\u041f\u043e\u043f\u043e\u043b\u043d\u044f\u044e\u0442\u0441\u044f<\/strong> \u0441\u043e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c\u044e <code>\u0432\u043e\u0441\u0441\u0442<\/code> (\u0431\u0430\u0439\u0442\/\u0441\u0435\u043a)<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"bash\">delay_parameters &lt;\u043f\u0443\u043b&gt; &lt;aggregate_max\/aggregate_restore&gt; &lt;individual_max\/individual_restore&gt;# aggregate_max - \u041e\u0431\u0449\u0438\u0439 \"\u0431\u0443\u0441\u0442\" \u043d\u0430 \u0432\u0441\u0435\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 (3750000) # aggregate_restore - \u041e\u0431\u0449\u0430\u044f \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043d\u0430\u044f \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c \u043f\u0443\u043b\u0430 (~30 \u041c\u0431\u0438\u0442\/\u0441) (3750000)# individual_max - \u041c\u0430\u043a\u0441. \"\u0431\u0443\u0441\u0442\" \u0434\u043b\u044f \u043e\u0434\u043d\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f (640000)# **individual_restore - \u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0434\u043b\u044f \u043e\u0434\u043d\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f (~5.12 \u041c\u0431\u0438\u0442\/\u0441) (640000)<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p><a href=\"https:\/\/www.squid-cache.org\/Versions\/v7\/cfgman\/delay_parameters.html\" rel=\"noopener noreferrer nofollow\">\u0411\u043e\u043b\u044c\u0448\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043f\u043e \u043a\u043b\u0430\u0441\u0441\u0430\u043c delay \u0432 \u043e\u0444. \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438<\/a><\/p>\n<h3>delay_class &#8212; Class 1<\/h3>\n<blockquote>\n<p><strong>delay_class 1<\/strong> &#8212; <strong>\u043e\u0434\u043d\u043e \u043e\u0431\u0449\u0435\u0435 \u0432\u0435\u0434\u0440\u043e \u043d\u0430 \u0432\u0441\u0435\u0445<\/strong>.<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">delay_pools 1delay_class 1 1                     # \u041f\u0443\u043b \u21161 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 Class 1delay_access 1 allow all            # \u041f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u043a\u043e \u0432\u0441\u0435\u043c \u043a\u043b\u0438\u0435\u043d\u0442\u0430\u043cdelay_parameters 1 3750000\/3750000  # \u0422\u043e\u043b\u044c\u043a\u043e \u043e\u0431\u0449\u0438\u0439 \u043b\u0438\u043c\u0438\u0442<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<ol>\n<li>\n<p><strong>\u0412\u0441\u0435 \u043a\u043b\u0438\u0435\u043d\u0442\u044b \u0434\u0435\u043b\u044f\u0442 \u043e\u0434\u043d\u043e \u0432\u0435\u0434\u0440\u043e<\/strong>.<\/p>\n<\/li>\n<li>\n<p>\u041a\u043e\u0433\u0434\u0430 \u043b\u044e\u0431\u043e\u0439 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043f\u0435\u0440\u0435\u0434\u0430\u0451\u0442 \u0434\u0430\u043d\u043d\u044b\u0435 \u2014 \u0442\u043e\u043a\u0435\u043d\u044b \u0441\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0438\u0437 <strong>\u043e\u0431\u0449\u0435\u0433\u043e \u043f\u0443\u043b\u0430<\/strong>.<\/p>\n<\/li>\n<li>\n<p>\u0415\u0441\u043b\u0438 \u0432\u0435\u0434\u0440\u043e \u043f\u0443\u0441\u0442\u043e \u2014 <strong>\u0432\u0441\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u0436\u0434\u0443\u0442<\/strong>, \u043f\u043e\u043a\u0430 \u043e\u043d\u043e \u043d\u0435 \u043f\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0441\u044f.<\/p>\n<\/li>\n<li>\n<p>\u041d\u0435\u0442 \u043f\u043e\u043d\u044f\u0442\u0438\u044f \u201c\u043c\u043e\u0439 \u043b\u0438\u0447\u043d\u044b\u0439 \u043b\u0438\u043c\u0438\u0442\u201d \u2014 \u0442\u043e\u043b\u044c\u043a\u043e \u201c\u043d\u0430\u0448 \u043e\u0431\u0449\u0438\u0439 \u043b\u0438\u043c\u0438\u0442\u201d.<\/p>\n<\/li>\n<\/ol>\n<h3>delay_class &#8212; Class 2<\/h3>\n<blockquote>\n<p><strong>delay_class 2<\/strong> &#8212; \u0434\u0432\u0443\u0445\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u043e\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435: <strong>\u043e\u0431\u0449\u0438\u0439 \u043f\u0443\u043b + \u0438\u043d\u0434\u0438\u0432\u0438\u0434\u0443\u0430\u043b\u044c\u043d\u044b\u0435 \u043b\u0438\u043c\u0438\u0442\u044b<\/strong><\/p>\n<\/blockquote>\n<p>\u0421\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 \u0434\u043b\u044f Class 2<\/p>\n<pre><code class=\"bash\">delay_class &lt;\u043f\u0443\u043b&gt; 2delay_parameters 1 3750000\/3750000 640000\/640000# \u0423\u043c\u043d\u043e\u0436\u0430\u0435\u043c \u043d\u0430 8, \u0447\u0442\u043e\u0431\u044b \u043f\u0435\u0440\u0435\u0432\u0435\u0441\u0442\u0438 \u0431\u0430\u0439\u0442\u044b \u0432 \u0431\u0438\u0442\u044b.<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041f\u0440\u0430\u0432\u0438\u043b\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0434\u0430\u043d\u043d\u044b\u0445:<\/p>\n<ol>\n<li>\n<p>\u041a\u043e\u0433\u0434\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0435, Squid \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 <strong>\u043e\u0431\u0430<\/strong> \u0432\u0435\u0434\u0440\u0430: <\/p>\n<ul>\n<li>\n<p>\u0415\u0441\u0442\u044c \u043b\u0438 \u0442\u043e\u043a\u0435\u043d\u044b \u0432 <strong>\u0435\u0433\u043e \u0438\u043d\u0434\u0438\u0432\u0438\u0434\u0443\u0430\u043b\u044c\u043d\u043e\u043c<\/strong> \u0432\u0435\u0434\u0440\u0435?<\/p>\n<\/li>\n<li>\n<p>\u0415\u0441\u0442\u044c \u043b\u0438 \u0442\u043e\u043a\u0435\u043d\u044b \u0432 <strong>\u043e\u0431\u0449\u0435\u043c<\/strong> \u0432\u0435\u0434\u0440\u0435 \u043f\u0443\u043b\u0430?<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u0415\u0441\u043b\u0438 <strong>\u0445\u043e\u0442\u044f \u0431\u044b \u043e\u0434\u043d\u043e \u0432\u0435\u0434\u0440\u043e \u043f\u0443\u0441\u0442\u043e<\/strong> \u2192 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 \u043f\u0440\u0438\u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0434\u043e \u043f\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f.<\/p>\n<\/li>\n<li>\n<p>\u0422\u043e\u043a\u0435\u043d\u044b \u0441\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442\u0441\u044f <strong>\u0438\u0437 \u043e\u0431\u043e\u0438\u0445 \u0432\u0451\u0434\u0435\u0440 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e<\/strong>.<\/p>\n<\/li>\n<\/ol>\n<pre><code class=\"bash\"># \u041e\u0434\u0438\u043d \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0410 \u043a\u0430\u0447\u0430\u0435\u0442 \u0444\u0430\u0439\u043b\u2192 \u0422\u0440\u0430\u0442\u0438\u0442 \u0438\u0437 \u0441\u0432\u043e\u0435\u0433\u043e individual (640 \u041a\u0411\/\u0441\u0435\u043a) \u2192 \u0418 \u0438\u0437 aggregate (3.75 \u041c\u0411\/\u0441\u0435\u043a)\u2192 \u0424\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c: ~5 \u041c\u0431\u0438\u0442\/\u0441\u0435\u043a (\u043b\u0438\u043c\u0438\u0442 individual)# \u041f\u044f\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u041a\u0430\u0436\u0434\u044b\u0439 \u0445\u043e\u0447\u0435\u0442 5 \u041c\u0431\u0438\u0442\/\u0441 \u2192 \u0441\u0443\u043c\u043c\u0430 25 \u041c\u0431\u0438\u0442\/\u0441\u2192 Aggregate \u043b\u0438\u043c\u0438\u0442: 30 \u041c\u0431\u0438\u0442\/\u0441 \u2192 \u0432\u0441\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u044e\u0442 ~5 \u041c\u0431\u0438\u0442\/\u0441\u041d\u043e \u0435\u0441\u043b\u0438 7 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439:\u2192 7 \u00d7 5 = 35 \u041c\u0431\u0438\u0442\/\u0441 &gt; 30 \u041c\u0431\u0438\u0442\/\u0441 (aggregate)\u2192 \u041d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \"\u0434\u0435\u043b\u0435\u0436\u043a\u0430\": \u043a\u0430\u0436\u0434\u044b\u0439 \u043f\u043e\u043b\u0443\u0447\u0438\u0442 ~4.3 \u041c\u0431\u0438\u0442\/\u0441# \u041a\u043e\u0440\u043e\u0442\u043a\u0438\u0439 \u0432\u0441\u043f\u043b\u0435\u0441\u043a (burst)\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0443:\u2192 \u041c\u043e\u0436\u0435\u0442 \u043c\u0433\u043d\u043e\u0432\u0435\u043d\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043e 640 \u041a\u0411 \u0438\u0437 \u0438\u043d\u0434\u0438\u0432\u0438\u0434\u0443\u0430\u043b\u044c\u043d\u043e\u0433\u043e \"\u0431\u0430\u043a\u0430\"\u2192 \u0418 \u0434\u043e 3.75 \u041c\u0411 \u0438\u0437 \u043e\u0431\u0449\u0435\u0433\u043e \"\u0431\u0430\u043a\u0430\"\u2192 \u041f\u043e\u0441\u043b\u0435 \u0438\u0441\u0447\u0435\u0440\u043f\u0430\u043d\u0438\u044f \u2014 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<h4>\u0415\u0441\u043b\u0438 \u0445\u043e\u0442\u0438\u0442\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e \u0438\u043d\u0434\u0438\u0432\u0438\u0434\u0443\u0443\u043c\u0443<\/h4>\n<pre><code class=\"bash\"># \u041e\u0431\u0449\u0438\u0439 \u043f\u0443\u043b \u0434\u0435\u043b\u0430\u0435\u043c \"\u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u044b\u043c\" (\u043e\u0447\u0435\u043d\u044c \u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435)delay_parameters 1 -1\/-1 640000\/640000# -1 = \u0431\u0435\u0437 \u043b\u0438\u043c\u0438\u0442\u0430 (\u0442\u043e\u043b\u044c\u043a\u043e individual). \u043e\u0442\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u043b\u0438\u043c\u0438\u0442 \u0434\u043b\u044f \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0433\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430.<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<h3>delay_class &#8212; Class 3<\/h3>\n<p><strong>Class 3<\/strong> \u2014 \u044d\u0442\u043e \u0441\u0430\u043c\u044b\u0439 \u0433\u0438\u0431\u043a\u0438\u0439 \u0438 \u0441\u043b\u043e\u0436\u043d\u044b\u0439 \u0442\u0438\u043f. \u041e\u043d \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u0435\u0442 \u043b\u043e\u0433\u0438\u043a\u0443 Class 1 \u0438 Class 2, \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044f <strong>\u0442\u0440\u0435\u0442\u0438\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0439<\/strong>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0431\u044b\u0447\u043d\u043e \u043f\u0440\u0438\u0432\u044f\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043a <strong>\u0441\u0435\u0442\u0435\u0432\u044b\u043c \u043f\u043e\u0434\u0441\u0435\u0442\u044f\u043c (CIDR)<\/strong>.<\/p>\n<p>\u042d\u0442\u043e \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 \u0434\u043b\u044f \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u043e\u0432 \u0438\u043b\u0438 \u043a\u0440\u0443\u043f\u043d\u044b\u0445 \u043e\u0444\u0438\u0441\u043e\u0432, \u0433\u0434\u0435 \u043d\u0443\u0436\u043d\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u0442\u044c:<\/p>\n<ol>\n<li>\n<p>\u0412\u0435\u0441\u044c \u043a\u0430\u043d\u0430\u043b \u0446\u0435\u043b\u0438\u043a\u043e\u043c.<\/p>\n<\/li>\n<li>\n<p>\u041e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u0430\u043d\u0430\u043b\u0430.<\/p>\n<\/li>\n<li>\n<p>\u0426\u0435\u043b\u044b\u0435 \u043e\u0442\u0434\u0435\u043b\u044b\/\u043f\u043e\u0434\u0441\u0435\u0442\u0438 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u201c\u0411\u0443\u0445\u0433\u0430\u043b\u0442\u0435\u0440\u0438\u044f\u201d \u0438\u043b\u0438 \u201c\u0413\u043e\u0441\u0442\u0435\u0432\u043e\u0439 Wi-Fi\u201d).<\/p>\n<\/li>\n<\/ol>\n<pre><code class=\"bash\">delay_class &lt;\u043f\u0443\u043b&gt; 3delay_parameters &lt;\u043f\u0443\u043b&gt; &lt;net_max\/net_restore&gt; &lt;individual_max\/individual_restore&gt; &lt;connection_max\/connection_restore&gt;<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0412 \u0432\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0442\u0430\u043a:<\/p>\n<ol>\n<li>\n<p><strong>Network (\u0421\u0435\u0442\u044c\/\u041f\u043e\u0434\u0441\u0435\u0442\u044c)<\/strong> \u2014 \u043b\u0438\u043c\u0438\u0442 \u0434\u043b\u044f \u0433\u0440\u0443\u043f\u043f\u044b IP-\u0430\u0434\u0440\u0435\u0441\u043e\u0432 (\u043f\u043e\u0434\u0441\u0435\u0442\u0438).<\/p>\n<\/li>\n<li>\n<p><strong>Individual (\u0418\u043d\u0434\u0438\u0432\u0438\u0434\u0443\u0430\u043b\u044c\u043d\u044b\u0439)<\/strong> \u2014 \u043b\u0438\u043c\u0438\u0442 \u0434\u043b\u044f \u043e\u0434\u043d\u043e\u0433\u043e IP\/\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f.<\/p>\n<\/li>\n<li>\n<p><strong>Connection (\u0421\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435)<\/strong> \u2014 <em>\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435: \u0412 \u0441\u0442\u0430\u0440\u044b\u0445 \u0432\u0435\u0440\u0441\u0438\u044f\u0445 Squid \u0442\u0440\u0435\u0442\u0438\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u043c\u043e\u0433 \u043d\u0430\u0437\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u0438\u043d\u0430\u0447\u0435, \u043d\u043e \u0432 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 Class 3 \u043e\u0431\u044b\u0447\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443: <\/em><code><em>Network \/ Individual \/ Connection<\/em><\/code><em> \u0438\u043b\u0438 <\/em><code><em>Aggregate \/ Network \/ Individual<\/em><\/code><em> \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0432\u0435\u0440\u0441\u0438\u0438 \u0438 \u043f\u0430\u0442\u0447\u0435\u0439. \u041e\u0434\u043d\u0430\u043a\u043e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0430\u044f \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f Squid \u0434\u043b\u044f Class 3 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u0442\u0440\u0438 \u0443\u0440\u043e\u0432\u043d\u044f:<\/em><\/p>\n<\/li>\n<\/ol>\n<h4>\u041f\u0440\u0438\u043c\u0435\u0440 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438:<\/h4>\n<pre><code class=\"bash\">delay_pools 1delay_class 1 3delay_access 1 allow all# \u041b\u0438\u043c\u0438\u0442\u044b:# 1. \u0414\u043b\u044f \u0432\u0441\u0435\u0439 \u043f\u043e\u0434\u0441\u0435\u0442\u0438 (Network): 10 \u041c\u0431\u0438\u0442\/\u0441# 2. \u0414\u043b\u044f \u043e\u0434\u043d\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f (Individual): 2 \u041c\u0431\u0438\u0442\/\u0441# 3. \u0414\u043b\u044f \u043e\u0434\u043d\u043e\u0433\u043e \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f (Connection): 500 \u041a\u0431\u0438\u0442\/\u0441delay_parameters 1 1250000\/1250000 250000\/250000 62500\/62500<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<\/div>\n<\/details>\n<hr\/>\n<p><a class=\"anchor\" name=\"7\" id=\"7\"><\/a><\/p>\n<h2>7) \u041f\u0440\u0438\u043c\u0435\u0440 \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u043f\u043e\u043b\u043d\u043e\u0433\u043e \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430.<\/h2>\n<ul>\n<li>\n<p>\u0410\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 Kerberos + LDAP<\/p>\n<\/li>\n<li>\n<p>\u0421\u043f\u0438\u0441\u043a\u0438 \u0437\u0430\u043f\u0440\u0435\u0449\u0435\u043d\u043d\u044b\u0445 \u0441\u0430\u0439\u0442\u043e\u0432<\/p>\n<\/li>\n<li>\n<p>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043b\u043e\u0433\u0430, \u043a\u044d\u0448\u0430<\/p>\n<\/li>\n<li>\n<p>\u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 (3 \u043f\u0443\u043b\u0430)<\/p>\n<\/li>\n<li>\n<p>SSL-Bump<\/p>\n<\/li>\n<li>\n<p>Log format JSON<\/p>\n<\/li>\n<li>\n<p>Log \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 \u043d\u0430 Graylog<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"bash\">################################################################################## Squid \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u0432\u0435\u0440\u0445\u0443 \u0432\u043d\u0438\u0437 ############               \u041f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0432\u043e\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u043e\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u043e             ##################################################################################visible_hostname testproxy.DOMAIN.RU     # \u0438\u043c\u044f \u0445\u043e\u0441\u0442\u0430, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 Squid \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432 HTTP-\u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430\u0445, \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430\u0445 \u043e\u0448\u0438\u0431\u043e\u043a, \u043f\u0440\u0438 \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 (\u0432 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0444\u043e\u0440\u043c\u0430\u0442\u0430\u0445 \u043b\u043e\u0433\u0430)httpd_suppress_version_string on            # \u041e\u0442\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0432\u0435\u0440\u0441\u0438\u0438 Squid HTTP-\u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430\u0445, \u0421\u0442\u0440\u0430\u043d\u0438\u0446\u0430\u0445 \u043e\u0448\u0438\u0431\u043e\u043acache_effective_user proxy                  # \u041e\u0442 \u043a\u0430\u043a\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f Squid \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430############################################################################# SSL-Bump# \u041f\u0440\u043e\u0441\u043b\u0443\u0448\u0438\u0432\u0430\u0435\u043c\u044b\u0439 \u043f\u043e\u0440\u0442http_port 3128 ssl-bump cert=\/opt\/squid\/etc\/ssl\/squid_ca.pem generate-host-certificates=on dynamic_cert_mem_cache_size=4MB# \u042d\u0442\u0430\u043f\u044b \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 SSLacl step1 at_step SslBump1acl step2 at_step SslBump2acl step3 at_step SslBump3# \u041f\u043e\u043b\u0438\u0442\u0438\u043a\u0430 \u0434\u043e\u043c\u0435\u043d\u043e\u0432 \u0431\u0435\u0437 SSL-\u0438\u043d\u0441\u043f\u0435\u043a\u0446\u0438\u0438acl politics_sites_no-inspection dstdomain \"\/opt\/squid\/etc\/sites_no-inspection\"# \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u043d\u0430 \u043e\u0448\u0438\u0431\u043a\u0438 (\u0438\u0441\u0442\u0435\u043a, \u0441\u0430\u043c\u043e\u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439, \u0438\u043c\u044f \u043d\u0435 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0435\u0442 \u0438 \u0442.\u0434.)# \u0421\u043e\u0437\u0434\u0430\u0435\u043c ACL, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438\u0441\u0442\u0438\u043d\u0435\u043d, \u0435\u0441\u043b\u0438 \u0435\u0441\u0442\u044c \u041b\u042e\u0411\u0410\u042f \u0438\u0437 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u0445 \u043e\u0448\u0438\u0431\u043e\u043a# Squid \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u0435\u0442 \u0441\u0442\u0440\u043e\u043a\u0438 \u0441 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u043c \u0438\u043c\u0435\u043d\u0435\u043c acl \u043f\u043e ORacl politics_bad_certs ssl_error certHasExpired         # \u0421\u0440\u043e\u043a \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430 \u0438\u0441\u0442\u0435\u043a ERR_CERT_DATE_INVALIDacl politics_bad_certs ssl_error certNotYetValid        # \u0421\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u0435\u0449\u0435 \u043d\u0435 \u043d\u0430\u0447\u0430\u043b \u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044cacl politics_bad_certs ssl_error certUntrusted          # \u0418\u0437\u0434\u0430\u0442\u0435\u043b\u044c \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430 (Certificate Authority, CA) \u043d\u0435 \u0434\u043e\u0432\u0435\u0440\u044f\u0435\u0442\u0441\u044f Squid'\u043e\u043cacl politics_bad_certs ssl_error certSelfSigned         # \u0421\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043d \u0441\u0430\u043c\u0438\u043c \u0436\u0435 \u0432\u043b\u0430\u0434\u0435\u043b\u044c\u0446\u0435\u043c \u0441\u0430\u0439\u0442\u0430, \u0430 \u043d\u0435 \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u044b\u043c \u0446\u0435\u043d\u0442\u0440\u043e\u043cacl politics_bad_certs ssl_error certDomainMismatch     # \u0418\u043c\u044f \u0434\u043e\u043c\u0435\u043d\u0430, \u043a \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0442\u044b \u043e\u0431\u0440\u0430\u0449\u0430\u0435\u0448\u044c\u0441\u044f, \u043d\u0435 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0435\u0442 \u0441 \u0438\u043c\u0435\u043d\u0435\u043c, \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u043c \u0432 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0435# \u041f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0431\u0435\u0437 SSL-\u0438\u043d\u0441\u043f\u0435\u043a\u0446\u0438\u0438 SNI \u0438\u0437 \u0441\u043f\u0438\u0441\u043a\u0430ssl_bump splice step1 politics_sites_no-inspection# \u0421\u043c\u043e\u0442\u0440\u0438\u043c SNI \u0438 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043a \u0448\u0430\u0433\u0443 2, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u0441\u0435\u0440\u0432\u0435\u0440\u0430.ssl_bump peek step1# \u0422\u0435\u043f\u0435\u0440\u044c \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u0441\u0435\u0440\u0432\u0435\u0440\u0430. \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u0435\u0433\u043e \u0432\u0430\u043b\u0438\u0434\u043d\u043e\u0441\u0442\u044c.# \u0415\u0441\u043b\u0438 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u043f\u043b\u043e\u0445\u043e\u0439 -&gt; \u0440\u0432\u0435\u043c \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435.ssl_bump terminate step2 politics_bad_certs# \u0432\u0441\u043a\u0440\u044b\u0432\u0430\u0435\u043c (bump) \u0432\u0441\u0435 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044fssl_bump bump step2# \u041f\u0440\u043e\u0441\u0442\u043e \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u043c \u0440\u0430\u0431\u043e\u0442\u0443ssl_bump splice step3# \u0413\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0432sslcrtd_program \/opt\/squid\/libexec\/security_file_certgen -s \/opt\/squid\/var\/lib\/ssl_db -M 4MB############################################################################# \u041b\u041e\u0413\u0418# \u0418\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u044b \u0441\u0435\u0440\u0432\u0435\u0440\u0430 # \u041a\u043e\u0434\u044b \u043e\u0448\u0438\u0431\u043e\u043aerror_directory \/opt\/squid\/share\/errors\/en# \u041e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0441\u0431\u043e\u0440 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0438 \u0441\u0435\u0442\u0435\u0432\u044b\u0445 \u0437\u0430\u0434\u0435\u0440\u0436\u0435\u043a (\u0444\u0430\u0439\u043b ...squid\/netdb.state)netdb_low 0netdb_high 0# \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0444\u043e\u0440\u043c\u0430\u0442\u0430 \u043b\u043e\u0433\u0430logformat squid_json {\"datetime\":\"%tl{%Y-%m-%d} %tl{%H:%M:%S}\",\"client_ip\":\"%&gt;a\",\"client_port\":\"%&gt;p\",\"auth_user\":\"%ul\",\"http_method\":\"%rm\",\"url\":\"%ru\",\"http_version\":\"%rv\",\"http_status\":\"%&gt;Hs\",\"squid_status\":\"%Ss\",\"hierarchy\":\"%Sh\",\"size_response\":\"%&lt;st\",\"size_request\":\"%&gt;st\",\"mime_type\":\"%mt\",\"user_agent\":\"%{User-Agent}&gt;h\",\"conn_id\":\"%transport::&gt;connection_id\",\"master_xid\":\"%master_xaction\",\"server_ip\":\"%&lt;a\",\"server_fqdn\":\"%&lt;A\",\"server_port\":\"%&lt;p\",\"QoS_value\":\"%&gt;qos\",\"ssl_bump_mode\":\"%ssl::bump_mode\",\"ssl_sni\":\"%ssl::&gt;sni\",\"ssl_tls_version\":\"%ssl::&gt;negotiated_version\",\"ssl_cipher\":\"%ssl::&gt;negotiated_cipher\"}# \u0417\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u043a\u0430\u0436\u0434\u044b\u0439 \u0437\u0430\u043f\u0440\u043e\u0441, \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u043d\u044b\u0439 Squid, \u0432 \u0444\u0430\u0439\u043b access.logaccess_log stdio:\/opt\/squid\/var\/log\/squid\/access.log squid_jsonaccess_log udp:\/\/10.0.0.7:5141 squid_json# \u0421\u043b\u0443\u0436\u0435\u0431\u043d\u044b\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f Squid \u043e\u0448\u0438\u0431\u043a\u0438, \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u044f, \u043e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044fcache_log stdio:\/opt\/squid\/var\/log\/squid\/cache.log############################################################################# \u041a\u042d\u0428# \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043c \u043f\u0430\u043c\u044f\u0442\u0438 \u0434\u043b\u044f \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432cache_mem 2048 MB# \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043c\u0435\u0441\u0442\u043e, \u0433\u0434\u0435 Squid \u0431\u0443\u0434\u0435\u0442 \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0437\u0430\u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435# \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0442\u0438\u043f \u043a\u044d\u0448\u0430 rock, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d \u0434\u043b\u044f \u0431\u044b\u0441\u0442\u0440\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u0430# \u041f\u0443\u0442\u044c, \u0433\u0434\u0435 \u0431\u0443\u0434\u0435\u0442 \u0445\u0440\u0430\u043d\u0438\u0442\u044c\u0441\u044f \u043a\u044d\u0448# \u0440\u0430\u0437\u043c\u0435\u0440 \u043a\u044d\u0448\u0430 \u0432 10 \u0413\u0411 (\u0440\u0430\u0437\u043c\u0435\u0440 \u0432 \u043c\u0435\u0433\u0430\u0431\u0430\u0439\u0442\u0430\u0445)cache_dir rock \/opt\/squid\/var\/cache\/rock1 10000  # 10 \u0413\u0411# \u041e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u0437\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c\u0438 \u0432 \u0434\u0438\u0441\u043a\u043e\u0432\u043e\u043c \u043a\u044d\u0448\u0435# \u041f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u0440\u0435\u0448\u0430\u0442\u044c, \u043a\u0430\u043a\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u0438\u0437 \u043a\u044d\u0448\u0430 \u043f\u0440\u0438 \u0435\u0433\u043e \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0438, \u043e\u0441\u043d\u043e\u0432\u044b\u0432\u0430\u044f\u0441\u044c \u043d\u0430 \u0447\u0430\u0441\u0442\u043e\u0442\u0435 \u0438\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044fcache_replacement_policy lfuda# \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442, \u043a\u0430\u043a Squid \u0431\u0443\u0434\u0435\u0442 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0437\u0430\u043c\u0435\u043d\u043e\u0439 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0432 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438# \u041e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u0443\u0435\u0442 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u0430\u043c\u044f\u0442\u044c\u044e, \u043c\u0438\u043d\u0438\u043c\u0438\u0437\u0438\u0440\u0443\u044f \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e \u0438 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u044f \u0431\u043e\u043b\u0435\u0435 \u0431\u044b\u0441\u0442\u0440\u044b\u0439 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0434\u0430\u043d\u043d\u044b\u043cmemory_replacement_policy heap### \u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0434\u043b\u044f \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u043a\u044d\u0448\u0430 \u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043c\u0438, \u0432 \u0442\u0435\u0447\u0435\u043d\u0438\u0435 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0431\u0443\u0434\u0443\u0442 \u0441\u0447\u0438\u0442\u0430\u0442\u044c\u0441\u044f \"\u0441\u0432\u0435\u0436\u0438\u043c\u0438\".# \u042d\u0442\u043e\u0442 \u0448\u0430\u0431\u043b\u043e\u043d \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442 \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u043a FTP-\u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c (\u0432\u0441\u0435 URL, \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0438\u0435\u0441\u044f \u0441 ftp:)        # 9 - \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f, \u0447\u0435\u0440\u0435\u0437 \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043e\u0431\u044a\u0435\u043a\u0442 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043e\u0431\u043d\u043e\u0432\u043b\u0451\u043d (\u0432 \u043c\u0438\u043d\u0443\u0442\u0430\u0445).        # 10% - \u043f\u0440\u043e\u0446\u0435\u043d\u0442 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0439 \u0434\u043b\u044f \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u0433\u043e \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430.        # 10 - \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f, \u0432 \u0442\u0435\u0447\u0435\u043d\u0438\u0435 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442 \u043c\u043e\u0436\u0435\u0442 \u043e\u0441\u0442\u0430\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u043a\u044d\u0448\u0435 (\u0432 \u043c\u0438\u043d\u0443\u0442\u0430\u0445).refresh_pattern -i ^ftp:           9    10%     10        # 0 - \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u043d\u0435 \u0431\u0443\u0434\u0443\u0442 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u0438\u0437 \u043a\u044d\u0448\u0430 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e.        # 0% - \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f, \u0442\u0430\u043a \u043a\u0430\u043a \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0440\u0430\u0432\u043d\u043e 0.        # 0 - \u043d\u0435\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0432 \u043a\u044d\u0448\u0435refresh_pattern -i (\/cgi-bin\/|\\?)  0     0%      0       # \u0414\u043b\u044f \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0441\u0442\u0440\u0430\u043d\u0438\u0446 | \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u043d\u0442\u0435\u043d\u0442 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044frefresh_pattern .                  0     20%     2160    # \u0432\u0441\u0435 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0435 0 \u043c\u0438\u043d\u0443\u0442 \/ 1.5 \u0434\u043d\u044f############################################################################# \u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438delay_pools 1 # \u0421\u043e\u0437\u0434\u0430\u0442\u044c 1 \u043f\u0443\u043b \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438delay_class 1 2 # \u041f\u0443\u043b \u21161 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u043a\u043b\u0430\u0441\u0441 2delay_access 1 allow all # \u041f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u043f\u0443\u043b \u21161 \u043a\u043e \u0432\u0441\u0435\u043c \u043a\u043b\u0438\u0435\u043d\u0442\u0430\u043cdelay_parameters 1 3750000\/3750000 640000\/640000 # (\u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e 3750000 \u00d7 8 = 30 000 000 \u0431\u0438\u0442)############################################################################# \u0414\u0440\u0443\u0433\u043e\u0435# \u0417\u0430\u0433\u043b\u0443\u0448\u043a\u0430 \u0434\u043b\u044f email, \u0438\u043c\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0434\u043b\u044f \u0430\u043d\u043e\u043d\u0438\u043c\u043d\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a FTP-\u0441\u0435\u0440\u0432\u0435\u0440\u0430\u043c \u0447\u0435\u0440\u0435\u0437 Squidftp_user anonymous@################################################################################## \u0420\u0430\u0437\u0434\u0435\u043b ACL- \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u0440\u0430\u0432\u0438\u043b \u0434\u043e\u0441\u0442\u0443\u043f\u0430############################################################################# \u043f\u0440\u0438\u043c\u0435\u0440 \u0438\u043c\u0435\u043d\u0438 acl # politics_Squid_&lt;NameADGroup&gt;_From_AD# \u043f\u0440\u0438\u043c\u0435\u0440 \u0438\u043c\u0435\u043d\u0438 acl # politics_Squid_&lt;Name&gt;############################################################################# \u041d\u0435 \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043d\u0430 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u0434\u043e\u043c\u0435\u043d .domain.ruacl politics_no_cache_local dstdomain .domain.rucache deny politics_no_cache_local# \u041a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438 \u0438 CSSacl politics_static_content urlpath_regex -i \\.(jpg|jpeg|png|gif|css|js)$ # \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438cache allow politics_static_contentcache deny all # \u041e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0435 \u043d\u0435 \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u0442\u044c############################################################################# auth_param - \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439###### \u0410\u0423\u0422\u0415\u041d\u0422\u0418\u0424\u0418\u041a\u0410\u0426\u0418\u042f Kerberos# \u0410\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u044f \u0432 AD \u0447\u0435\u0440\u0435\u0437 Kerberosauth_param negotiate program \/opt\/squid\/libexec\/negotiate_kerberos_auth \\    -d \\    -k \/opt\/squid\/etc\/squid.keytab \\    -s HTTP\/testproxy.domain.ru@DOMAIN.RU###### \u0410\u0423\u0422\u0415\u041d\u0422\u0418\u0424\u0418\u041a\u0410\u0426\u0418\u042f LDAP. \u041f\u043e\u0438\u0441\u043a \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0432 \u0433\u0440\u0443\u043f\u043f\u0435 AD# politics_ldap_Squid_&lt;NameADGroup&gt; - \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u0433\u0440\u0443\u043f\u043f\u044b \u0432\u043d\u0443\u0442\u0440\u0438 squid# InternetFullAccess - \u0433\u0440\u0443\u043f\u043f\u0430 ADexternal_acl_type external_ldap_Squid_InternetFullAccess \\        ttl=300 negative_ttl=60 \\        %LOGIN \/opt\/squid\/libexec\/ext_kerberos_ldap_group_acl \\    -g InternetFullAccess \\    -D DOMAIN.RU \\    -u squid@DOMAIN.RU \\        -p passwordUser \\        -l ldap:\/\/DOMAIN.RUacl politics_Squid_InternetFullAccess_From_AD external external_ldap_Squid_InternetFullAccessexternal_acl_type external_ldap_Squid_InternetAccess \\        ttl=300 negative_ttl=60 \\        %LOGIN \/opt\/squid\/libexec\/ext_kerberos_ldap_group_acl \\    -g InternetAccess \\    -D DOMAIN.RU \\    -u squid@DOMAIN.RU \\        -p passwordUser \\        -l ldap:\/\/DOMAIN.RUacl politics_Squid_InternetAccess_From_AD external external_ldap_Squid_InternetAccess# \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044e \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439# REQUIRED - \u044d\u0442\u043e \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u0441\u043b\u043e\u0432\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442: \u00ab\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u0447\u0430\u0441\u0442\u044c\u044e \u044d\u0442\u043e\u0433\u043e \u0441\u043f\u0438\u0441\u043a\u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u0435\u0441\u043b\u0438 \u043e\u043d \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u0438\u043b \u043b\u043e\u0433\u0438\u043d \u0438 \u043f\u0430\u0440\u043e\u043b\u044c\u00bb# \u0414\u043e\u043b\u0436\u043d\u043e \u0438\u0434\u0442\u0438 \u043f\u043e\u0441\u043b\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 auth_paramacl politics_authenticated proxy_auth REQUIRED################################################################################## \u041f\u041e\u0420\u0422\u042bacl politics_Safe_ports port 80          # httpacl politics_politics_Safe_ports port 21 # ftpacl politics_Safe_ports port 443         # httpsacl politics_Safe_ports port 444         # https \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0439acl politics_Safe_ports port 70          # gopheracl politics_Safe_ports port 210         # waisacl politics_Safe_ports port 1025-65535  # unregistered portsacl politics_Safe_ports port 280         # http-mgmtacl politics_Safe_ports port 488         # gss-httpacl politics_Safe_ports port 591         # filemakeracl politics_Safe_ports port 777         # multiling httpacl politics_SSL_ports port 443          # httpsacl politics_SSL_ports port 444          # https \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0439###### \u041c\u0415\u0422\u041e\u0414\u042b \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f# \u041c\u0435\u0442\u043e\u0434 CONNECT \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043a\u043b\u0438\u0435\u043d\u0442\u0430\u043c\u0438 \u0434\u043b\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0442\u0443\u043d\u043d\u0435\u043b\u044f \u0447\u0435\u0440\u0435\u0437 \u0441\u0435\u0440\u0432\u0435\u0440 \u043f\u043e\u0441\u0440\u0435\u0434\u043d\u0438\u043a (\u0447\u0430\u0449\u0435 \u0432\u0441\u0435\u0433\u043e \u0434\u043b\u044f HTTPS \u0442\u0440\u0430\u0444\u0438\u043a\u0430).acl politics_CONNECT method CONNECT###### \u041f\u0420\u041e\u0422\u041e\u041a\u041e\u041b\u042b# \u041f\u0440\u043e\u0442\u043e\u043a\u043e\u043b ftpacl politics_ftp proto FTP################################################################################## \u0427\u0415\u0420\u041d\u042b\u0415\/\u0411\u0415\u041b\u042b\u0415 \u0421\u041f\u0418\u0421\u041a\u0418# black \u0441\u043f\u0438\u0441\u043e\u043a. \u0417\u0430\u043f\u0440\u0435\u0442 \u0441\u0430\u0439\u0442\u043e\u0432 \u0434\u043b\u044f \u0412\u0421\u0415\u0425 \u0438 \u0434\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0431\u0435\u0437 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438 (\u0431\u0435\u0437 \u041b\u041e\u0413\u0418\u041d\u0410 \u0438 \u041f\u0410\u0420\u041e\u041b\u042f)acl politics_black_list_ALL_andGuest url_regex -i \"\/opt\/squid\/etc\/black_list_ALL_andGuest\"# white \u0441\u043f\u0438\u0441\u043e\u043a. \u0414\u043b\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0441\u0430\u0439\u0442\u0430\u043c \u0434\u043b\u044f \u0412\u0421\u0415\u0425 \u0438 \u0434\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0431\u0435\u0437 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438 (\u0431\u0435\u0437 \u041b\u041e\u0413\u0418\u041d\u0410 \u0438 \u041f\u0410\u0420\u041e\u041b\u042f)acl politics_white_list_ALL_andGuest url_regex -i \"\/opt\/squid\/etc\/white_list_ALL_andGuest\"# black \u0441\u043f\u0438\u0441\u043e\u043a. \u0417\u0430\u043f\u0440\u0435\u0442 \u0441\u0430\u0439\u0442\u043e\u0432 \u0434\u043b\u044f \u0433\u0440\u0443\u043f\u043f\u044b InternetAccessacl politics_black_list_for_InternetAccess url_regex -i \"\/opt\/squid\/etc\/black_list_for_InternetAccess\"################################################################################## \u0420\u0430\u0437\u0434\u0435\u043b http_access - \u041f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043f\u0440\u0430\u0432\u043b\u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u0430############################################################################# \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0441\u043b\u0443\u0436\u0435\u0431\u043d\u044b\u043c \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430\u043c \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430 \u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f# acl manager proto cache_object  # \u0412 Squid 7+ manager \u0443\u0436\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044ehttp_access deny manager !localhost # \u0422\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u043d\u0435\u0433\u043e \u0441\u0430\u043c\u043e\u0433\u043e# \u0417\u0430\u043f\u0440\u0435\u0442\u0438\u0442\u044c \u043d\u0435\u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b\u0435 \u043f\u043e\u0440\u0442\u044bhttp_access deny !politics_Safe_ports# \u0417\u0430\u043f\u0440\u0435\u0442\u0438\u0442\u044c CONNECT \u043a \u043d\u0435-SSL \u043f\u043e\u0440\u0442\u0430\u043c#http_access deny CONNECT !politics_SSL_ports# acl politics_black_list_ALL_andGuesthttp_access deny politics_black_list_ALL_andGuest# acl politics_white_list_ALL_andGuest# http_access allow politics_white_list_ALL_andGuest# \u0417\u0430\u043f\u0440\u0435\u0442\u0438\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c \u0431\u0435\u0437 \u043b\u043e\u0433\u0438\u043d\u0430 \u0438 \u043f\u0430\u0440\u043e\u043b\u044fhttp_access deny !politics_authenticated# \u0414\u043e\u0441\u0442\u0443\u043f \u0434\u043b\u044f \u0433\u0440\u0443\u043f\u043f AD - InternetFullAccesshttp_access allow politics_Squid_InternetFullAccess_From_AD# black_list - InternetAccesshttp_access deny politics_Squid_InternetAccess_From_AD politics_black_list_for_InternetAccess# \u0414\u043e\u0441\u0442\u0443\u043f \u0434\u043b\u044f \u0433\u0440\u0443\u043f\u043f AD - InternetAccesshttp_access allow politics_Squid_InternetAccess_From_AD# ftphttp_access allow politics_ftp  # allow ftp# \u0420\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0435 \u0441 localhosthttp_access allow localhost# \u0417\u0430\u043f\u0440\u0435\u0442\u0438\u0442\u044c \u0432\u0441\u0435 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0435http_access deny all<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<blockquote>\n<p>\u0415\u0441\u043b\u0438 \u0441\u0442\u0430\u0442\u044c\u044f \u0431\u0443\u0434\u0435\u0442 \u043c\u043d\u043e\u0433\u0438\u043c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0430, \u0442\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u044e \u0430\u0440\u0445\u0438\u0432 \u0441 \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u043c \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u043d\u0430 include (\u0432\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u043e\u0432) \u0438 \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u0443\u044e \u0447\u0435\u0440\u0435\u0437 GitHub. \u0418\u043c\u0435\u0435\u0442\u0441\u044f \u0432 \u0432\u0438\u0434\u0443 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0430\u044f \u0442\u0438\u043f\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 Squid \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0440\u0430\u0437\u0431\u0438\u0442\u043e\u0433\u043e squid.conf \u043d\u0430 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b. \u0427\u0442\u043e \u0442\u043e \u043f\u043e\u0434\u043e\u0431\u043d\u043e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u043d\u043e\u0439 \u043d\u0430 \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u0435:<\/p>\n<\/blockquote>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/856\/9bd\/025\/8569bd025be6e399b6bb4925fc86defc.png\" sizes=\"(max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/856\/9bd\/025\/8569bd025be6e399b6bb4925fc86defc.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/856\/9bd\/025\/8569bd025be6e399b6bb4925fc86defc.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<\/div>\n<p>\u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/1060658\/\">https:\/\/habr.com\/ru\/articles\/1060658\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u0418\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f \u043f\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0435 Squid HTTP-proxy \u0432 \u043a\u043e\u0440\u043f\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u0441\u0440\u0435\u0434\u0435.\u0412 \u0434\u0430\u043d\u043d\u043e\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u0440\u0435\u0448\u0430\u0435\u0442\u0441\u044f \u0437\u0430\u0434\u0430\u0447\u0430 \u043f\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0435 \u043f\u0440\u043e\u043a\u0441\u0438-\u0441\u0435\u0440\u0432\u0435\u0440\u0430 Squid \u0434\u043b\u044f \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044f \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442-\u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439.\u0427\u0442\u043e \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0432 \u0441\u0435\u0431\u044f \u0441\u0442\u0430\u0442\u044c\u044f:\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 OpenSSL \u0438 Squid. \u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430, \u0441\u0431\u043e\u0440\u043a\u0430 \u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043f\u0430\u043a\u0435\u0442\u0430 OpenSSL.\u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430, \u0441\u0431\u043e\u0440\u043a\u0430 \u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043f\u0430\u043a\u0435\u0442\u0430 Squid.\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0447\u0435\u0440\u0435\u0437 systemd.\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 Kerberos \u0438 LDAP. \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0442\u043e\u043a\u0435\u043d\u0430 keytab &#8212; Windows AD DC.\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 Kerberos \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u0441\u043e Squid.\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 SSL-Bump (MITM).\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043b\u043e\u0433\u0430 \u0438 \u043f\u0435\u0440\u0435\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u0430 \u0441\u0431\u043e\u0440\u0449\u0438\u043a \u043b\u043e\u0433\u043e\u0432.\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0444\u0438\u0447. \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f.\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438.\u041f\u0440\u0438\u043c\u0435\u0440 \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u043f\u043e\u043b\u043d\u043e\u0433\u043e \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430.Squid \u0431\u0443\u0434\u0435\u0442 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0435 \u0432 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0443\u044e \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e, \u0430 \u0442\u0430\u043a \u0436\u0435  \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c OpenSSL \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0439 \u0440\u044f\u0434\u043e\u043c (\u0447\u0442\u043e \u0431\u044b \u043d\u0435 \u0437\u0430\u043c\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u0441 \u0443\u0436\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u043c OpenSSL \u0438\u043b\u0438 \u043d\u0435 \u043d\u0430\u0432\u0440\u0435\u0434\u0438\u0442\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u0435 + \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044e\u044e \u0432\u0435\u0440\u0441\u0438\u044e OpenSSL).\u0412\u041d\u0418\u041c\u0410\u041d\u0418\u0415: \u0412 \u0441\u0442\u0430\u0442\u044c\u0435 \u0447\u0430\u0441\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0431\u043b\u043e\u043a\u0438 \u043a\u043e\u0434\u0430 \u0441 \u043a\u043e\u043c\u0430\u043d\u0434\u0430\u043c\u0438. \u041f\u0435\u0440\u0435\u0434 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435\u043c \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0447\u0442\u043e \u0432\u044b \u0434\u0435\u043b\u0430\u0435\u0442\u0435 \u0438 \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438, \u0432 \u043d\u0438\u0445 \u043c\u043e\u0433\u0443\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c\u0441\u044f \u0432\u0430\u0436\u043d\u044b\u0435 \u0437\u0430\u043c\u0435\u0447\u0430\u043d\u0438\u044f.1) \u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 OpenSSL \u0438 Squid.\u0412 \u043f\u0435\u0440\u0432\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0441 \u043c\u043e\u0434\u0443\u043b\u044f\u043c\u0438 (\u043a\u043b\u044e\u0447\u0430\u043c\u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438) Squid \u0438 OpenSSL.\u041b\u0443\u0447\u0448\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0439 \u043c\u0438\u043d\u0438\u043c\u0443\u043c, \u0447\u0442\u043e \u0431\u044b \u0443\u043c\u0435\u043d\u044c\u0448\u0438\u0442\u044c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0442\u043e\u0447\u0435\u043a \u043e\u0431\u0445\u043e\u0434\u0430 \u0437\u0430\u0449\u0438\u0442\u044b (\u0414\u0430\u043d\u043d\u0430\u044f \u0441\u0442\u0430\u0442\u044c\u0441\u044f \u0441\u043a\u043e\u0440\u0435\u0435 \u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0435, \u0447\u0435\u043c \u043e \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438\u2026).\u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430, \u0441\u0431\u043e\u0440\u043a\u0430 \u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043f\u0430\u043a\u0435\u0442\u0430 OpenSSL.\u041e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439: https:\/\/github.com\/openssl\/openssl.wget https:\/\/github.com\/openssl\/openssl\/releases\/download\/openssl-3.6.1\/openssl-3.6.1.tar.gztar -xzf openssl-3.6.1.tar.gzcd openssl-3.6.1# apt\u00a0install\u00a0build-essential\u00a0pkg-config # \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430 C.\/config shared &#8212;prefix=\/opt\/squid\/openssl \\&#8212;openssldir=\/opt\/squid\/openssl \\-Wl,-rpath=\/opt\/squid\/openssl\/lib64# -Wl,&#8230; \u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0443: \u00ab\u043f\u0435\u0440\u0435\u0434\u0430\u0439 \u0432\u0441\u0451, \u0447\u0442\u043e \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u043f\u044f\u0442\u043e\u0439, \u043b\u0438\u043d\u043a\u043e\u0432\u0449\u0438\u043a\u0443 # -rpath=\/opt\/squid\/openssl\/lib \u043e\u043f\u0446\u0438\u044f \u0434\u043b\u044f \u043b\u0438\u043d\u043a\u043e\u0432\u0449\u0438\u043a\u0430: \u00ab\u0432\u0441\u0442\u0440\u043e\u0439 \u0432 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0439 \u0444\u0430\u0439\u043b \u043f\u0443\u0442\u044c \u043a \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u043c\u00bb make make installldd \/opt\/squid\/openssl\/bin\/openssl # \u041f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u0438 \u0434\u043e\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043f\u0440\u0438 \u0438\u0445 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0438\u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430, \u0441\u0431\u043e\u0440\u043a\u0430 \u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043f\u0430\u043a\u0435\u0442\u0430 Squid.\u041e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439: https:\/\/github.com\/squid-cache\/squid# \u041d\u0443\u0436\u043d\u044b \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u0434\u043b\u044f \u043f\u0430\u043a\u0435\u0442\u0430apt install \\libtirpc-dev \\libldap2-dev \\libsasl2-dev \\pkg-config \\libpam0g-dev \\libkrb5-dev \\libtdb-dev \\libcap-dev \\libnetfilter-conntrack-dev \\libcppunit-dev \\heimdal-clients# GitHub &#8212; https:\/\/github.com\/squid-cache\/squid# \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0432\u043e\u0430\u0442\u044c \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044e\u044e \u0432\u0441\u0435\u0440\u0438\u044e, \u0430 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u044c \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 squid \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0430 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u043c \u0444\u0430\u0439\u043b\u0435 \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438: https:\/\/www.squid-cache.org\/Versions\/v7\/cfgman\/index_all.html#toc_accept_filterwget https:\/\/github.com\/squid-cache\/squid\/releases\/download\/SQUID_7_5\/squid-7.5.tar.gztar -zxf squid-7.5.tar.gzcd squid-7.5# \u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u043e\u0439\u0442\u0438 \u0443\u0441\u043f\u0435\u0448\u043d\u043e, \u043d\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b \u0431\u0443\u0434\u0435\u0442 \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0438\u0437 \u0437\u0430 \u043d\u0435\u0445\u0432\u0430\u0442\u043a\u0430 \u043a\u0430\u043a\u043e\u0439 \u0442\u043e \u0438\u0437 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a# \u0412\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0438\u0441\u043b\u0435\u0434\u0443\u0439\u0442\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 \u0438 \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u044f# \u041a\u041e\u041c\u041c\u0415\u041d\u0422\u0410\u0420\u0418\u0418 \u0423\u0414\u0410\u041b\u0418\u0422\u042c \u043f\u0435\u0440\u0435\u0434 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435\u043c.\/configure \\  &#8212;prefix=\/opt\/squid \\                          # \u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u043a\u0430\u0442\u0430\u043b\u043e\u0433 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 Squid  &#8212;sysconfdir=\/opt\/squid\/etc \\                  # \u041a\u0430\u0442\u0430\u043b\u043e\u0433 \u0434\u043b\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 (squid.conf \u0438 \u0434\u0440.)  &#8212;localstatedir=\/opt\/squid\/var \\               # \u0411\u0430\u0437\u043e\u0432\u044b\u0439 \u043a\u0430\u0442\u0430\u043b\u043e\u0433 \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 (\u043b\u043e\u0433\u0438, \u043a\u044d\u0448, PID \u0438 \u0442.\u0434.)  &#8212;libexecdir=\/opt\/squid\/libexec \\              # \u041a\u0430\u0442\u0430\u043b\u043e\u0433 \u0434\u043b\u044f \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, ssl_crtd)  &#8212;with-swapdir=\/opt\/squid\/var\/cache\/squid \\    # \u0414\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u043a\u044d\u0448\u0430 \u043d\u0430 \u0434\u0438\u0441\u043a\u0435  &#8212;with-logdir=\/opt\/squid\/var\/log\/squid \\       # \u0414\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u0434\u043b\u044f \u043b\u043e\u0433-\u0444\u0430\u0439\u043b\u043e\u0432  &#8212;with-pidfile=\/opt\/squid\/var\/run\/squid.pid \\  # \u041f\u0443\u0442\u044c \u043a \u0444\u0430\u0439\u043b\u0443 PID \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 Squid  &#8212;with-default-user=proxy \\                    # \u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c, \u043e\u0442 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c\u0441\u044f Squid  &#8212;enable-auth-negotiate=kerberos \\             # \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 Negotiate\/Kerberos  &#8212;enable-auth-basic=LDAP,PAM \\                 # \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 Basic-\u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0447\u0435\u0440\u0435\u0437 LDAP \u0438 PAM  &#8212;enable-external-acl-helpers=time_quota,unix_group,SQL_session,file_userip,kerberos_ldap_group,LDAP_group \\  # \u0412\u043d\u0435\u0448\u043d\u0438\u0435 ACL-\u0445\u0435\u043b\u043f\u0435\u0440\u044b \u0434\u043b\u044f \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430  &#8212;enable-icap-client \\                         # \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 ICAP-\u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430 (\u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u0441 \u0430\u043d\u0442\u0438\u0432\u0438\u0440\u0443\u0441\u0430\u043c\u0438 \u0438 DLP)  &#8212;enable-delay-pools \\                         # \u0412\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043d\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u0438 (traffic shaping)  &#8212;enable-cache-digests \\                       # \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 Cache Digests \u0434\u043b\u044f \u043a\u043e\u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f  &#8212;enable-follow-x-forwarded-for \\              # \u0423\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a X-Forwarded-For \u043f\u0440\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0438 IP \u043a\u043b\u0438\u0435\u043d\u0442\u0430  &#8212;enable-eui \\                                 # \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f MAC-\u0430\u0434\u0440\u0435\u0441\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0430 (EUI-48\/EUI-64)  &#8212;enable-esi \\                                 # \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 Edge Side Includes (\u0434\u043b\u044f \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u043e\u0432)  &#8212;enable-icmp \\                                # \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c ICMP \u0434\u043b\u044f \u043e\u0446\u0435\u043d\u043a\u0438 \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0438 (pinger)  &#8212;enable-wccp \\                                # \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 Web Cache Communication Protocol (Cisco \u0438 \u0434\u0440.)  &#8212;enable-linux-netfilter \\                     # \u0418\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u0441 Netfilter (\u0434\u043b\u044f TPROXY \u0438 \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f)  &#8212;enable-storeio=rock \\                        # \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c storeio &#171;rock&#187; \u2014 \u0432\u044b\u0441\u043e\u043a\u043e\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043a\u044d\u0448-\u0434\u0432\u0438\u0436\u043e\u043a \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 SQLite  &#8212;enable-removal-policies=heap,lru \\           # \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0432\u0441\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0435 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0438\u0437 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, heap, LRU\u2011\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u043d\u044b\u0435 \u0438 \u0434\u0440.)  &#8212;disable-arch-native \\                        # \u041e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u043e\u0434 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u0443\u044e \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0443 CPU (\u0434\u043b\u044f \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0438\u043c\u043e\u0441\u0442\u0438)  &#8212;disable-translation \\                        # \u041e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043b\u043e\u043a\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 (\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438\u0439)# \u0434\u043b\u044f ssl-dump:  &#8212;enable-ssl \\ # \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 ssl \u0440\u0435\u0436\u0438\u043c\u0430  &#8212;enable-ssl-crtd \\                            # \u0412\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044e \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0432 \u0434\u043b\u044f HTTPS-\u0442\u0440\u0430\u0444\u0438\u043a\u0430 (SSL Bump) # \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0435\u0439 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0432 \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441, \u0430 \u043d\u0435 \u0441\u0430\u043c \u043f\u0440\u043e\u043a\u0441\u0438 \u0441\u0435\u0440\u0432\u0435\u0440.  &#8212;with-openssl=\/opt\/squid\/openssl             # \u0423\u043a\u0430\u0437\u0430\u0442\u044c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u0443\u044e \u0441\u0431\u043e\u0440\u043a\u0443 OpenSSL (\u0432\u0430\u0436\u043d\u043e \u0434\u043b\u044f SSL Bump)make allmake install# \u041f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0437\u0430\u0432\u0438\u0432\u0438\u043c\u043e\u0441\u0442\u0438, \u0441\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e \u0447\u0435\u0433\u043e \u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u043d\u0435 \u0445\u0432\u0430\u0442\u0430\u0442\u044cldd \/opt\/squid\/sbin\/squid# \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c\u00a0\u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u0443\u044e \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u044c \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b\u00a0Squid\u00a0\u0438\u00a0ADsudo apt-get install libsasl2-modules-gssapi-mit 2) \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0447\u0435\u0440\u0435\u0437 systemd.\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0444\u0430\u0439\u043b \u0441\u0435\u0440\u0432\u0438\u0441\u0430 \/etc\/systemd\/system\/squid.service c \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u044b\u043c:[Unit]Description=Squid Web Proxy Server (custom build)Documentation=man:squid(8)After=network.target network-online.target nss-lookup.target[Service]# \u041f\u0443\u0442\u044c \u043a \u0444\u0430\u0439\u043b\u0443 keytab \u043c\u043e\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0437\u0434\u0435\u0441\u044c \u0438\u043b\u0438 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0432 squid.conf &gt; &#171;auth_param negotiate program&#8230;-k &lt;FullPath&gt;&#187;, \u0432 \u043c\u043e\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0443\u043a\u0430\u0436\u0443 \u0442\u0430\u043c# Environment=KRB5_KTNAME=\/opt\/squid\/etc\/squid.keytabType=forkingPIDFile=\/opt\/squid\/var\/run\/squid.pidExecStartPre=\/opt\/squid\/sbin\/squid -z                     # \u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043a\u044d\u0448\u0430 SquidExecStart=\/opt\/squid\/sbin\/squidExecReload=\/opt\/squid\/sbin\/squid -k reconfigureExecStop=\/opt\/squid\/sbin\/squid -k shutdownUser=root                                                                  # Squid \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u043e\u0442 root, \u0434\u043b\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f socket, \u043f\u043e\u0442\u043e\u043c \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442 \u0432 \u0440\u0435\u0436\u0438\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0433\u043e \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438.Group=rootLimitNOFILE=65536# Restart=on-failure# RestartSec=10[Install]WantedBy=multi-user.target3) \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 Kerberos \u0438 LDAP.\u041f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f: &#8212; \u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c Active Directory (AD) \u0434\u043b\u044f Kerberos \u0438 LDAP, \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u0432 \u043e\u0441\u043d\u0430\u0441\u0442\u043a\u0435 \u201c\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u0438 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u044b\u201d. &#8212; \u0422\u043e\u043a\u0435\u043d keytab \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043d\u0430 DC AD, \u0434\u043b\u044f Kerberos \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438. &#8212; \u041d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0443\u044e \u0447\u0430\u0441\u0442\u044c Kerberos \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u0441\u043e Squid. &#8212; \u041d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e Squid \u043d\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0445\u0435\u043b\u043f\u0435\u0440\u043e\u0432 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 Kerberos \u0438 LDAP. &#8212; \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 Kerberos. &#8212; \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0433\u0440\u0443\u043f\u043f\u044b \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 LDAP.\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0442\u043e\u043a\u0435\u043d\u0430 keytab &#8212; Windows AD DCKeytab-\u0444\u0430\u0439\u043b &#8212; \u0447\u0442\u043e \u044d\u0442\u043e \u0438 \u0437\u0430\u0447\u0435\u043cKeytab-\u0444\u0430\u0439\u043b \u043d\u0443\u0436\u0435\u043d \u0422\u041e\u041b\u042c\u041a\u041e \u0434\u043b\u044f \u0441\u0430\u043c\u043e\u0433\u043e Squid-\u0441\u0435\u0440\u0432\u0435\u0440\u0430. \u041e\u043d \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c\u0438, \u0430 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 Squid \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u0442\u0438\u043a\u0435\u0442\u044b \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 (\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0430)Keytab \u2014 \u044d\u0442\u043e \u0444\u0430\u0439\u043b \u0441 \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438 \u043a\u043b\u044e\u0447\u0430\u043c\u0438 \u0441\u043b\u0443\u0436\u0431\u044b, \u043f\u0440\u0438\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0439 \u043a SPN (Service Principal Name) \u0432\u0438\u0434\u0430: HTTP\/servername.domain.ru@DOMAIN.RU \u042d\u0442\u043e\u0442 SPN \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d \u0432 Active Directory \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u0443\u0447\u0451\u0442\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, UserAD_Squid \u0438\u043b\u0438 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043d\u043e\u0439 \u0443\u0447\u0451\u0442\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438)\u041b\u043e\u0433\u0438\u043a\u0430 \u0440\u0430\u0431\u043e\u0442\u044b: \u0428\u0430\u0433 1: \u041a\u043b\u0438\u0435\u043d\u0442 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u0442\u0438\u043a\u0435\u0442 &#8212; \u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c ivanov \u043d\u0430 Windows-\u043c\u0430\u0448\u0438\u043d\u0435 \u0432 \u0434\u043e\u043c\u0435\u043d\u0435 \u0437\u0430\u0445\u043e\u0434\u0438\u0442 \u043d\u0430 \u0441\u0430\u0439\u0442 \u0447\u0435\u0440\u0435\u0437 \u043f\u0440\u043e\u043a\u0441\u0438. &#8212; \u0411\u0440\u0430\u0443\u0437\u0435\u0440 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u0442 \u0443 DC (\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 \u0434\u043e\u043c\u0435\u043d\u0430) \u0442\u0438\u043a\u0435\u0442 \u0434\u043b\u044f \u0441\u043b\u0443\u0436\u0431\u044b HTTP\/servername.domain.ru \u0428\u0430\u0433 2: Squid \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u0442\u0438\u043a\u0435\u0442 &#8212; Squid \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u0442\u0438\u043a\u0435\u0442 \u043e\u0442 \u043a\u043b\u0438\u0435\u043d\u0442\u0430 &#8212; \u0427\u0442\u043e\u0431\u044b \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u0438 \u0443\u0437\u043d\u0430\u0442\u044c, \u043a\u0442\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c, Squid \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0441\u0432\u043e\u0439 keytab &#8212; \u0415\u0441\u043b\u0438 \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u0430 \u0443\u0441\u043f\u0435\u0448\u043d\u0430, \u0442\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0451\u043d \u043a\u0430\u043a ivanov@DOMAIN.RUKeytab \u2014 \u044d\u0442\u043e \u201c\u043f\u0440\u0438\u0432\u0430\u0442\u043d\u044b\u0439 \u043a\u043b\u044e\u0447\u201d \u0434\u043b\u044f \u0441\u043b\u0443\u0436\u0431\u044b HTTP\/servername.domain.ru, \u0411\u0435\u0437 \u043d\u0435\u0433\u043e Squid \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u043f\u043e\u0434\u043b\u0438\u043d\u043d\u043e\u0441\u0442\u044c \u0442\u0438\u043a\u0435\u0442\u0430Keytab \u043d\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043f\u0430\u0440\u043e\u043b\u0435\u0439 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439, \u043e\u043d \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043a\u043b\u044e\u0447\u0438 \u0434\u043b\u044f \u043e\u0434\u043d\u043e\u0439 \u0441\u043b\u0443\u0436\u0431\u044b HTTP\/servername.domain.ru\u041a\u0430\u0436\u0434\u044b\u0439 \u043a\u043b\u0438\u0435\u043d\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0441\u0432\u043e\u0439 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0442\u0438\u043a\u0435\u0442 Keytab. Squid \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u043b\u044e\u0431\u043e\u0439 \u0442\u0438\u043a\u0435\u0442, \u0432\u044b\u0434\u0430\u043d\u043d\u044b\u0439 \u0434\u043b\u044f HTTP\/servername.domain.ru, \u043d\u043e \u043d\u0435 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442 \u0442\u0438\u043a\u0435\u0442\u044b \u0434\u043b\u044f \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432.\u0415\u0441\u043b\u0438 \u0443\u043a\u0440\u0430\u0441\u0442\u044c keytab &#8212; \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0434\u0434\u0435\u043b\u0430\u0442\u044c \u043f\u0440\u043e\u043a\u0441\u0438, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0435\u0433\u043e \u043d\u0443\u0436\u043d\u043e \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0441 \u043f\u0440\u0430\u0432\u0430\u043c\u0438 600 \u0438 \u0432\u043b\u0430\u0434\u0435\u043b\u044c\u0446\u0435\u043c \u0441\u043b\u0443\u0436\u0431\u044b Squid (\u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 proxy)\u0420\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044f \u043d\u0430 DC AD SPN \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0430 (\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 keytab):# \u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0443\u0447\u0435\u0442\u043a\u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0432 AD# \u0420\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u0443\u0435\u043c SPN \u0434\u043b\u044f \u044d\u0442\u043e\u0439 \u0443\u0447\u0451\u0442\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 AD# setspn \/S &lt;\u041f\u0440\u0438\u043d\u0446\u0435\u043f\u0430\u043b&gt; &lt;sAMAccountName \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f&gt;setspn \/S HTTP\/servername.domain.ru ADUserSquid# \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043csetspn \/L squid# \u0413\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c keytabktpass \/princ HTTP\/servername.domain.ru@DOMAIN.RU `\/mapuser ADUserSquid@DOMAIN.RU `\/crypto ALL ` # \u0414\u043b\u044f \u043f\u0440\u043e\u0441\u0442\u043e\u0442\u044b \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0432\u0441\u0435 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0438 \u0432 \u0444\u0430\u0439\u043b\/ptype KRB5_NT_PRINCIPAL `\/pass password_ADUserSquid `\/out C:\\squid.keytab# \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043csetspn \/L squid### \u0415\u0441\u043b\u0438 \u0432 keytab \u043f\u043e\u043c\u0435\u0449\u0430\u043b\u0438 \u0442\u043e\u043b\u044c\u043a\u0443\u043e \u043e\u0434\u043d\u0443 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0443, \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0432 1 \u0444\u0430\u0439\u043b keytab### AES128 \u2014 \u0414\u041e\u0411\u0410\u0412\u041b\u042f\u0415\u041c \u043a \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u043c\u0443 \u0444\u0430\u0439\u043b\u0443# ktpass \/princ HTTP\/servername.domain.ru@DOMAIN.RU `#   \/mapuser ADUserSquid@DOMAIN.RU `#   \/crypto AES128-SHA1 `#   \/ptype KRB5_NT_PRINCIPAL `#   \/pass&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-487812","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/487812","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=487812"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/487812\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=487812"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=487812"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=487812"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}