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

Установка Squid 5.5 с поддержкой HTTPS (ssl_bump) на Debian 10 Buster

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

JUQwJUEwJUQwJUIwJUQwJUI3JUQwJUIxJUQwJUI1JUQxJTgwJUQwJUI1JUQwJUJDJTIwJUQwJUJBJUQwJUIwJUQwJUJBJTIwJUQxJTgzJUQxJTgxJUQxJTgyJUQwJUIwJUQwJUJEJUQwJUJFJUQwJUIyJUQwJUI4JUQxJTgyJUQxJThDJTIwJUQwJUI4JUQwJUI3JTIwJUQwJUI4JUQxJTgxJUQxJTg1JUQwJUJFJUQwJUI0JUQwJUJEJUQwJUI4JUQwJUJBJUQwJUJFJUQwJUIyJTIwJUQwJUIwJUQwJUJBJUQxJTgyJUQxJTgzJUQwJUIwJUQwJUJCJUQxJThDJUQwJUJEJUQxJTgzJUQxJThFJTIwKCVEMCVCRCVEMCVCMCUyMCVEMCVCQyVEMCVCRSVEMCVCQyVEMCVCNSVEMCVCRCVEMSU4MiUyMCVEMCVCRCVEMCVCMCVEMCVCRiVEMCVCOCVEMSU4MSVEMCVCMCVEMCVCRCVEMCVCOCVEMSU4RiUyMCVEMSU4MSVEMSU4MiVEMCVCMCVEMSU4MiVEMSU4QyVEMCVCOCklMjAlRDAlQjIlRDAlQjUlRDElODAlRDElODElRDAlQjglRDElOEUlMjAlRDAlQkElRDAlQjUlRDElODglRDAlQjglRDElODAlRDElODMlRDElOEUlRDElODklRDAlQjUlRDAlQjMlRDAlQkUlMjAlRDAlQkYlRDElODAlRDAlQkUlRDAlQkElRDElODElRDAlQjgtJUQxJTgxJUQwJUI1JUQxJTgwJUQwJUIyJUQwJUI1JUQxJTgwJUQwJUIwJTIwU3F1aWQlMjA1LjUlMjAlRDAlQkQlRDAlQjAlMjBEZWJpYW4lMjAxMCUyMEJ1c3Rlci4=

Хочу сообщить что ниже описанное руководство, так же применимо к установке младших версии Squid 4, 5.x

Установка прокси-сервера Squid

Устанавливаем необходимые зависимости для сборки и работы Squid:

apt-get update
apt-get install build-essential make libssl-dev libkrb5-dev libldap2-dev libk5crypto3 libsasl2-dev libpam0g libcap2-dev

Скачиваем и распаковываем исходники Squid:

Y2QlMjAlMkZvcHQlMkY=
d2dldCUyMGh0dHAlM0ElMkYlMkZ3d3cuc3F1aWQtY2FjaGUub3JnJTJGVmVyc2lvbnMlMkZ2NSUyRnNxdWlkLTUuNS50YXIuZ3o=
dGFyJTIwLXp4dmYlMjBzcXVpZC01LjUudGFyLmd6
Y2QlMjBzcXVpZC01LjU=

JUQwJTkyJUQxJThCJUQwJUJGJUQwJUJFJUQwJUJCJUQwJUJEJUQxJThGJUQwJUI1JUQwJUJDJTIwJUQwJUJBJUQwJUJFJUQwJUJEJUQxJTg0JUQwJUI4JUQwJUIzJUQxJTgzJUQxJTgwJUQwJUI4JUQxJTgwJUQwJUJFJUQwJUIyJUQwJUIwJUQwJUJEJUQwJUI4JUQwJUI1JTIwJUQxJTgxJTIwJUQwJUJGJUQwJUJFJUQwJUI0JUQwJUI0JUQwJUI1JUQxJTgwJUQwJUI2JUQwJUJBJUQwJUJFJUQwJUI5JTIwSFRUUFMlM0E=

./configure --prefix=/usr --localstatedir=/var --libexecdir=/usr/lib/squid --datadir=/usr/share/squid --sysconfdir=/etc/squid --enable-ssl-crtd --with-openssl --enable-translation --enable-cpu-profiling --disable-dependency-tracking --disable-ipv6 --enable-removal-policies="lru,heap" -enable-delay-pools --enable-icmp --enable-linux-netfilter --enable-external-acl-helpers --with-large-files --with-default-user=proxy --with-logdir=/var/log/squid --with-pidfile=/var/run/squid.pid

Собираем и устанавливаем пакет Squid:

make
bWFrZSUyMGluc3RhbGw=

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

bWtkaXIlMjAtcCUyMCUyRnZhciUyRmxvZyUyRnNxdWlk
mkdir -p /etc/squid/ssl

chown proxy:proxy /var/log/squid
chown proxy:proxy /etc/squid/ssl
Y2htb2QlMjA3MDAlMjAlMkZ2YXIlMkZsb2clMkZzcXVpZA==
Y2htb2QlMjA3MDAlMjAlMkZldGMlMkZzcXVpZCUyRnNzbA==

JUQwJUExJUQwJUJFJUQwJUI3JUQwJUI0JUQwJUIwJUQwJUI1JUQwJUJDJTIwJUQxJTgxJUQxJTgyJUQwJUIwJUQxJTgwJUQxJTgyJUQwJUJFJUQwJUIyJUQxJThCJUQwJUI5JTIwJUQxJTgxJUQwJUJBJUQxJTgwJUQwJUI4JUQwJUJGJUQxJTgyJTIwU3F1aWQlMjAlRTIlODAlOTQlMjAlMkZldGMlMkZpbml0LmQlMkZzcXVpZCUzQQ==

/etc/init.d/squid
JTIzISUyMCUyRmJpbiUyRnNo
JTIz
JTIzJTIwc3F1aWQlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBTdGFydHVwJTIwc2NyaXB0JTIwZm9yJTIwdGhlJTIwU1FVSUQlMjBIVFRQJTIwcHJveHktY2FjaGUu
JTIz
# Version:      @(#)squid.rc  1.0  07-Jul-2006  luigi@debian.org
JTIz
# pidfile: /var/run/squid.pid
JTIz
### BEGIN INIT INFO
# Provides:          squid
JTIzJTIwUmVxdWlyZWQtU3RhcnQlM0ElMjAlMjAlMjAlMjAlMjRuZXR3b3JrJTIwJTI0cmVtb3RlX2ZzJTIwJTI0c3lzbG9n
# Required-Stop:     $network $remote_fs $syslog
JTIzJTIwU2hvdWxkLVN0YXJ0JTNBJTIwJTIwJTIwJTIwJTIwJTIwJTI0bmFtZWQ=
# Should-Stop:       $named
JTIzJTIwRGVmYXVsdC1TdGFydCUzQSUyMCUyMCUyMCUyMCUyMDIlMjAzJTIwNCUyMDU=
JTIzJTIwRGVmYXVsdC1TdG9wJTNBJTIwJTIwJTIwJTIwJTIwJTIwMCUyMDElMjA2
# Short-Description: Squid HTTP Proxy version 4.x
### END INIT INFO

NAME=squid
REVTQyUzRCUyMlNxdWlkJTIwSFRUUCUyMFByb3h5JTIy
REFFTU9OJTNEJTJGdXNyJTJGc2JpbiUyRnNxdWlk
PIDFILE=/var/run/$NAME.pid
CONFIG=/etc/squid/squid.conf
SQUID_ARGS="-YC -f $CONFIG"

JTVCJTIwISUyMC1mJTIwJTJGZXRjJTJGZGVmYXVsdCUyRnNxdWlkJTIwJTVEJTIwJTdDJTdDJTIwLiUyMCUyRmV0YyUyRmRlZmF1bHQlMkZzcXVpZA==

. /lib/lsb/init-functions

PATH=/bin:/usr/bin:/sbin:/usr/sbin

JTVCJTIwLXglMjAlMjREQUVNT04lMjAlNUQlMjAlN0MlN0MlMjBleGl0JTIwMA==

ulimit -n 65535

find_cache_dir () {
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwdyUzRCUyMiUyMCUyMCUyMCUyMCUyMCUyMiUyMCUyMyUyMHNwYWNlJTIwdGFi
        res=`$DAEMON -k parse -f $CONFIG 2>&1 |
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwZ3JlcCUyMCUyMlByb2Nlc3NpbmclM0ElMjIlMjAlN0M=
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwc2VkJTIwcyUyRi4qUHJvY2Vzc2luZyUzQSU1QyUyMCUyRiUyRiUyMCU3Qw==
                sed -ne '
                        s/^['"$w"']*'$1'['"$w"']\+[^'"$w"']\+['"$w"']\+\([^'"$w"']\+\).*$/\1/p;
                        t end;
                        d;
                        :end q'`
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTVCJTIwLW4lMjAlMjIlMjRyZXMlMjIlMjAlNUQlMjAlN0MlN0MlMjByZXMlM0QlMjQy
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwZWNobyUyMCUyMiUyNHJlcyUyMg==
}

Z3JlcGNvbmYlMjAoKSUyMCU3Qg==
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwdyUzRCUyMiUyMCUyMCUyMCUyMCUyMCUyMiUyMCUyMyUyMHNwYWNlJTIwdGFi
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcmVzJTNEJTYwJTI0REFFTU9OJTIwLWslMjBwYXJzZSUyMC1mJTIwJTI0Q09ORklHJTIwMiUzRSUyNjElMjAlN0M=
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwZ3JlcCUyMCUyMlByb2Nlc3NpbmclM0ElMjIlMjAlN0M=
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwc2VkJTIwcyUyRi4qUHJvY2Vzc2luZyUzQSU1QyUyMCUyRiUyRiUyMCU3Qw==
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwc2VkJTIwLW5lJTIwJw==
                        s/^['"$w"']*'$1'['"$w"']\+\([^'"$w"']\+\).*$/\1/p;
                        t end;
                        d;
                        :end q'`
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTVCJTIwLW4lMjAlMjIlMjRyZXMlMjIlMjAlNUQlMjAlN0MlN0MlMjByZXMlM0QlMjQy
        echo "$res"
JTdE

create_run_dir () {
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcnVuX2RpciUzRCUyRnZhciUyRnJ1biUyRnNxdWlk
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwdXNyJTNEJTYwZ3JlcGNvbmYlMjBjYWNoZV9lZmZlY3RpdmVfdXNlciUyMHByb3h5JTYw
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwZ3JwJTNEJTYwZ3JlcGNvbmYlMjBjYWNoZV9lZmZlY3RpdmVfZ3JvdXAlMjBwcm94eSU2MA==

        if [ "$(dpkg-statoverride --list $run_dir)" = "" ] &&
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTVCJTIwISUyMC1lJTIwJTI0cnVuX2RpciUyMCU1RCUyMCUzQiUyMHRoZW4=
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwbWtkaXIlMjAtcCUyMCUyNHJ1bl9kaXI=
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwY2hvd24lMjAlMjR1c3IlM0ElMjRncnAlMjAlMjRydW5fZGly
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTVCJTIwLXglMjAlMkZzYmluJTJGcmVzdG9yZWNvbiUyMCU1RCUyMCUyNiUyNiUyMHJlc3RvcmVjb24lMjAlMjRydW5fZGly
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwZmk=
JTdE

c3RhcnQlMjAoKSUyMCU3Qg==
        cache_dir=`find_cache_dir cache_dir`
        cache_type=`grepconf cache_dir`
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcnVuX2RpciUzRCUyRnZhciUyRnJ1biUyRnNxdWlk

        #
        # Create run dir (needed for several workers on SMP)
        #
        create_run_dir

JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIz
        # Create spool dirs if they don't exist.
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIz
        if test -d "$cache_dir" -a ! -d "$cache_dir/00"
        then
                log_warning_msg "Creating $DESC cache structure"
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTI0REFFTU9OJTIwLXolMjAtZiUyMCUyNENPTkZJRw==
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTVCJTIwLXglMjAlMkZzYmluJTJGcmVzdG9yZWNvbiUyMCU1RCUyMCUyNiUyNiUyMHJlc3RvcmVjb24lMjAtUiUyMCUyNGNhY2hlX2Rpcg==
        fi

JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwdW1hc2slMjAwMjc=
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwdWxpbWl0JTIwLW4lMjA2NTUzNQ==
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwY2QlMjAlMjRydW5fZGly
        start-stop-daemon --quiet --start \
                --pidfile $PIDFILE \
                --exec $DAEMON -- $SQUID_ARGS < /dev/null
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcmV0dXJuJTIwJTI0JTNG
JTdE

stop () {
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwUElEJTNEJTYwY2F0JTIwJTI0UElERklMRSUyMDIlM0UlMkZkZXYlMkZudWxsJTYw
        start-stop-daemon --stop --quiet --pidfile $PIDFILE --exec $DAEMON
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIz
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIzJTIwJTIwJTIwJTIwJTIwJTIwJTIwTm93JTIwd2UlMjBoYXZlJTIwdG8lMjB3YWl0JTIwdW50aWwlMjBzcXVpZCUyMGhhcyUyMF9yZWFsbHlfJTIwc3RvcHBlZC4=
        #
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwc2xlZXAlMjAy
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwaWYlMjB0ZXN0JTIwLW4lMjAlMjIlMjRQSUQlMjIlMjAlMjYlMjYlMjBraWxsJTIwLTAlMjAlMjRQSUQlMjAyJTNFJTJGZGV2JTJGbnVsbA==
        then
                log_action_begin_msg " Waiting"
                cnt=0
                while kill -0 $PID 2>/dev/null
                do
                        cnt=`expr $cnt + 1`
                        if [ $cnt -gt 24 ]
                        then
                                log_action_end_msg 1
                                return 1
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwZmk=
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwc2xlZXAlMjA1
                        log_action_cont_msg ""
                done
                log_action_end_msg 0
                return 0
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwZWxzZQ==
                return 0
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwZmk=
}

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"
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwUElERklMRSUzRCUyMiUyNGNmZ19waWRmaWxlJTIy
Zmk=

case "$1" in
    start)
        res=`$DAEMON -k parse -f $CONFIG 2>&1 | grep -o "FATAL: .*"`
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwaWYlMjB0ZXN0JTIwLW4lMjAlMjIlMjRyZXMlMjIlM0I=
        then
                log_failure_msg "$res"
                exit 3
        else
                log_daemon_msg "Starting $DESC" "$NAME"
                if start ; then
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwbG9nX2VuZF9tc2clMjAlMjQlM0Y=
                else
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwbG9nX2VuZF9tc2clMjAlMjQlM0Y=
                fi
        fi
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNCJTNC
JTIwJTIwJTIwJTIwc3RvcCk=
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwbG9nX2RhZW1vbl9tc2clMjAlMjJTdG9wcGluZyUyMCUyNERFU0MlMjIlMjAlMjIlMjROQU1FJTIy
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwaWYlMjBzdG9wJTIwJTNCJTIwdGhlbg==
                log_end_msg $?
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwZWxzZQ==
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwbG9nX2VuZF9tc2clMjAlMjQlM0Y=
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwZmk=
        ;;
JTIwJTIwJTIwJTIwcmVsb2FkJTdDZm9yY2UtcmVsb2FkKQ==
        res=`$DAEMON -k parse -f $CONFIG 2>&1 | grep -o "FATAL: .*"`
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwaWYlMjB0ZXN0JTIwLW4lMjAlMjIlMjRyZXMlMjIlM0I=
        then
                log_failure_msg "$res"
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwZXhpdCUyMDM=
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwZWxzZQ==
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwbG9nX2FjdGlvbl9tc2clMjAlMjJSZWxvYWRpbmclMjAlMjRERVNDJTIwY29uZmlndXJhdGlvbiUyMGZpbGVzJTIy
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwc3RhcnQtc3RvcC1kYWVtb24lMjAtLXN0b3AlMjAtLXNpZ25hbCUyMDElMjAlNUM=
                        --pidfile $PIDFILE --quiet --exec $DAEMON
                log_action_end_msg 0
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwZmk=
        ;;
    restart)
        res=`$DAEMON -k parse -f $CONFIG 2>&1 | grep -o "FATAL: .*"`
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwaWYlMjB0ZXN0JTIwLW4lMjAlMjIlMjRyZXMlMjIlM0I=
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwdGhlbg==
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwbG9nX2ZhaWx1cmVfbXNnJTIwJTIyJTI0cmVzJTIy
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwZXhpdCUyMDM=
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwZWxzZQ==
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwbG9nX2RhZW1vbl9tc2clMjAlMjJSZXN0YXJ0aW5nJTIwJTI0REVTQyUyMiUyMCUyMiUyNE5BTUUlMjI=
                stop
                if start ; then
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwbG9nX2VuZF9tc2clMjAlMjQlM0Y=
                else
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwbG9nX2VuZF9tc2clMjAlMjQlM0Y=
                fi
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwZmk=
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNCJTNC
JTIwJTIwJTIwJTIwc3RhdHVzKQ==
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwc3RhdHVzX29mX3Byb2MlMjAtcCUyMCUyNFBJREZJTEUlMjAlMjREQUVNT04lMjAlMjROQU1FJTIwJTI2JTI2JTIwZXhpdCUyMDAlMjAlN0MlN0MlMjBleGl0JTIwMw==
        ;;
JTIwJTIwJTIwJTIwKik=
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwZWNobyUyMCUyMlVzYWdlJTNBJTIwJTJGZXRjJTJGaW5pdC5kJTJGJTI0TkFNRSUyMCU3QnN0YXJ0JTdDc3RvcCU3Q3JlbG9hZCU3Q2ZvcmNlLXJlbG9hZCU3Q3Jlc3RhcnQlN0NzdGF0dXMlN0QlMjI=
        exit 3
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNCJTNC
ZXNhYw==

ZXhpdCUyMDA=

JUQwJTk0JUQwJUI1JUQwJUJCJUQwJUIwJUQwJUI1JUQwJUJDJTIwJUQxJTgxJUQwJUJBJUQxJTgwJUQwJUI4JUQwJUJGJUQxJTgyJTIwJUQwJUI4JUQxJTgxJUQwJUJGJUQwJUJFJUQwJUJCJUQwJUJEJUQxJThGJUQwJUI1JUQwJUJDJUQxJThCJUQwJUJDJTJDJTIwJUQwJUI0JUQwJUJFJUQwJUIxJUQwJUIwJUQwJUIyJUQwJUJCJUQxJThGJUQwJUI1JUQwJUJDJTIwJUQwJUIyJTIwJUQwJUIwJUQwJUIyJUQxJTgyJUQwJUJFJUQwJUI3JUQwJUIwJUQwJUIzJUQxJTgwJUQxJTgzJUQwJUI3JUQwJUJBJUQxJTgzJTIwJUQwJUI4JTIwJUQwJUI3JUQwJUIwJUQwJUJGJUQxJTgzJUQxJTgxJUQwJUJBJUQwJUIwJUQwJUI1JUQwJUJDJTIwJUQxJTgxJUQwJUI1JUQxJTgwJUQwJUIyJUQwJUI4JUQxJTgxJTIwU3F1aWQlM0E=

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

JTJGZXRjJTJGaW5pdC5kJTJGc3F1aWQlMjBzdGFydA==
JTJGZXRjJTJGaW5pdC5kJTJGc3F1aWQlQzIlQTBzdGF0dXM=

Настройка SSL Bumping в сервисе Squid

Для работы SSL Bumping требуется CA SSL-сертификат и приватный ключ в формате PEM.  Этот сертификат будет использоваться Squid для создания динамических сертификатов для проксируемых сайтов.

JUQwJTlDJUQwJUJFJUQwJUI2JUQwJUJEJUQwJUJFJUMyJUEwJUQxJTgxJUQwJUJFJUQwJUI3JUQwJUI0JUQwJUIwJUQxJTgyJUQxJThDJTIwJUQwJUJEJUQwJUJFJUQwJUIyJUQxJThCJUQwJUI5JTIwJUQxJTgxJUQwJUIwJUQwJUJDJUQwJUJFJUQwJUJGJUQwJUJFJUQwJUI0JUQwJUJGJUQwJUI4JUQxJTgxJUQwJUIwJUQwJUJEJUQwJUJEJUQxJThCJUQwJUI5JTIwQ0ElMjBTU0wtJUQxJTgxJUQwJUI1JUQxJTgwJUQxJTgyJUQwJUI4JUQxJTg0JUQwJUI4JUQwJUJBJUQwJUIwJUQxJTgyJUMyJUEwJUQwJUI4JUQwJUJCJUQwJUI4JTIwJUQwJUI4JUQxJTgxJUQwJUJGJUQwJUJFJUQwJUJCJUQxJThDJUQwJUI3JUQwJUJFJUQwJUIyJUQwJUIwJUQxJTgyJUQxJThDJTIwQ0ElMjBTU0wtJUQxJTgxJUQwJUI1JUQxJTgwJUQxJTgyJUQwJUI4JUQxJTg0JUQwJUI4JUQwJUJBJUQwJUIwJUQxJTgyJTIwJUQwJUIyJUQxJThCJUQwJUI0JUQwJUIwJUQwJUJEJUQwJUJEJUQxJThCJUQwJUI5JTIwJUQxJTg2JUQwJUI1JUQwJUJEJUQxJTgyJUQxJTgwJUQwJUJFJUQwJUJDJTIwJUQxJTgxJUQwJUI1JUQxJTgwJUQxJTgyJUQwJUI4JUQxJTg0JUQwJUI4JUQwJUJBJUQwJUIwJUQxJTg2JUQwJUI4JUQwJUI4JTIwJUQwJUJFJUQxJTgwJUQwJUIzJUQwJUIwJUQwJUJEJUQwJUI4JUQwJUI3JUQwJUIwJUQxJTg2JUQwJUI4JUQwJUI4Lg==

Создание самоподписанного CA SSL-сертификата

b3BlbnNzbCUyMHJlcSUyMC1uZXclMjAtbmV3a2V5JTIwcnNhJTNBMjA0OCUyMC1kYXlzJTIwMzY1JTIwLW5vZGVzJTIwLXg1MDklMjAta2V5b3V0JTIwJTJGZXRjJTJGc3F1aWQlMkZzcXVpZGNhLmtleSUyMC1vdXQlMjAlMkZldGMlMkZzcXVpZCUyRnNxdWlkY2EuY3J0

JUQwJTlEJUQwJUIwJUQxJTgxJUQxJTgyJUQxJTgwJUQwJUIwJUQwJUI4JUQwJUIyJUQwJUIwJUQwJUI1JUQwJUJDJTIwJUQwJUJGJUQxJTgwJUQwJUIwJUQwJUIyJUQwJUIwJTIwJUQwJUJEJUQwJUIwJTIwJUQxJTg0JUQwJUIwJUQwJUI5JUQwJUJCJUQxJThCJTIwU1NMLSVEMSU4MSVEMCVCNSVEMSU4MCVEMSU4MiVEMCVCOCVEMSU4NCVEMCVCOCVEMCVCQSVEMCVCMCVEMSU4MiVEMCVCMA==

chown proxy:proxy /etc/squid/squidca*
chmod 400 /etc/squid/squidca*

JUQwJTlBJUQwJUJFJUQwJUJEJUQwJUIyJUQwJUI1JUQxJTgwJUQxJTgyJUQwJUI4JUQxJTgwJUQxJTgzJUQwJUI1JUQwJUJDJTIwJUQxJTgxJUQwJUI1JUQxJTgwJUQxJTgyJUQwJUI4JUQxJTg0JUQwJUI4JUQwJUJBJUQwJUIwJUQxJTgyJTIwJUQxJTg0JUQwJUJFJUQxJTgwJUQwJUJDJUQwJUIwJUQxJTgyJUQwJUIwJTIwREVSJTIwJUQwJUI0JUQwJUJCJUQxJThGJTIwJUQwJUI4JUQwJUJDJUQwJUJGJUQwJUJFJUQxJTgwJUQxJTgyJUQwJUIwJTIwJUQwJUJEJUQwJUIwJTIwJUQwJUJGJUQwJUJFJUQwJUJCJUQxJThDJUQwJUI3JUQwJUJFJUQwJUIyJUQwJUIwJUQxJTgyJUQwJUI1JUQwJUJCJUQxJThDJUQxJTgxJUQwJUJBJUQwJUI4JUQwJUI1JTIwJUQxJTgxJUQwJUI4JUQxJTgxJUQxJTgyJUQwJUI1JUQwJUJDJUQxJThCJTNB

b3BlbnNzbCUyMHg1MDklMjAtb3V0Zm9ybSUyMGRlciUyMC1pbiUyMCUyRmV0YyUyRnNxdWlkJTJGc3F1aWRjYS5jcnQlMjAtb3V0JTIwc3F1aWRjYS5jcnQ=
Полученный сертификат необходимо установить в «Доверенные корневые сертификаты» на все пользовательские компьютеры, которые будут работать через Squid. В доменной среде это проще всего сделать при помощи GPO (Group Policy objects).

Использование CA SSL-сертификата выданным центром сертификации организации

В случае если в организации имеется действующий ЦС, то логично чтобы Squid работал в рамках цепочки сертификатов действующего ЦС.

Генерируем запрос (CSR) на SSL-сертификат, далее выпускаем его при помощи действующего ЦС (используя шаблон с правами CA):

b3BlbnNzbCUyMGdlbnJzYSUyMC1vdXQlMjAlMkZldGMlMkZzcXVpZCUyRnNxdWlkY2Eua2V5JTIwMjA0OA==
openssl req -new -key /etc/squid/squidca.key -out /etc/squid/squidca.csr

JUQwJTlBJUQwJUJFJUQwJUJEJUQwJUIyJUQwJUI1JUQxJTgwJUQxJTgyJUQwJUI4JUQxJTgwJUQxJTgzJUQwJUI1JUQwJUJDJTIwJUQwJUIyJUQxJThCJUQwJUJGJUQxJTgzJUQxJTg5JUQwJUI1JUQwJUJEJUQwJUJEJUQxJThCJUQwJUI5JTIwU1NMLSVEMSU4MSVEMCVCNSVEMSU4MCVEMSU4MiVEMCVCOCVEMSU4NCVEMCVCOCVEMCVCQSVEMCVCMCVEMSU4MiUyMCVEMCVCMiUyMFBFTSUyMCVEMSU4NCVEMCVCRSVEMSU4MCVEMCVCQyVEMCVCMCVEMSU4MiUzQQ==

b3BlbnNzbCUyMHg1MDklMjAtaW5mb3JtJTIwZGVyJTIwLWluJTIwY2VydG5ldy5jZXIlMjAtb3V0JTIwc3F1aWRjYS5jcnQ=

JUQwJTlEJUQwJUIwJUQxJTgxJUQxJTgyJUQxJTgwJUQwJUIwJUQwJUI4JUQwJUIyJUQwJUIwJUQwJUI1JUQwJUJDJTIwJUQwJUJGJUQxJTgwJUQwJUIwJUQwJUIyJUQwJUIwJTIwJUQwJUJEJUQwJUIwJTIwJUQxJTg0JUQwJUIwJUQwJUI5JUQwJUJCJUQxJThCJTIwU1NMLSVEMSU4MSVEMCVCNSVEMSU4MCVEMSU4MiVEMCVCOCVEMSU4NCVEMCVCOCVEMCVCQSVEMCVCMCVEMSU4MiVEMCVCMCUzQQ==

Y2hvd24lMjBwcm94eSUzQXByb3h5JTIwJTJGZXRjJTJGc3F1aWQlMkZzcXVpZGNhKg==
Y2htb2QlMjA0MDAlMjAlMkZldGMlMkZzcXVpZCUyRnNxdWlkY2Eq

Продолжение настройки SSL

JUQwJTkzJUQwJUI1JUQwJUJEJUQwJUI1JUQxJTgwJUQwJUI4JUQxJTgwJUQxJTgzJUQwJUI1JUQwJUJDJTIwJUQxJTg0JUQwJUIwJUQwJUI5JUQwJUJCJTIwJUQwJUJGJUQwJUIwJUQxJTgwJUQwJUIwJUQwJUJDJUQwJUI1JUQxJTgyJUQxJTgwJUQwJUJFJUQwJUIyJTIwJUQwJUI0JUQwJUJCJUQxJThGJTIwJUQwJUIwJUQwJUJCJUQwJUIzJUQwJUJFJUQxJTgwJUQwJUI4JUQxJTgyJUQwJUJDJUQwJUIwJTIwRGlmZmllLUhlbGxtYW4lM0E=

openssl dhparam -outform PEM -out /etc/squid/squid_dhparam.pem 2048
chmod 400 /etc/squid/squid_dhparam.pem

Создаем каталог для базы данных сертификатов и инициализируем ее, предварительно остановим службу Squid, если она работает:

JTJGZXRjJTJGaW5pdC5kJTJGc3F1aWQlQzIlQTBzdG9w

mkdir -p /var/lib/squid
cm0lMjAtcmYlMjAlMkZ2YXIlMkZsaWIlMkZzcXVpZCUyRnNzbF9kYg==
JTJGdXNyJTJGbGliJTJGc3F1aWQlMkZzZWN1cml0eV9maWxlX2NlcnRnZW4lMjAtYyUyMC1zJTIwJTJGdmFyJTJGbGliJTJGc3F1aWQlMkZzc2xfZGIlMjAtTSUyMDIwTUI=
chown proxy:proxy -/var/lib/squid

JUQwJTkyJTIwJUQwJUJBJUQwJUJFJUQwJUJEJUQxJTg0JUQwJUI4JUQwJUIzJUQxJTgzJUQxJTgwJUQwJUIwJUQxJTg2JUQwJUI4JUQwJUJFJUQwJUJEJUQwJUJEJUQwJUJFJUQwJUJDJTIwJUQxJTg0JUQwJUIwJUQwJUI5JUQwJUJCJUQwJUI1JTIwJTJGZXRjJTJGc3F1aWQlMkZzcXVpZC5jb25mJTIwJUQwJUI0JUQwJUJFJUQwJUIxJUQwJUIwJUQwJUIyJUQwJUJCJUQxJThGJUQwJUI1JUQwJUJDJTIwJUQwJUIyJTIwJUQwJUJEJUQwJUIwJUQxJTg3JUQwJUIwJUQwJUJCJUQwJUJFJTIwJUQxJTg0JUQwJUIwJUQwJUI5JUQwJUJCJUQwJUIwJTIwJUQwJUI4JUQwJUJCJUQwJUI4JTIwJUQwJUJGJUQwJUI1JUQxJTgwJUQwJUI1JUQwJUI0JTIwJUQwJUJGJUQwJUI1JUQxJTgwJUQwJUIyJUQwJUJFJUQwJUI5JTIwJUQwJUI0JUQwJUI4JUQxJTgwJUQwJUI1JUQwJUJBJUQxJTgyJUQwJUI4JUQwJUIyJUQwJUJFJUQwJUI5JTIwaHR0cF9hY2Nlc3MlMjAlRDElODElRDAlQkIlRDAlQjUlRDAlQjQlRDElODMlRDElOEUlRDElODklRDAlQjglRDAlQjUlMjAlRDAlQjQlRDAlQjglRDElODAlRDAlQjUlRDAlQkElRDElODIlRDAlQjglRDAlQjIlRDElOEIlM0E=

/etc/squid/squid.conf
YWNsJTIwaW50ZXJtZWRpYXRlX2ZldGNoaW5nJTIwdHJhbnNhY3Rpb25faW5pdGlhdG9yJTIwY2VydGlmaWNhdGUtZmV0Y2hpbmc=
aHR0cF9hY2Nlc3MlMjBhbGxvdyUyMGludGVybWVkaWF0ZV9mZXRjaGluZw==

Добавляем в любое место после последней директивы http_access следующие директивы:

/etc/squid/squid.conf
http_port 3128 ssl-bump generate-host-certificates=on dynamic_cert_mem_cache_size=20MB tls-cert=/etc/squid/squidca.crt tls-key=/etc/squid/squidca.key cipher=HIGH:MEDIUM:!LOW:!RC4:!SEED:!IDEA:!3DES:!MD5:!EXP:!PSK:!DSS options=NO_TLSv1,NO_SSLv3 tls-dh=prime256v1:/etc/squid/squid_dhparam.pem

sslcrtd_program /usr/lib/squid/security_file_certgen -s /var/lib/squid/ssl_db -M 20MB
sslcrtd_children 5
c3NscHJveHlfY2VydF9lcnJvciUyMGFsbG93JTIwYWxs

acl step1 at_step SslBump1
c3NsX2J1bXAlMjBwZWVrJTIwc3RlcDE=
ssl_bump bump all

Запускаем Squid и проверяем:

JTJGZXRjJTJGaW5pdC5kJTJGc3F1aWQlQzIlQTBzdGFydA==

Добавление исключений для SSL Bumping

JUQwJTk0JUQwJUJFJUQwJUIxJUQwJUIwJUQwJUIyJUQwJUJCJUQwJUI1JUQwJUJEJUQwJUI4JUQwJUI1JTIwJUQwJUI4JUQxJTgxJUQwJUJBJUQwJUJCJUQxJThFJUQxJTg3JUQwJUI1JUQwJUJEJUQwJUI4JUQwJUI5JTIwJUQwJUI0JUQwJUJCJUQxJThGJTIwU1NMJTIwQnVtcGluZyUyMCVEMCVCQyVEMCVCRSVEMCVCNiVEMCVCNSVEMSU4MiUyMCVEMCVCRiVEMCVCRSVEMSU4MiVEMSU4MCVEMCVCNSVEMCVCMSVEMCVCRSVEMCVCMiVEMCVCMCVEMSU4MiVEMSU4QyVEMSU4MSVEMSU4RiUyMCVEMCVCMiUyMCVEMSU4MSVEMCVCQiVEMCVCNSVEMCVCNCVEMSU4MyVEMSU4RSVEMSU4OSVEMCVCOCVEMSU4NSUyMCVEMSU4MSVEMCVCQiVEMSU4MyVEMSU4NyVEMCVCMCVEMSU4RiVEMSU4NSUzQQ==

  • Программное обеспечение использует протокол, отличный от HTTPS (например, SSH, RDP, VPN).
  • Программное обеспечение или веб-ресурс использует протокол WebSockets или HTTP/2.0.
  • Для доступа к веб-ресурс используются национальные алгоритмы шифрования (GOST, SM2).
  • Программное обеспечение использует привязку серверного сертификата (pinning).
  • Программное обеспечение или веб-ресурс требует авторизации по клиентскому SSL-сертификату.

JUQwJUExJUQwJUJFJUQwJUI3JUQwJUI0JUQwJUIwJUQwJUI1JUQwJUJDJTIwJUQxJTg0JUQwJUIwJUQwJUI5JUQwJUJCJTIwJTJGZXRjJTJGc3F1aWQlMkZkb25vdGJ1bXAubGlzdCUyMCVEMSU4MSVEMCVCRSUyMCVEMSU4MSVEMCVCRiVEMCVCOCVEMSU4MSVEMCVCQSVEMCVCRSVEMCVCQyUyMCVEMCVCNCVEMCVCRSVEMCVCQyVEMCVCNSVEMCVCRCVEMCVCRCVEMSU4QiVEMSU4NSUyMCVEMCVCOCVEMCVCQyVEMCVCNSVEMCVCRCUyMCVEMCVCMiVEMCVCNSVEMCVCMS0lRDElODAlRDAlQjUlRDElODElRDElODMlRDElODAlRDElODElRDAlQkUlRDAlQjIlMjAlRDAlQjglMjAlRDElODUlRDAlQkUlRDElODElRDElODIlRDAlQkUlRDAlQjIlMkMlMjAlRDAlQkElRDAlQkUlRDElODIlRDAlQkUlRDElODAlRDElOEIlRDAlQjUlMjAlRDAlQjIlRDElOEIlMjAlRDAlQkQlRDAlQjUlRDAlQkUlRDAlQjElRDElODUlRDAlQkUlRDAlQjQlRDAlQjglRDAlQkMlRDAlQkUlMjAlRDAlQjQlRDAlQkUlRDAlQjElRDAlQjAlRDAlQjIlRDAlQjglRDElODIlRDElOEMlMjAlRDAlQjIlMjAlRDAlQjglRDElODElRDAlQkElRDAlQkIlRDElOEUlRDElODclRDAlQjUlRDAlQkQlRDAlQjglRDElOEYlMkMlMjAlRDAlQkYlRDElODAlRDAlQjglRDAlQkMlRDAlQjUlRDElODAlM0E=

/etc/squid/donotbump.list
.youtube.ru
LmZhY2Vib29rLmNvbQ==

JUQwJTkyJTIwJUQwJUJBJUQwJUJFJUQwJUJEJUQxJTg0JUQwJUI4JUQwJUIzJUQxJTgzJUQxJTgwJUQwJUIwJUQxJTg2JUQwJUI4JUQwJUJFJUQwJUJEJUQwJUJEJUQwJUJFJUQwJUJDJTIwJUQxJTg0JUQwJUIwJUQwJUI5JUQwJUJCJUQwJUI1JTIwJTJGZXRjJTJGc3F1aWQlMkZzcXVpZC5jb25mJTIwJUQwJUI3JUQwJUIwJUQwJUI0JUQwJUIwJUQwJUI1JUQwJUJDJTIwJUQwJUI0JUQwJUI4JUQxJTgwJUQwJUI1JUQwJUJBJUQxJTgyJUQwJUI4JUQwJUIyJUQxJTgzJTIwQUNMJTIwJUQxJTgzJUQwJUJBJUQwJUIwJUQwJUI3JUQxJThCJUQwJUIyJUQwJUIwJUQxJThFJUQxJTg5JUQxJTgzJUQxJThFJTIwJUQwJUJEJUQwJUIwJTIwJUQxJTgxJUQwJUJFJUQwJUI3JUQwJUI0JUQwJUIwJUQwJUJEJUQwJUJEJUQxJThCJUQwJUI5JTIwJUQxJTgxJUQwJUJGJUQwJUI4JUQxJTgxJUQwJUJFJUQwJUJBJTIwJUQwJUI4JUQxJTgxJUQwJUJBJUQwJUJCJUQxJThFJUQxJTg3JUQwJUI1JUQwJUJEJUQwJUI4JUQwJUI5JTIwJUQwJUI4JTIwJUQwJUJGJUQxJTgwJUQwJUI4JUQwJUIyJUQwJUJFJUQwJUI0JUQwJUI4JUQwJUJDJTIwJUQwJUJGJUQwJUJFJUQxJTgwJUQxJThGJUQwJUI0JUQwJUJFJUQwJUJBJTIwJUQwJUJFJUQwJUIxJUQxJTgwJUQwJUIwJUQwJUIxJUQwJUJFJUQxJTgyJUQwJUJBJUQwJUI4JTIwc3NsX2J1bXAlMjAlRDAlQkElMjAlRDAlQjIlRDAlQjglRDAlQjQlRDElODMlMjAlRDAlQkElRDAlQjAlRDAlQkElMjAlRDElODMlRDAlQkElRDAlQjAlRDAlQjclRDAlQjAlRDAlQkQlRDAlQkUlMjAlRDAlQkQlRDAlQjglRDAlQjYlRDAlQjUlM0E=

/etc/squid/squid.conf
YWNsJTIwbm9fc3NsX2J1bXAlMjBkc3Rkb21haW4lMjAlMjIlMkZldGMlMkZzcXVpZCUyRmRvbm90YnVtcC5saXN0JTIy

YWNsJTIwc3RlcDElMjBhdF9zdGVwJTIwU3NsQnVtcDE=
c3NsX2J1bXAlQzIlQTBzcGxpY2UlQzIlQTBub19zc2xfYnVtcA==
ssl_bump peek step1
c3NsX2J1bXAlMjBidW1wJTIwYWxs

Краткое описание механики SSL Bumping. Соединение клиента с сервером разбивается на три шага:

  • SslBump1 — получение открытой информации о соединении (из сертификатов и http-запроса);
  • SslBump2 — передача Hello info клиента (создание соединения с сервером);
  • SslBump3 — получение Hello info сервера (создание соединения с клиентом);

И для каждого из этих этапов можно определить, что Squid будет делать c запросами клиентов:

  • splice — пропустить все последующие действия, создается TCP-туннель, без ssl-bump.
  • peek — подсмотреть всю доступную информацию без ssl-bump.
  • terminate — закрыть соединение.
  • bump — ssl-bump соединения, сделать https видимым как http

После внесенных изменений не забываем перезапустить службу Squid

/etc/squid/squid restart
 

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

Обсуждение

1 комментариев
  • Конвертируем сертификат формата DER для импорта на пользовательские системы:
    openssl x509 -outform der -in /etc/squid/squidca.crt -out squidca.crt

    Мы перезатираем исходный сертификат и засовываем der в squid?

    tls-cert=/etc/squid/squidca.crt

    Сделано всё по инструкции, der сертификат squidca.crt засунут пользователю, но в логах squid’а всё равно нет полного пути сайта, а просто:
    1675938244.720 11058 172.16.120.101 TCP_TUNNEL/200 4937 CONNECT ad.adriver.ru:443 — HIER_DIRECT/195.209.108.51 —
    1675938244.721 19770 172.16.120.101 TCP_TUNNEL/200 7342 CONNECT functional.events.data.microsoft.com:443 — HIER_DIRECT/20.189.173.9 —
    1675938244.721 9963 172.16.120.101 TCP_TUNNEL/200 1693 CONNECT yandex.ru:443 — HIER_DIRECT/5.255.255.60 —