SCROLL
Среднее время на прочтение: 6 мин.

Как установить прокси сервер Squid на Debian 12

Squid — это программный пакет, реализующий функцию кэширующего прокси-сервера для протоколов HTTP, FTP, Gopher и (в случае соответствующих настроек) HTTPS.

В этом руководстве я покажу, как установить прокси сервер Squid на операционной системе Debian 12. Установку будем выполнять из исходников и актуальную на момент написания статьи версию Squid.

Официальная ветка Squid в Github — https://github.com/squid-cache/squid

Установка зависимостей

Устанавливаем необходимые пакеты зависимостей.

apt-get update
YXB0LWdldCUyMGluc3RhbGwlMjBidWlsZC1lc3NlbnRpYWwlMjBtYWtlJTIwYXV0b21ha2UlMjBhdXRvY29uZiUyMGxpYnRvb2wlMjBsaWJ0b29sLWJpbiUyMGVkJTIwbGlic3NsLWRldiUyMGxpYmtyYjUtZGV2JTIwbGlibGRhcDItZGV2JTIwbGliazVjcnlwdG8zJTIwbGlic2FzbDItZGV2JTIwbGlicGFtMGclMjBsaWJjYXAyLWRldiUyMGdpdCUyMC15

Сборка и установка

JUQwJTkwJUQwJUJBJUQxJTgyJUQxJTgzJUQwJUIwJUQwJUJCJUQxJThDJUQwJUJEJUQxJTgzJUQxJThFJTIwJUQwJUIyJUQwJUI1JUQxJTgwJUQxJTgxJUQwJUI4JUQxJThFJTIwJUQwJUJGJUQwJUIwJUQwJUJBJUQwJUI1JUQxJTgyJUQwJUIwJTIwJUQwJUJDJUQwJUJFJUQwJUI2JUQwJUJEJUQwJUJFJTIwJUQwJUJGJUQwJUJFJUQxJTgxJUQwJUJDJUQwJUJFJUQxJTgyJUQxJTgwJUQwJUI1JUQxJTgyJUQxJThDJTIwJUQwJUJGJUQwJUJFJTIwJUQxJTgxJUQxJTgxJUQxJThCJUQwJUJCJUQwJUJBJUQwJUI1JTNB

JUQwJTlBJUQwJUJCJUQwJUJFJUQwJUJEJUQwJUI4JUQxJTgwJUQxJTgzJUQwJUI1JUQwJUJDJTIwJUQxJTgwJUQwJUI1JUQwJUJGJUQwJUJFJUQwJUI3JUQwJUI4JUQxJTgyJUQwJUJFJUQxJTgwJUQwJUI4JUQwJUI5JTIwU3F1aWQlMjAlRDElODElMjBHaXRIdWIlM0E=

cd /opt
git clone https://github.com/squid-cache/squid.git squid 

JUQwJTlGJUQwJUI1JUQxJTgwJUQwJUI1JUQxJTg1JUQwJUJFJUQwJUI0JUQwJUI4JUQwJUJDJTIwJUQwJUIyJTIwJUQwJUJBJUQwJUJCJUQwJUJFJUQwJUJEJUQwJUI4JUQxJTgwJUQwJUJFJUQwJUIyJUQwJUIwJUQwJUJEJUQwJUJEJUQxJThCJUQwJUI5JTIwJUQxJTgwJUQwJUI1JUQwJUJGJUQwJUJFJUQwJUI3JUQwJUI4JUQxJTgyJUQwJUJFJUQxJTgwJUQwJUI4JUQwJUI5Lg==

Y2QlMjBzcXVpZA==

Актуальная версия

JUQwJTk1JUQxJTgxJUQwJUJCJUQwJUI4JTIwJUQwJUJEJUQxJTgzJUQwJUI2JUQwJUJEJUQwJUIwJTIwJUQxJTgxJUQwJUIwJUQwJUJDJUQwJUIwJUQxJThGJTIwJUQwJUIwJUQwJUJBJUQxJTgyJUQxJTgzJUQwJUIwJUQwJUJCJUQxJThDJUQwJUJEJUQwJUIwJUQxJThGJTIwJUQwJUIyJUQwJUI1JUQxJTgwJUQxJTgxJUQwJUI4JUQxJThGJTIwJUQxJTgwJUQwJUI1JUQwJUJCJUQwJUI4JUQwJUI3JUQwJUIwJTJDJTIwJUQxJTgyJUQwJUJFJTIwJUQwJUJGJUQwJUI1JUQxJTgwJUQwJUI1JUQwJUJBJUQwJUJCJUQxJThFJUQxJTg3JUQwJUI4JUQxJTgyJUQxJTgxJUQxJThGJTIwJUQwJUJEJUQwJUIwJTIwJUQwJUJEJUQwJUI1JUQwJUI1JTIwJUQwJUJDJUQwJUJFJUQwJUI2JUQwJUJEJUQwJUJFJTIwJUQwJUIyJUQxJThCJUQwJUJGJUQwJUJFJUQwJUJCJUQwJUJEJUQwJUI4JUQwJUIyJTIwJUQwJUJBJUQwJUJFJUQwJUJDJUQwJUIwJUQwJUJEJUQwJUI0JUQxJTgzJTNB

TEFURVNUX1RBRyUzRCUyNChjdXJsJTIwLXMlMjBodHRwcyUzQSUyRiUyRmFwaS5naXRodWIuY29tJTJGcmVwb3MlMkZzcXVpZC1jYWNoZSUyRnNxdWlkJTJGcmVsZWFzZXMlMkZsYXRlc3QlMjAlN0MlMjBncmVwJTIwLW9QJTIwJyUyMnRhZ19uYW1lJTIyJTNBJTIwJTIyJTVDSyU1QiU1RSUyMiU1RCUyQicp
git checkout $LATEST_TAG

Определенная версия

JUQwJTkyJTIwJUQxJTgxJUQwJUJCJUQxJTgzJUQxJTg3JUQwJUIwJUQwJUI1JTIwJUQwJUI1JUQxJTgxJUQwJUJCJUQwJUI4JTIwJUQwJUJEJUQwJUI1JUQwJUJFJUQwJUIxJUQxJTg1JUQwJUJFJUQwJUI0JUQwJUI4JUQwJUJDJUQwJUJFJTIwJUQwJUIyJUQxJThCJUQwJUJGJUQwJUJFJUQwJUJCJUQwJUJEJUQwJUI4JUQxJTgyJUQxJThDJTIwJUQxJTgxJUQwJUIxJUQwJUJFJUQxJTgwJUQwJUJBJUQxJTgzJTIwJUQwJUJBJUQwJUIwJUQwJUJBJUQwJUJFJUQwJUI5JTIwJUQxJTgyJUQwJUJFJTIwJUQwJUJFJUQwJUJGJUQxJTgwJUQwJUI1JUQwJUI0JUQwJUI1JUQwJUJCJUQwJUI1JUQwJUJEJUQwJUJEJUQwJUJFJUQwJUI5JTIwJUQwJUIyJUQwJUI1JUQxJTgwJUQxJTgxJUQwJUI4JUQwJUI4JTJDJTIwJUQxJTgyJUQwJUJFJTIwJUQxJTgxJUQwJUJGJUQwJUI1JUQxJTgwJUQwJUIyJUQwJUIwJTIwJUQwJUJDJUQwJUJFJUQwJUI2JUQwJUJEJUQwJUJFJTIwJUQwJUIyJUQxJThCJUQwJUIyJUQwJUI1JUQxJTgxJUQxJTgyJUQwJUI4JTIwJUQxJTgxJUQwJUJGJUQwJUI4JUQxJTgxJUQwJUJFJUQwJUJBJTIwJUQwJUI0JUQwJUJFJUQxJTgxJUQxJTgyJUQxJTgzJUQwJUJGJUQwJUJEJUQxJThCJUQxJTg1JTIwJUQxJTgwJUQwJUI1JUQwJUJCJUQwJUI4JUQwJUI3JUQwJUJFJUQwJUIyJTNB

git tag | grep '^SQUID_' | sort -t_ -k2,2V -k3,3V -k4,4V

А затем переключаемся на нужную ветку:

Z2l0JTIwY2hlY2tvdXQlMjBTUVVJRF81Xzk=

Подготовка

JUQwJTkyJUQxJThCJUQwJUJGJUQwJUJFJUQwJUJCJUQwJUJEJUQwJUI4JUQwJUJDJTIwYm9vdHN0cmFwcGluZyUyMCglRDAlQkYlRDAlQkUlRDAlQjQlRDAlQjMlRDAlQkUlRDElODIlRDAlQkUlRDAlQjIlRDAlQkElRDElODMpJTIwJUQwJUI4JUQxJTgxJUQxJTg1JUQwJUJFJUQwJUI0JUQwJUJEJUQwJUI4JUQwJUJBJUQwJUJFJUQwJUIyJTIwJUQwJUJBJTIwJUQxJTgxJUQwJUIxJUQwJUJFJUQxJTgwJUQwJUJBJUQwJUI1Lg==

bootstrapping — это процесс подготовки среды для компиляции и сборки программы. Обычно это включает в себя генерацию файлов configure, Makefile и других вспомогательных файлов, необходимых для сборки.
LiUyRmJvb3RzdHJhcC5zaA==

Успешный вывод:

YXV0b21ha2UlMjAoMS4xNi41KSUyMCUzQSUyMGF1dG9tYWtl
YXV0b2NvbmYlMjAoMi43MSklMjAlM0ElMjBhdXRvY29uZg==
libtool  (2.4.7) : libtool
libtool path : /usr/bin
Bootstrapping primary Squid sources
Qm9vdHN0cmFwcGluZyUyMGxpYmx0ZGwlMjBzdWItcHJvamVjdA==
Fixing configure recursion
QXV0b3Rvb2wlMjBib290c3RyYXBwaW5nJTIwY29tcGxldGUu

Сборка

Выполняем конфигурирование с поддержкой HTTPS:

./configure --prefix=/usr \
LS1sb2NhbHN0YXRlZGlyJTNEJTJGdmFyJTIwJTVD
--libexecdir=/usr/lib/squid \
--datadir=/usr/share/squid \
LS1zeXNjb25mZGlyJTNEJTJGZXRjJTJGc3F1aWQlMjAlNUM=
LS1lbmFibGUtc3NsLWNydGQlMjAlNUM=
--with-openssl \
LS1lbmFibGUtdHJhbnNsYXRpb24lMjAlNUM=
--enable-cpu-profiling \
--disable-dependency-tracking \
LS1kaXNhYmxlLWlwdjYlMjAlNUM=
LS1lbmFibGUtcmVtb3ZhbC1wb2xpY2llcyUzRCUyMmxydSUyQ2hlYXAlMjIlMjAlNUM=
LS1lbmFibGUtZGVsYXktcG9vbHMlMjAlNUM=
--enable-icmp \
--enable-linux-netfilter \
--enable-external-acl-helpers \
LS13aXRoLWxhcmdlLWZpbGVzJTIwJTVD
--with-default-user=proxy \
--with-logdir=/var/log/squid \
LS13aXRoLXBpZGZpbGUlM0QlMkZ2YXIlMkZydW4lMkZzcXVpZC5waWQ=

JUQwJUExJUQwJUJFJUQwJUIxJUQwJUI4JUQxJTgwJUQwJUIwJUQwJUI1JUQwJUJDJTIwJUQwJUI4JTIwJUQxJTgzJUQxJTgxJUQxJTgyJUQwJUIwJUQwJUJEJUQwJUIwJUQwJUIyJUQwJUJCJUQwJUI4JUQwJUIyJUQwJUIwJUQwJUI1JUQwJUJDJTIwJUQwJUJGJUQwJUIwJUQwJUJBJUQwJUI1JUQxJTgyJTIwU3F1aWQlM0E=

bWFrZQ==
make install

Post-Install настройка

Создаем необходимые каталоги для работы Squid и назначаем для них соответствующие права доступа:

bWtkaXIlMjAtcCUyMCUyRnZhciUyRmxvZyUyRnNxdWlkJTIwJTJGdmFyJTJGc3Bvb2wlMkZzcXVpZCUyMCUyRmV0YyUyRnNxdWlkJTJGc3Ns
chown proxy:proxy /var/log/squid /var/spool/squid /etc/squid/ssl

chmod 750 /var/log/squid /var/spool/squid /etc/squid/ssl

Logrotate

Создаем файл ротации логов /etc/logrotate.d/squid:

cat << EOF > /etc/logrotate.d/squid
/var/log/squid/access.log {
ZGFpbHk=
Y29tcHJlc3M=
ZGVsYXljb21wcmVzcw==
cm90YXRlJTIwNA==
bWlzc2luZ29r
bm9jcmVhdGU=
sharedscripts
cG9zdHJvdGF0ZQ==
JTIwJTIwJTIwJTIwJTJGZXRjJTJGaW5pdC5kJTJGc3F1aWQlMjByZWxvYWQ=
endscript
}

JTJGdmFyJTJGbG9nJTJGc3F1aWQlMkZjYWNoZS5sb2clMjAlN0I=
daily
compress
delaycompress
cm90YXRlJTIwNA==
bWlzc2luZ29r
nocreate
sharedscripts
cG9zdHJvdGF0ZQ==
JTIwJTIwJTIwJTIwJTJGZXRjJTJGaW5pdC5kJTJGc3F1aWQlMjByZWxvYWQ=
endscript
JTdE
RU9G

System V Init

JUQwJTk0JUQwJUJCJUQxJThGJTIwJUQxJTgzJUQwJUJGJUQxJTgwJUQwJUIwJUQwJUIyJUQwJUJCJUQwJUI1JUQwJUJEJUQwJUI4JUQwJUI1JTIwJUQwJUI3JUQwJUIwJUQwJUJGJUQxJTgzJUQxJTgxJUQwJUJBJUQwJUJFJUQwJUJDJTIwU3F1aWQlMjAlRDElODElRDAlQkUlRDAlQjclRDAlQjQlRDAlQjAlRDAlQjQlRDAlQjglRDAlQkMlMjAlRDElODElRDElODIlRDAlQjAlRDElODAlRDElODIlRDAlQkUlRDAlQjIlRDElOEIlRDAlQjklMjAlRDElODElRDAlQkElRDElODAlRDAlQjglRDAlQkYlRDElODIlMjAlMkZldGMlMkZpbml0LmQlMkZzcXVpZCUyMCVEMCVCNCVEMCVCQiVEMSU4RiUyMFN5c3RlbSUyMFYlMjBJbml0Lg==

/etc/init.d/squid
#! /bin/sh
JTIz
JTIzJTIwc3F1aWQlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBTdGFydHVwJTIwc2NyaXB0JTIwZm9yJTIwdGhlJTIwU1FVSUQlMjBIVFRQJTIwcHJveHktY2FjaGUu
#
JTIzJTIwVmVyc2lvbiUzQSUyMCUyMCUyMCUyMCUyMCUyMCU0MCglMjMpc3F1aWQucmMlMjAlMjAxLjAlMjAlMjAwNy1KdWwtMjAwNiUyMCUyMGx1aWdpJTQwZGViaWFuLm9yZw==
#
# pidfile: /var/run/squid.pid
JTIz
JTIzJTIzJTIzJTIwQkVHSU4lMjBJTklUJTIwSU5GTw==
# Provides:          squid
JTIzJTIwUmVxdWlyZWQtU3RhcnQlM0ElMjAlMjAlMjAlMjAlMjRuZXR3b3JrJTIwJTI0cmVtb3RlX2ZzJTIwJTI0c3lzbG9n
JTIzJTIwUmVxdWlyZWQtU3RvcCUzQSUyMCUyMCUyMCUyMCUyMCUyNG5ldHdvcmslMjAlMjRyZW1vdGVfZnMlMjAlMjRzeXNsb2c=
# Should-Start:      $named
JTIzJTIwU2hvdWxkLVN0b3AlM0ElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjRuYW1lZA==
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Squid HTTP Proxy version 4.x
JTIzJTIzJTIzJTIwRU5EJTIwSU5JVCUyMElORk8=

TkFNRSUzRHNxdWlk
REVTQyUzRCUyMlNxdWlkJTIwSFRUUCUyMFByb3h5JTIy
REFFTU9OJTNEJTJGdXNyJTJGc2JpbiUyRnNxdWlk
UElERklMRSUzRCUyRnZhciUyRnJ1biUyRiUyNE5BTUUucGlk
CONFIG=/etc/squid/squid.conf
SQUID_ARGS="-YC -f $CONFIG"

JTVCJTIwISUyMC1mJTIwJTJGZXRjJTJGZGVmYXVsdCUyRnNxdWlkJTIwJTVEJTIwJTdDJTdDJTIwLiUyMCUyRmV0YyUyRmRlZmF1bHQlMkZzcXVpZA==

LiUyMCUyRmxpYiUyRmxzYiUyRmluaXQtZnVuY3Rpb25z

UEFUSCUzRCUyRmJpbiUzQSUyRnVzciUyRmJpbiUzQSUyRnNiaW4lM0ElMkZ1c3IlMkZzYmlu

[ -x $DAEMON ] || exit 0

dWxpbWl0JTIwLW4lMjA2NTUzNQ==

ZmluZF9jYWNoZV9kaXIlMjAoKSUyMCU3Qg==
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwdyUzRCUyMiUyMCUyMCUyMCUyMCUyMCUyMiUyMCUyMyUyMHNwYWNlJTIwdGFi
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcmVzJTNEJTYwJTI0REFFTU9OJTIwLWslMjBwYXJzZSUyMC1mJTIwJTI0Q09ORklHJTIwMiUzRSUyNjElMjAlN0M=
                grep "Processing:" |
                sed s/.*Processing:\ // |
                sed -ne '
                        s/^['"$w"']*'$1'['"$w"']\+[^'"$w"']\+['"$w"']\+\([^'"$w"']\+\).*$/\1/p;
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwdCUyMGVuZCUzQg==
                        d;
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNBZW5kJTIwcSclNjA=
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTVCJTIwLW4lMjAlMjIlMjRyZXMlMjIlMjAlNUQlMjAlN0MlN0MlMjByZXMlM0QlMjQy
        echo "$res"
}

grepconf () {
        w="     " # space tab
        res=`$DAEMON -k parse -f $CONFIG 2>&1 |
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwZ3JlcCUyMCUyMlByb2Nlc3NpbmclM0ElMjIlMjAlN0M=
                sed s/.*Processing:\ // |
                sed -ne '
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcyUyRiU1RSU1QiclMjIlMjR3JTIyJyU1RConJTI0MSclNUInJTIyJTI0dyUyMiclNUQlNUMlMkIlNUMoJTVCJTVFJyUyMiUyNHclMjInJTVEJTVDJTJCJTVDKS4qJTI0JTJGJTVDMSUyRnAlM0I=
                        t end;
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwZCUzQg==
                        :end q'`
        [ -n "$res" ] || res=$2
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwZWNobyUyMCUyMiUyNHJlcyUyMg==
}

create_run_dir () {
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcnVuX2RpciUzRCUyRnZhciUyRnJ1biUyRnNxdWlk
        usr=`grepconf cache_effective_user proxy`
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwZ3JwJTNEJTYwZ3JlcGNvbmYlMjBjYWNoZV9lZmZlY3RpdmVfZ3JvdXAlMjBwcm94eSU2MA==

JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwaWYlMjAlNUIlMjAlMjIlMjQoZHBrZy1zdGF0b3ZlcnJpZGUlMjAtLWxpc3QlMjAlMjRydW5fZGlyKSUyMiUyMCUzRCUyMCUyMiUyMiUyMCU1RCUyMCUyNiUyNg==
           [ ! -e $run_dir ] ; then
                mkdir -p $run_dir
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwY2hvd24lMjAlMjR1c3IlM0ElMjRncnAlMjAlMjRydW5fZGly
                [ -x /sbin/restorecon ] && restorecon $run_dir
        fi
}

c3RhcnQlMjAoKSUyMCU3Qg==
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwY2FjaGVfZGlyJTNEJTYwZmluZF9jYWNoZV9kaXIlMjBjYWNoZV9kaXIlNjA=
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwY2FjaGVfdHlwZSUzRCU2MGdyZXBjb25mJTIwY2FjaGVfZGlyJTYw
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcnVuX2RpciUzRCUyRnZhciUyRnJ1biUyRnNxdWlk

JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIz
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIzJTIwQ3JlYXRlJTIwcnVuJTIwZGlyJTIwKG5lZWRlZCUyMGZvciUyMHNldmVyYWwlMjB3b3JrZXJzJTIwb24lMjBTTVAp
        #
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwY3JlYXRlX3J1bl9kaXI=

JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIz
        # Create spool dirs if they don't exist.
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIz
        if test -d "$cache_dir" -a ! -d "$cache_dir/00"
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwdGhlbg==
                log_warning_msg "Creating $DESC cache structure"
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTI0REFFTU9OJTIwLXolMjAtZiUyMCUyNENPTkZJRw==
                [ -x /sbin/restorecon ] && restorecon -R $cache_dir
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwZmk=

JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwdW1hc2slMjAwMjc=
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwdWxpbWl0JTIwLW4lMjA2NTUzNQ==
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwY2QlMjAlMjRydW5fZGly
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwc3RhcnQtc3RvcC1kYWVtb24lMjAtLXF1aWV0JTIwLS1zdGFydCUyMCU1Qw==
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwLS1waWRmaWxlJTIwJTI0UElERklMRSUyMCU1Qw==
                --exec $DAEMON -- $SQUID_ARGS < /dev/null
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcmV0dXJuJTIwJTI0JTNG
JTdE

stop () {
        PID=`cat $PIDFILE 2>/dev/null`
        start-stop-daemon --stop --quiet --pidfile $PIDFILE --exec $DAEMON
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIz
        #       Now we have to wait until squid has _really_ stopped.
        #
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwc2xlZXAlMjAy
        if test -n "$PID" && kill -0 $PID 2>/dev/null
        then
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwbG9nX2FjdGlvbl9iZWdpbl9tc2clMjAlMjIlMjBXYWl0aW5nJTIy
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwY250JTNEMA==
                while kill -0 $PID 2>/dev/null
                do
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwY250JTNEJTYwZXhwciUyMCUyNGNudCUyMCUyQiUyMDElNjA=
                        if [ $cnt -gt 24 ]
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwdGhlbg==
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwbG9nX2FjdGlvbl9lbmRfbXNnJTIwMQ==
                                return 1
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwZmk=
                        sleep 5
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwbG9nX2FjdGlvbl9jb250X21zZyUyMCUyMiUyMg==
                done
                log_action_end_msg 0
                return 0
        else
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcmV0dXJuJTIwMA==
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwZmk=
JTdE

cfg_pidfile=`grepconf pid_filename`
if test "${cfg_pidfile:-none}" != "none" -a "$cfg_pidfile" != "$PIDFILE"
dGhlbg==
        log_warning_msg "squid.conf pid_filename overrides init script"
        PIDFILE="$cfg_pidfile"
Zmk=

Y2FzZSUyMCUyMiUyNDElMjIlMjBpbg==
    start)
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcmVzJTNEJTYwJTI0REFFTU9OJTIwLWslMjBwYXJzZSUyMC1mJTIwJTI0Q09ORklHJTIwMiUzRSUyNjElMjAlN0MlMjBncmVwJTIwLW8lMjAlMjJGQVRBTCUzQSUyMC4qJTIyJTYw
        if test -n "$res";
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwdGhlbg==
                log_failure_msg "$res"
                exit 3
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwZWxzZQ==
                log_daemon_msg "Starting $DESC" "$NAME"
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwaWYlMjBzdGFydCUyMCUzQiUyMHRoZW4=
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwbG9nX2VuZF9tc2clMjAlMjQlM0Y=
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwZWxzZQ==
                        log_end_msg $?
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwZmk=
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwZmk=
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNCJTNC
JTIwJTIwJTIwJTIwc3RvcCk=
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwbG9nX2RhZW1vbl9tc2clMjAlMjJTdG9wcGluZyUyMCUyNERFU0MlMjIlMjAlMjIlMjROQU1FJTIy
        if stop ; then
                log_end_msg $?
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwZWxzZQ==
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwbG9nX2VuZF9tc2clMjAlMjQlM0Y=
        fi
        ;;
    reload|force-reload)
        res=`$DAEMON -k parse -f $CONFIG 2>&1 | grep -o "FATAL: .*"`
        if test -n "$res";
        then
                log_failure_msg "$res"
                exit 3
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwZWxzZQ==
                log_action_msg "Reloading $DESC configuration files"
                start-stop-daemon --stop --signal 1 \
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwLS1waWRmaWxlJTIwJTI0UElERklMRSUyMC0tcXVpZXQlMjAtLWV4ZWMlMjAlMjREQUVNT04=
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwbG9nX2FjdGlvbl9lbmRfbXNnJTIwMA==
        fi
        ;;
JTIwJTIwJTIwJTIwcmVzdGFydCk=
        res=`$DAEMON -k parse -f $CONFIG 2>&1 | grep -o "FATAL: .*"`
        if test -n "$res";
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwdGhlbg==
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwbG9nX2ZhaWx1cmVfbXNnJTIwJTIyJTI0cmVzJTIy
                exit 3
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwZWxzZQ==
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwbG9nX2RhZW1vbl9tc2clMjAlMjJSZXN0YXJ0aW5nJTIwJTI0REVTQyUyMiUyMCUyMiUyNE5BTUUlMjI=
                stop
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwaWYlMjBzdGFydCUyMCUzQiUyMHRoZW4=
                        log_end_msg $?
                else
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwbG9nX2VuZF9tc2clMjAlMjQlM0Y=
                fi
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwZmk=
        ;;
    status)
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwc3RhdHVzX29mX3Byb2MlMjAtcCUyMCUyNFBJREZJTEUlMjAlMjREQUVNT04lMjAlMjROQU1FJTIwJTI2JTI2JTIwZXhpdCUyMDAlMjAlN0MlN0MlMjBleGl0JTIwMw==
        ;;
JTIwJTIwJTIwJTIwKik=
        echo "Usage: /etc/init.d/$NAME {start|stop|reload|force-reload|restart|status}"
        exit 3
        ;;
ZXNhYw==

exit 0

JUQwJTlEJUQwJUIwJUQxJTgxJUQxJTgyJUQxJTgwJUQwJUJFJUQwJUI5JUQwJUJBJUQwJUIwJTIwU3F1aWQlMjAlRDAlQjQlRDAlQkIlRDElOEYlMjAlRDAlQjAlRDAlQjIlRDElODIlRDAlQkUlRDAlQjclRDAlQjAlRDAlQkYlRDElODMlRDElODElRDAlQkElRDAlQjAlMkMlMjAlRDAlQkUlRDAlQjElRDAlQkQlRDAlQkUlRDAlQjIlRDAlQkIlRDAlQjUlRDAlQkQlRDAlQjglRDAlQjUlMjAlRDAlQkElRDAlQkUlRDAlQkQlRDElODQlRDAlQjglRDAlQjMlRDElODMlRDElODAlRDAlQjAlRDElODYlRDAlQjglRDAlQjglMjBzeXN0ZW1kJTJDJTIwJUQwJUI3JUQwJUIwJUQwJUJGJUQxJTgzJUQxJTgxJUQwJUJBJTIwJUQwJUI4JTIwJUQwJUJGJUQxJTgwJUQwJUJFJUQwJUIyJUQwJUI1JUQxJTgwJUQwJUJBJUQwJUIwJTIwJUQxJTgwJUQwJUIwJUQwJUIxJUQwJUJFJUQxJTgyJUQxJThCJTIwJUQxJTgxJUQwJUJCJUQxJTgzJUQwJUI2JUQwJUIxJUQxJThCJTNB

chmod a+x /etc/init.d/squid
update-rc.d squid defaults

c3lzdGVtY3RsJTIwZGFlbW9uLXJlZXhlYw==
systemctl daemon-reload

JTJGZXRjJTJGaW5pdC5kJTJGc3F1aWQlMjBzdGFydA==
JTJGZXRjJTJGaW5pdC5kJTJGc3F1aWQlMjBzdGF0dXM=
 

ПОНРАВИЛАСЬ ИЛИ ОКАЗАЛАСЬ ПОЛЕЗНОЙ СТАТЬЯ, ПОДДЕРЖИ АВТОРА ДОНАТОМ

Обсуждение

Ответ на комментарий АлександрОтмена ответа
104 комментариев
  • Все делал по вашей инструкции, но на этапе установки пакета
    sudo dpkg —install squid_3.5.19-1_amd64.deb
    ошибка:
    invoke-rc.d: unknown initscript, /etc/init.d/squid3 not found.
    dpkg: ошибка при обработке пакета squid (—install):
    подпроцесс установлен сценарий post-installation возвратил код ошибки 100
    Обрабатываются триггеры для man-db (2.6.7.1-1ubuntu1) …
    Обрабатываются триггеры для ureadahead (0.100.0-16) …
    Обрабатываются триггеры для ufw (0.34~rc-0ubuntu2) …
    При обработке следующих пакетов произошли ошибки:
    squid

    Прошу помощи!

  • Да, два раза делал и перепроверял все. Не могу понять в чем проблема

  • А точно правильно собирали пакет Squid ?
    Эти компоненты указывали при сборке ?
    —with-openssl \
    —enable-ssl \
    —enable-ssl-crtd

  • ТАм так и есть, это просто не влезло

  • В этой строке:
    # Подключение по HTTPS через прозрачный порт с параметрами подставки сертификата
    https_port 10.11.0.3:3129 intercept ssl-bump options=ALL:NO_SSLv3:NO_SSLv2 conn$

    Должно быть:
    # Подключение по HTTPS через прозрачный порт с параметрами подставки сертификата
    https_port 10.11.0.3:3129 intercept ssl-bump options=ALL:NO_SSLv3:NO_SSLv2 connection-auth=off cert=/etc/squid/squidca.pem

  • я пока не стал даже файлы менять, дописывать запреты и т.п, так как squid даже не запускается

  • ######################################
    # Обслуживаемые прокси-сервером сети #
    ######################################
    acl localnet src 10.10.0.0/22
    #################################################
    # Правила какие порты разрешены прокси-сервером #
    #################################################
    # Порт SSL для подключений по HTTPS-протоколу
    acl SSL_ports port 443
    # Список портов, к которым разрешен доступ через прокси-сервер по протоколу HTTP
    acl Safe_ports port 80 # http
    acl Safe_ports port 21 # ftp
    acl Safe_ports port 443 # https
    acl Safe_ports port 70 # gopher
    acl Safe_ports port 210 # wais
    acl Safe_ports port 1025-65535 # unregistered ports
    acl Safe_ports port 280 # http-mgmt
    acl Safe_ports port 488 # gss-http
    acl Safe_ports port 591 # filemaker
    acl Safe_ports port 777 # multiling http
    acl CONNECT method CONNECT
    ################################################################
    # Пути к файлам запрещающих, разрешающих определенные действия #
    ################################################################
    # Путь к списку IP-адресов пользователей, для которых не действуют запреты
    acl AdminsIP src «/etc/squid/AdminsIP.txt»
    # Путь к черному списку сайтов
    acl BlackList dstdomain «/etc/squid/BlackList.txt»
    # Путь к списку адресов которым запрещен интернет
    acl BlockInetExlWhite src «/etc/squid/BlockInetExlWhite.txt»
    # Путь к белому списку сайтов
    acl WhiteList dstdomain «/etc/squid/WhiteList.txt»
    #########################
    # Параметры DNS записей #
    #########################
    # Список DNS серверов(IP адреса), которые будут использоваться вместо тех, что $
    dns_nameservers 192.168.5.3
    ########################################
    # Правила ограничений доступа клиентов #
    ########################################
    # Запретить доступ к портам, отсутствующим в списке выше
    http_access deny !Safe_ports
    # Запретить метод CONNECT не на SSL-порт
    http_access deny CONNECT !SSL_ports
    # Разрешить только локальное управление кэшем
    http_access allow localhost manager
    http_access deny manager
    # Не ограничивать локальный доступ с сервер
    http_access allow localhost
    # Не ограничивать доступ администраторам
    http_access allow AdminsIP
    # Блокировать интернет конкретным пользователям
    http_access deny BlockInetExlWhite !WhiteList
    # Блокировать запрещенные сайты
    http_access deny BlackList
    # Правила разрешающего доступ в интернет из локальной сети указанной в localnet
    http_access allow localnet
    # Блокирует все, что не было разрешено выше
    http_access deny all
    #############################################
    # Правила подключений клиентов к прокси-серверу#
    #############################################
    # Подключения через прозрачный порт
    http_port 10.11.0.3:3128 intercept options=NO_SSLv3:NO_SSLv2
    # Подключение через указания прокси-сервера на стороне клиента
    http_port 10.11.0.3:3130 options=NO_SSLv3:NO_SSLv2
    # Подключение по HTTPS через прозрачный порт с параметрами подставки сертификата
    https_port 10.11.0.3:3129 intercept ssl-bump options=ALL:NO_SSLv3:NO_SSLv2 conn$
    # Принимаем сертификаты, даже если они не прошли проверку.
    always_direct allow all
    sslproxy_cert_error allow all
    sslproxy_flags DONT_VERIFY_PEER
    # Укажем список блокируемых ресурсов (в файле домены вида .domain.com) и правил$
    acl blocked ssl::server_name «/etc/squid/BlackList.txt»
    # Устанавливаем защищенное соединение и считываем заголовок HTTP
    acl step1 at_step SslBump1
    ssl_bump peek step1
    # Закрываем соединение, если клиент заходит на ресурс указанные в blocked
    ssl_bump terminate blocked
    ssl_bump splice all
    sslcrtd_program /usr/lib/squid/ssl_crtd -s /var/lib/ssl_db -M 4MB
    #########################################
    # Дополнительные параметры конфигурации #
    #########################################
    # Путь для дискового кеширования
    cache_dir aufs /var/spool/squid 20000 49 256
    # Путь сохранения дампов аварийного завершения
    coredump_dir /var/spool/squid
    # Время жизни объектов для протоколов FTP и GOPHER
    refresh_pattern ^ftp: 1440 20% 10080
    refresh_pattern ^gopher: 1440 0% 1440
    # Нулевое время жизни для динамического контента
    refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
    # Время жизни по умолчанию
    refresh_pattern . 0 20% 4320
    maximum_object_size 61440 KB
    minimum_object_size 3 KB
    cache_swap_low 90
    cache_swap_high 95
    # Максимальный размер объекта, сохраняемого в оперативной памяти
    maximum_object_size_in_memory 512 KB
    memory_replacement_policy lru
    # Количество ротаций лог-файлов (0 — отключена ротация, 15 — максимальное коли$
    logfile_rotate 0

  • Все делал по инструкции. При запуске squid выдает ошибку: FATAL: Unknow http_port option ‘options=NO_SSLv3:NO_SSLv2’.
    FATAL: Bungled /etc/squid/squid.conf line 64: http_port 10.11.0.3:3128 intercept options=NO_SSLv3:NO_SSLv2

  • Только что посмотрел свой рабочий конфиг, у меня там вот так:
    # Не ограничивать доступ администраторам
    http_access allow AdminsIP

    И все отрабатывает нормально. Все таки как первый раз написал исправить, верно. Должно все работать.

    Верните значение на:
    # Не ограничивать доступ администраторам
    http_access allow AdminsIP BlackList

    И попробуйте остановить Squid и запустить. Должно так работать, конфиг у вас правильный, можно сказать аналогичный как у меня, у меня то отрабатывает AdminsIP.txt

    • Это ответ на комментарий Жаконда

      # Не ограничивать доступ администраторам
      http_access allow AdminsIP BlackList
      при таком конфиге в мозиле ошибка при установлении защищенного режима
      в хроме ERR_CONNECTION_CLOSED

      # Не ограничивать доступ администраторам
      http_access allow AdminsIP !BlackList
      при таком конфиге в мозиле ошибка при установлении защищенного режима
      в хроме ERR_CONNECTION_CLOSED

      # Не ограничивать доступ администраторам
      http_access allow AdminsIP
      при таком конфиге в мозиле ошибка при установлении защищенного режима
      в хроме ERR_CONNECTION_CLOSED

      ни один из вариантов не сработал. при этом stop выполняется дольше чем start

      • Это ответ на комментарий Николай

        убрал сайты из blacklist и все работает не обрабатывается как будто Adminip

  • прошла минута и на первом перестал открываться youtube

    • Это ответ на комментарий Николай

      Сори мой косяк, сразу не правильно указал. В конфиге вот так укажите:

      # Не ограничивать доступ администраторам
      http_access allow AdminsIP !BlackList

      И все будет хорошо

        • Это ответ на комментарий Николай

          А должно было, покажите еще раз конфиг свой

        • Это ответ на комментарий Жаконда

          ######################################
          # Обслуживаемые прокси-сервером сети #
          ######################################
          acl localnet src 172.16.32.0/24
          #################################################
          # Правила какие порты разрешены прокси-сервером #
          #################################################
          # Порт SSL для подключений по HTTPS-протоколу
          acl SSL_ports port 443
          # Список портов, к которым разрешен доступ через прокси-сервер по протоколу HTTP
          acl Safe_ports port 80 # http
          acl Safe_ports port 21 # ftp
          acl Safe_ports port 443 # https
          acl Safe_ports port 70 # gopher
          acl Safe_ports port 210 # wais
          acl Safe_ports port 1025-65535 # unregistered ports
          acl Safe_ports port 280 # http-mgmt
          acl Safe_ports port 488 # gss-http
          acl Safe_ports port 591 # filemaker
          acl Safe_ports port 777 # multiling http
          acl CONNECT method CONNECT
          ################################################################
          # Пути к файлам запрещающих, разрешающих определенные действия #
          ################################################################
          # Путь к списку IP-адресов пользователей, для которых не действуют запреты
          acl AdminsIP src «/etc/squid/AdminsIP.txt»
          # Путь к черному списку сайтов
          acl BlackList dstdomain «/etc/squid/BlackList.txt»
          # Путь к списку адресов которым запрещен интернет
          acl BlockInetExlWhite src «/etc/squid/BlockInetExlWhite.txt»
          # Путь к белому списку сайтов
          acl WhiteList dstdomain «/etc/squid/WhiteList.txt»
          #########################
          # Параметры DNS записей #
          #########################
          # Список DNS серверов(IP адреса), которые будут использоваться вместо тех, что определены в /etc/resolv.conf файле
          dns_nameservers 8.8.4.4
          ########################################
          # Правила ограничений доступа клиентов #
          ########################################
          # Запретить доступ к портам, отсутствующим в списке выше
          http_access deny !Safe_ports
          # Запретить метод CONNECT не на SSL-порт
          http_access deny CONNECT !SSL_ports
          # Разрешить только локальное управление кэшем
          http_access allow localhost manager
          http_access deny manager
          # Не ограничивать локальный доступ с сервера
          http_access allow localhost
          # Не ограничивать доступ администраторам
          http_access allow AdminsIP !BlackList
          # Блокировать интернет конкретным пользователям
          http_access deny BlockInetExlWhite !WhiteList
          # Блокировать запрещенные сайты
          http_access deny BlackList
          # Правила разрешающего доступ в интернет из локальной сети указанной в localnet
          http_access allow localnet
          # Блокирует все, что не было разрешено выше
          http_access deny all
          #############################################
          # Правила подключений клиентов к прокси-серверу#
          #############################################
          # Подключения через прозрачный порт
          http_port 172.16.32.1:3128 intercept options=NO_SSLv3:NO_SSLv2
          # Подключение через указания прокси-сервера на стороне клиента
          http_port 172.16.32.1:3130 options=NO_SSLv3:NO_SSLv2
          # Подключение по HTTPS через прозрачный порт с параметрами подставки сертификата
          https_port 172.16.32.1:3129 intercept ssl-bump options=ALL:NO_SSLv3:NO_SSLv2 connection-auth=off cert=/etc/squid/squidca.pem
          # Принимаем сертификаты, даже если они не прошли проверку.
          always_direct allow all
          sslproxy_cert_error allow all
          sslproxy_flags DONT_VERIFY_PEER
          # Укажем список блокируемых ресурсов (в файле домены вида .domain.com) и правила блокировки их
          acl blocked ssl::server_name «/etc/squid/BlackList.txt»
          # Устанавливаем защищенное соединение и считываем заголовок HTTP
          acl step1 at_step SslBump1
          ssl_bump peek step1
          # Закрываем соединение, если клиент заходит на ресурс указанные в blocked
          ssl_bump terminate blocked
          ssl_bump splice all
          sslcrtd_program /usr/lib/squid/ssl_crtd -s /var/lib/ssl_db -M 4MB
          #########################################
          # Дополнительные параметры конфигурации #
          #########################################
          # Путь для дискового кеширования
          cache_dir aufs /var/spool/squid 20000 49 256
          # Путь сохранения дампов аварийного завершения
          coredump_dir /var/spool/squid
          # Время жизни объектов для протоколов FTP и GOPHER
          refresh_pattern ^ftp: 1440 20% 10080
          refresh_pattern ^gopher: 1440 0% 1440
          # Нулевое время жизни для динамического контента
          refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
          # Время жизни по умолчанию
          refresh_pattern . 0 20% 4320
          maximum_object_size 61440 KB
          minimum_object_size 3 KB
          cache_swap_low 90
          cache_swap_high 95
          # Максимальный размер объекта, сохраняемого в оперативной памяти
          maximum_object_size_in_memory 512 KB
          memory_replacement_policy lru
          # Количество ротаций лог-файлов (0 — отключена ротация, 15 — максимальное количество)
          logfile_rotate 0
          # E-mail адрес Cache менеджера, для отправки уведомлений и отображении в страницах ошибок
          #cache_mgr it@admin.ru

          /etc/squid/AdminsIP.txt
          172.16.32.13
          172.16.32.10

          /etc/squid/BlackList.txt
          .youtube.com
          .rutube.ru

          /etc/squid/BlockInetExlWhite.txt и /etc/squid/WhiteList.txt пустые

  • странно работает AdminIP.txt. добавил второй ip в список. на первом начал работать. а второй так и блокирует youtube. и можно ли блокировать определенный контент на определенном сайте?

    • Это ответ на комментарий Николай

      А каким методом вы добавляете IP-адреса в файл AdminIP.txt ?
      таким:
      192.168.1.2
      192.168.1.3
      и т.д. ?
      После внесения изменений обязательно выполняйте sudo service squid reload — для того чтобы сквид перечитал возможно внесенные изменения.

      Можно блокировать загрузку картинок, музыки, видео и т.д., но при этом будет блокироваться все что попадает под критерии блокировки.

      • Это ответ на комментарий Жаконда

        именно так и ввожу. но перезагрузку делаю /etc/init.d/squid restart. сообщает что запустился. но все равно сайт блочится для всех

        • Это ответ на комментарий Николай

          если есть возможность. могу дать вам удаленный доступ и на сервер и на ком-р

        • Это ответ на комментарий Николай

          не знаю в чем причина такой работы

  • спасибо. Завелось!
    Скажите, а возможно ли проксировать https при том, когда прокси прописан в браузерах? И возможна ли ntlm авторизация при прозрачном squid?

    • Это ответ на комментарий Рустам

      Пожалуйста. Если делали все по заметке, то у вас проксируется https трафик. И так же будет блокироваться сайт если вы его внесете в файл блокировки. Только при блокировке https трафика не будет выдаваться пользователю страница Squid сообщающая о том что ресурс заблокирован и т.д., а у пользователя будет просто не открываться сайт.

      Авторизация возможна, но к сожалению у меня не было необходимости в ней и я не разбирал как ее применить. Но разберу и выложу заметку.

  • ######################################
    # Обслуживаемые прокси-сервером сети #
    ######################################
    acl localnet src 172.16.32.0/24
    #################################################
    # Правила какие порты разрешены прокси-сервером #
    #################################################
    # Порт SSL для подключений по HTTPS-протоколу
    acl SSL_ports port 443
    # Список портов, к которым разрешен доступ через прокси-сервер по протоколу HTTP
    acl Safe_ports port 80 # http
    acl Safe_ports port 21 # ftp
    acl Safe_ports port 443 # https
    acl Safe_ports port 70 # gopher
    acl Safe_ports port 210 # wais
    acl Safe_ports port 1025-65535 # unregistered ports
    acl Safe_ports port 280 # http-mgmt
    acl Safe_ports port 488 # gss-http
    acl Safe_ports port 591 # filemaker
    acl Safe_ports port 777 # multiling http
    acl CONNECT method CONNECT
    ################################################################
    # Пути к файлам запрещающих, разрешающих определенные действия #
    ################################################################
    # Путь к списку IP-адресов пользователей, для которых не действуют запреты
    acl AdminsIP src «/etc/squid/AdminsIP.txt»
    # Путь к черному списку сайтов
    acl BlackList dstdomain «/etc/squid/BlackList.txt»
    # Путь к списку адресов которым запрещен интернет
    acl BlockInetExlWhite src «/etc/squid/BlockInetExlWhite.txt»
    # Путь к белому списку сайтов
    acl WhiteList dstdomain «/etc/squid/WhiteList.txt»
    #########################
    # Параметры DNS записей #
    #########################
    # Список DNS серверов(IP адреса), которые будут использоваться вместо тех, что определены в /etc/resolv.conf файле
    dns_nameservers 8.8.4.4
    ########################################
    # Правила ограничений доступа клиентов #
    ########################################
    # Запретить доступ к портам, отсутствующим в списке выше
    http_access deny !Safe_ports
    # Запретить метод CONNECT не на SSL-порт
    http_access deny CONNECT !SSL_ports
    # Разрешить только локальное управление кэшем
    http_access allow localhost manager
    http_access deny manager
    # Не ограничивать локальный доступ с сервера
    http_access allow localhost
    # Не ограничивать доступ администраторам
    http_access allow AdminsIP BlackList
    # Блокировать интернет конкретным пользователям
    http_access deny BlockInetExlWhite !WhiteList
    # Блокировать запрещенные сайты
    http_access deny BlackList
    # Правила разрешающего доступ в интернет из локальной сети указанной в localnet
    http_access allow localnet
    # Блокирует все, что не было разрешено выше
    http_access deny all
    #############################################
    # Правила подключений клиентов к прокси-серверу#
    #############################################
    # Подключения через прозрачный порт
    http_port 172.16.32.1:3128 intercept options=NO_SSLv3:NO_SSLv2
    # Подключение через указания прокси-сервера на стороне клиента
    http_port 172.16.32.1:3130 options=NO_SSLv3:NO_SSLv2
    # Подключение по HTTPS через прозрачный порт с параметрами подставки сертификата
    https_port 172.16.32.1:3129 intercept ssl-bump options=ALL:NO_SSLv3:NO_SSLv2 connection-auth=off cert=/etc/squid/squidca.pem
    # Принимаем сертификаты, даже если они не прошли проверку.
    always_direct allow all
    sslproxy_cert_error allow all
    sslproxy_flags DONT_VERIFY_PEER
    # Укажем список блокируемых ресурсов (в файле домены вида .domain.com) и правила блокировки их
    acl blocked ssl::server_name «/etc/squid/BlackList.txt»
    # Устанавливаем защищенное соединение и считываем заголовок HTTP
    acl step1 at_step SslBump1
    ssl_bump peek step1
    # Закрываем соединение, если клиент заходит на ресурс указанные в blocked
    ssl_bump terminate blocked
    ssl_bump splice all
    sslcrtd_program /usr/lib/squid/ssl_crtd -s /var/lib/ssl_db -M 4MB
    #########################################
    # Дополнительные параметры конфигурации #
    #########################################
    # Путь для дискового кеширования
    cache_dir aufs /var/spool/squid 20000 49 256
    # Путь сохранения дампов аварийного завершения
    coredump_dir /var/spool/squid
    # Время жизни объектов для протоколов FTP и GOPHER
    refresh_pattern ^ftp: 1440 20% 10080
    refresh_pattern ^gopher: 1440 0% 1440
    # Нулевое время жизни для динамического контента
    refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
    # Время жизни по умолчанию
    refresh_pattern . 0 20% 4320
    maximum_object_size 61440 KB
    minimum_object_size 3 KB
    cache_swap_low 90
    cache_swap_high 95
    # Максимальный размер объекта, сохраняемого в оперативной памяти
    maximum_object_size_in_memory 512 KB
    memory_replacement_policy lru
    # Количество ротаций лог-файлов (0 — отключена ротация, 15 — максимальное количество)
    logfile_rotate 0
    # E-mail адрес Cache менеджера, для отправки уведомлений и отображении в страницах ошибок
    #cache_mgr it@admin.ru

    • Это ответ на комментарий Николай

      В этой строке:
      # Не ограничивать доступ администраторам
      http_access allow AdminsIP BlackList
      Уберите BlackList и будет все работать нормально.

      • Это ответ на комментарий Жаконда

        это я потом поставил как проверку. при таком написании http_access allow AdminsIP не работает все равно

        • Это ответ на комментарий Николай

          именно таким образом. а после выполняю /etc/init.d/squid restart. но все равно сайт блочится для всех

  • Добрый день. я новичок в настройке sqiuda. сделал все по вашей статье. в AdminIP.txt прописал ip 172.16.32.13 а в файле BlackList.txt прописал .youtube.com он у меня заблочился и для 172.16.32.13. можете привести примеры заполнения всех файлов.
    в файерволе
    -A PREROUTING -s 172.16.32.0/24 -p tcp -m tcp —dport 80 -j REDIRECT —to-port 3128
    -A PREROUTING -s 172.16.32.0/24 -p tcp -m tcp —dport 443 -j REDIRECT —to-port 3129
    -A POSTROUTING -s 172.16.32.0/24 -o eth0 -j SNAT —to-source 10.0.88.12

  • В общем чем дальше тем не понятнее. Уже на реальной машине вернул исходную строку (с кавычками) и работает :/. Посмотрю что будет после перезагрузки системы.

    • Это ответ на комментарий vlad

      Ясно одно, вы определенно что то делаете не так, но не понятно что 🙂
      Если все делать как описано выше, то все работать будет. Проверено уже не однократно.

      • Это ответ на комментарий Жаконда

        🙂 Я просто возвращаю конфиги на место из архива и рабочей системы. Всё. Сейчас, кстати работает и с кавычками, просто добавил кавычки и перезапустил squid и всё заработало. Я не знаю в чём дело. Ещё дополнительно на виртуальной машине экспериментировал, там чётко была разница, ставлю кавычки — ошибка, убираю — запускается. Но когда я вновь поставил кавычки и удалил все записи из файла blocklist, то squid нормально перезапустился, предупредив что данный файл пуст. Не увидев никакой логики, я оставил всё как есть.

        • Это ответ на комментарий vlad

          Само по себе разрешилось, что уже хорошо ! Но все так же остался не понятным почему все таки Squid не воспринимал обозначенный acl с ковычками.. Будет время на тестовой машине, по экспериментирую.

  • По вашей статье (3.5.19). Тот самый пакет который выдавал ошибку. Кстати, я поставил на реальную машину, тоже была описанная выше ошибка, с тем же конфиг файлом. После того как убрал кавычки в acl blocked ssl::server_name «/etc/squid/blocklist», заработало…

    • Это ответ на комментарий vlad

      А ради интереса попробуйте создать файл блокировки block.txt и указать acl такой acl blocked ssl::server_name "/etc/squid/block.txt", заработает ли ?

      • Это ответ на комментарий Жаконда

        Пока могу проверить только на виртуалке. То же самое, ошибка в строке 69. Но я попробовал ещё раз вариант с кавычками, убрал, заработало и на виртуалке, т.е. просто оставил /etc/squid/blocklist без кавычек.
        Ещё, уже на реальной машине, после какой-то перезагрузки возникла ошибка:
        squid[494]: segfault at 308 ip 000055ea265d3afc sp 00007ffce7f9c1a0 error 4 in squid[55ea262b2000+674000]
        squid.service: Main process exited, code=dumped, status=11/SEGV
        squid.service: Unit entered failed state.
        squid.service: Failed with result ‘core-dump’.
        Запустил в ручную systemctl start squid, снова заработал.

  • Я сейчас с той строки убрал кавычки, squid нормально запустился, сайты из blocklist вроде блочатся.

    • Это ответ на комментарий vlad

      acl directlist url_regex -i «/etc/squid/directlist» — а это у вас для чего ?

      • Это ответ на комментарий Жаконда

        Сейчас он пуст. Для «прямого захода», т.к. squid работает за privoxy.

  • Вот полный конфиг:
    acl localnet src 192.168.0.0/16
    acl localnet src fc00::/7
    acl localnet src fe80::/64
    acl globalIPv6 src ipv6
    acl ftp proto FTP
    acl SSL_ports port 443
    acl CONNECT method CONNECT
    acl directlist url_regex -i «/etc/squid/directlist»
    via off
    forwarded_for off
    follow_x_forwarded_for deny all
    request_header_access cache-control deny all
    request_header_access referer deny directlist
    http_access deny !Safe_ports
    http_access deny CONNECT !SSL_ports
    http_access allow localhost manager
    http_access deny manager
    http_access allow globalIPv6
    http_access allow localnet
    http_access allow localhost
    http_access deny all
    http_access allow directlist
    http_port 3128
    http_port 3129 intercept
    https_port 3130 intercept ssl-bump connection-auth=off options=ALL cert=/etc/squid/squidCA.pem
    sslproxy_flags DONT_VERIFY_PEER
    sslproxy_cert_error allow all
    acl blocked ssl::server_name «/etc/squid/blocklist»
    acl step1 at_step SslBump1
    ssl_bump peek step1
    ssl_bump terminate blocked
    ssl_bump splice all
    coredump_dir /var/spool/squid
    refresh_pattern ^ftp: 1440 20% 10080
    refresh_pattern ^gopher: 1440 0% 1440
    refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
    refresh_pattern . 0 20% 4320
    cache_mem 1024 MB
    maximum_object_size_in_memory 512 KB
    cache_dir ufs /var/spool/squid 2048 16 256
    maximum_object_size 4 MB
    access_log daemon:/var/log/squid/access.log squid
    logfile_rotate 10
    error_directory /usr/share/squid/errors/ru
    cache_peer 127.0.0.1 parent 8118 7 no-query default
    always_direct allow ftp
    always_direct deny directlist
    always_direct deny all
    never_direct allow all
    cache_effective_user proxy
    cache_effective_group proxy

    Делалось по мотивам этих двух статей:
    (Сайты на сторонние ресурсы не надо указывать)
    На сквиде в статьях, этот конфиг работает.

    • Это ответ на комментарий vlad

      Вот эту строку acl blocked ssl::server_name «/etc/squid/blocklist» приведите к виду acl blocked ssl::server_name "/etc/squid/blocklist" и попробуйте. Знаки «» не допустимы в конфиге.

      Да и странно что вы судя по конфигу вводите список сайтов блокировки только для HTTPS соединений, а HTTP не блокируете.. Ну хотя может быть вы так и задумали 🙂

      • Это ответ на комментарий Жаконда

        Это так скопировалось, в конфиге нормальные кавычки. Да, так задумано :). На squid 3.5.8 этот конфиг работает.

        • Это ответ на комментарий vlad

          Да по идее и тут должно работать, строка вроде бы правильно прописана, смущают ковычки, но раз вы говорите что в конфиге они нормальные, то должно работать. А файл то создан и существует ?

  • Здравствуйте! Не подскажите, возникает ошибка:

    FATAL: Bungled /etc/squid/squid.conf line 69: acl blocked ssl::server_name «/etc/squid/blocklist»

    Если эту строку закомментировать, то следующая:

    FATAL: Bungled /etc/squid/squid.conf line 74: ssl_bump terminate blocked

    Правда ставил на 16.04, но в начале работало, потом переставил начисто чтоб убедиться что заработает на чистой системе, после этого и появилась эта ошибка. Всё делал в Oracle VM VirtualBox, недостающие зависимости ставил через apt-get install -f.

    • Это ответ на комментарий vlad

      Добрый вечер !

      Судя по ошибке, blocklist файл не верно указан в acl и поэтому конфиг не может принять данную строку. А то что комментируете строку acl blocked ssl::server_name «/etc/squid/blocklist» и следом выдает ошибку на ssl_bump terminate blocked это потому что последняя напрямую зависит от закомментированной строки.

      Покажите конфиг

Постраничная навигация комментариев