Необходимость что-то решать с доступом программ не умеющих работать с прокси, но при этом очень рьяно иснользующий https трафик, заставило установить второй squid на мой сервер. Теперь объясню почему не просто вторая копия сквида с другими настройками а именно друга версия программы. А проблема заключалась в том, что нужно было использовать SAMS и кучу ACL им создаваемых, которые блочат ненужные ресурсы, а также обязательная авторизация пользователя по имени - паролю. Так вот, с этими задачами замечательно справлялся и штатный squid 3.1.20, но он не мог обеспечить прозрачное проксирование с применением ssl-bump, так как оно появилось только в версии squid 3.5.8(если я не ошибаюсь). А для новыого squid 3.5.25 я так и не нашел рабочего редиректора для sams. Потому и пришлось городить такой огород.
И так у нас есть уже настроенный squid 3.1.20 с прикрученным sams2 настроенный по этой статье: https://onedayadmin.sytes.net/squid-sams-ubuntu-14-04/
Установим новый squid 3.5.25 при этом не удаляя старый.
Установка libressl
cd libressl
wget http://ftp.openbsd.org/pub/OpenBSD/LibreSSL/libressl-2.5.4.tar.gz
tar -zvxf libressl-2.5.4.tar.gz
cd libressl-2.5.4
./configure
make
apt-get install checkinstall
checkinstall --pkgname libressl --pkgversion 2.5.4
dpkg -i libressl_2.5.4-1_i386.deb
ldconfig
После установки необходимо настроить использование LibreSSL по-умолчанию:
mv /usr/bin/openssl /usr/bin/openssl-1
update-alternatives --install /usr/bin/openssl openssl /usr/bin/openssl-1 10
update-alternatives --install /usr/bin/openssl openssl /usr/local/bin/openssl 50
update-alternatives --config openssl
Проверим, получилось ли поставить Libressl:
Установим новый libecap по этой статье:
https://onedayadmin.sytes.net/?s=libecap
Приступим к установке squid 3.5.25
cd /home/leash/squid/
wget http://www.squid-cache.org/Versions/v3/3.5/squid-3.5.22.tar.gz
tar -zvxf squid-3.5.22.tar.gz
cd squid-3.5.22
apt-get install libssl-dev libgnutls28-dev libdbi-perl nettle-dev build-essential
Не конфигурировался squid, видимо не хватало какихто библиотек, спорная команда, небыло времени разбираться...
завершилась ошибкой но все заработало
Конфигурируем и установим сквид. Команда громоздкая поэтому оформлю ее как текстовый блок:
./configure --build=x86_64-linux-gnu \
--prefix=/usr \
--includedir=${prefix}/include \
--mandir=${prefix}/share/man \
--infodir=${prefix}/share/info \
--sysconfdir=/etc \
--localstatedir=/var \
--libexecdir=${prefix}/lib/squid1 \
--srcdir=. \
--disable-maintainer-mode \
--disable-dependency-tracking \
--disable-silent-rules \
--datadir=/usr/share/squid1 \
--sysconfdir=/etc/squid1 \
--mandir=/usr/share/man \
--enable-inline \
--disable-arch-native \
--enable-async-io=8 \
--enable-storeio=ufs,aufs,diskd,rock \
--enable-removal-policies=lru,heap \
--enable-delay-pools \
--enable-cache-digests \
--enable-icap-client \
--enable-follow-x-forwarded-for \
--enable-auth-basic=DB,fake,getpwnam,NCSA,NIS,POP3,RADIUS,SASL,SMB \
--enable-auth-digest=file, \
--enable-auth-negotiate=kerberos,wrapper \
--enable-auth-ntlm=fake,smb_lm \
--enable-external-acl-helpers=file_userip,session,SQL_session,unix_group,wbinfo_group \
--enable-url-rewrite-helpers=fake \
--enable-eui \
--enable-esi \
--enable-icmp \
--enable-zph-qos \
--enable-ecap \
--disable-translation \
--with-swapdir=/var/spool/squid1 \
--with-logdir=/var/log/squid1 \
--with-pidfile=/var/run/squid1.pid \
--with-filedescriptors=65536 \
--with-large-files \
--with-default-user=proxy \
--enable-ssl \
--enable-ssl-crtd \
--with-openssl \
--enable-linux-netfilter \
'CFLAGS=-g -O2 -fPIE -fstack-protector-strong -Wformat -Werror=format-security -Wall' \
'LDFLAGS=-fPIE -pie -Wl,-z,relro -Wl,-z,now' \
'CPPFLAGS=-D_FORTIFY_SOURCE=2' \
'CXXFLAGS=-g -O2 -fPIE -fstack-protector-strong -Wformat -Werror=format-security'
make
make install
make install-pinger
cd /etc/squid1
openssl req -new -newkey rsa:1024 -days 365 -nodes -x509 -keyout squidCA.pem -out squidCA.pem
#Copyright (C) 1996-2015 The Squid Software Foundation and contributors
Squid software is distributed under GPLv2+ license and includes
## contributions from numerous individuals and organizations.
## Please see the COPYING and CONTRIBUTORS files for details.
##
[Unit]
Description=Squid Web Proxy Server
After=network.target
[Service]
Type=simple
ExecStart=/usr/sbin/squid -sYC -N
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
[Install]
WantedBy=multi-user.target
#systemctl enable squid1
chown proxy:root /var/spool/squid1/
acl localnet src 192.168.1.0/24 # RFC1918 possible internal network
acl SSL_ports port 443
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl CONNECT method CONNECT
# Deny requests to certain unsafe ports
dns_nameservers 192.168.1.230
http_access deny !Safe_ports
# Deny CONNECT to other than secure SSL ports
http_access deny CONNECT !SSL_ports
# Only allow cachemgr access from localhost
http_access allow localhost manager
http_access deny manager
http_access allow localnet
http_access allow localhost
# And finally deny all other access to this proxy
http_access deny all
# Squid normally listens to port 3128
http_port 192.168.1.230:3138 intercept options=NO_SSLv3:NO_SSLv2
http_port 192.168.1.230:3140 options=NO_SSLv3:NO_SSLv2
https_port 192.168.1.2303129 intercept ssl-bump cert=/etc/squid1/squidCA.pem
always_direct allow all
sslproxy_cert_error allow all
sslproxy_flags DONT_VERIFY_PEER
acl blocked ssl::server_name "/etc/squid1/blocked_https.txt"
acl step1 at_step SslBump1
ssl_bump peek step1
#терминируем соединение, если клиент заходит на запрещенный ресурс
ssl_bump terminate blocked
ssl_bump splice all
sslcrtd_program /lib/squid1/ssl_crtd -s /var/lib/ssl_db -M 4MB
# Leave coredumps in the first cache dir
coredump_dir /var/spool/squid3
# Add any of your own refresh_pattern entries above these.
#
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_dir aufs /var/spool/squid1 20000 49 256
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
logfile_rotate 4
Добавим в скрипт управления iptables следующие строки:
iptables -t nat -A PREROUTING -p tcp -m tcp -s 192.168.1.0/24 --dport 443 -j REDIRECT --to-ports 3129
iptables -t nat -A PREROUTING -p tcp -m tcp -s 192.168.1.0/24 --dport 80 -j REDIRECT --to-ports 3128
iptables -A FORWARD -m state --state NEW -s 192.168.1.202/32 -j ACCEPT
chown -R proxy:proxy /var/log/squid1
/usr/sbin/squid -z
systemctl start squid1
vk.com
ok.ru