Ubuntu 16.04 прозрачный Squid HTTPS

Ubuntu 16.04 прозрачный Squid HTTPS

Решил посмотреть на работу прозрачного Squid transparent.
В версиях выше 3 указывают intercept
Много натыкался на сложности в настройках именно в режиме HTTPS
Как оказалось не зря.
Так сложилось что при установке через apt мы получаем Squid без поддержки SSl
Приступим

Есть два пути решения.

1) С подменой сертификатов.
В этом случае генерируется сертификат. Затем уже на клиентских машинах он добавляется в доверенные
Метод подразумевает что необходимо на всех компьютерах пользователей провести эту манипуляцию

Тут боле менее все просто. Можно подключить репозитарий и установить уже подготовленный Squid

https://launchpad.net/~notartom/+archive/ubuntu/squid-ssl

sudo add-apt-repository ppa:notartom/squid-ssl
sudo apt-get update
sudo apt-get install squid squid-langpack

2) Без подмены сертификатов
Вот здесь уже сложнее. Необходимо пересобирать пакет Squid.

Чтобы постоянно не вводить sudo переходим в root

sudo -s

Разблокируем ветки где указан src

nano /etc/apt/sources.list

Должно выйти так

ubuntu squid ssl

Обновимся и поставим необходимые библиотеки для сборки

apt-get update 
apt-get dist-upgrade -y
apt-get install openssl
apt-get install devscripts build-essential
apt-get install dpkg-dev libssl-dev

Создадим папку где будет производится сборка

mkdir makes
cd makes

Качаем зависимости (для выполнения этой операции был поставлен dpkg-dev)

apt-get build-dep squid3

Качаем исходник

apt-get source squid3

В случае ошибки доступа apt "Невозможно сбросить права для скачивания" меняем права и повторяем

chmod 777 squid3_3.5.12-1ubuntu7.2.dsc
apt-get source squid3

В моем случае это был файл squid3_3.5.12-1ubuntu7.2.dsc может быть и squid3_3.5.12-1ubuntu7.3.dsc и другие разновидности

Если этого не сделать или будут ошибки, то не появится папка debian

Переходим в полученную папку

cd squid3-3.5.12

Добавляем поддержку ssl
Редактируем файл правил

nano debian/rules

Добавляем строчки

                --enable-ssl \
                --enable-ssl-crtd \
                --with-openssl \

Должно выйти

ubuntu squid ssl

ВАЖНО: чтобы все параметры заканчивались \ , а именно дописать после proxy

Собираем DEB пакеты ( Процесс долгий )

dpkg-buildpackage -d

Возможные ошибки:

configure: error: library 'crypto' is required for OpenSSL

Необходимо установить libssl-dev и перезапустить процесс сборки

apt-get install libssl-dev
rm config.log
dpkg-buildpackage -d

Идем на папку выше и там должны быть получившиеся пакеты

ls -1
squid3-3.5.12
squid3_3.5.12-1ubuntu7.2_all.deb
squid3_3.5.12-1ubuntu7.2_amd64.build
squid3_3.5.12-1ubuntu7.2_amd64.changes
squid3_3.5.12-1ubuntu7.2.debian.tar.xz
squid3_3.5.12-1ubuntu7.2.dsc
squid3_3.5.12.orig.tar.gz
squid_3.5.12-1ubuntu7.2_amd64.deb
squid-cgi_3.5.12-1ubuntu7.2_amd64.deb
squidclient_3.5.12-1ubuntu7.2_amd64.deb
squid-common_3.5.12-1ubuntu7.2_all.deb
squid-dbg_3.5.12-1ubuntu7.2_amd64.deb
squid-purge_3.5.12-1ubuntu7.2_amd64.deb

Ставим

dpkg -i *.deb

Правим зависимости и переставляем (На этом моменте он подтянул apache для каких то своих целей)

apt-get install -f
dpkg -i *.deb

Если все успешно то смотрим версию squid и что у нас вышло

squid -v

(код в строку. Отформатировал для наглядности)

Squid Cache: Version 3.5.12
Service Name: squid
Ubuntu linux
configure options:  '--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/squid3'
'--srcdir=.'
'--disable-maintainer-mode'
'--disable-dependency-tracking'
'--disable-silent-rules'
'BUILDCXXFLAGS=-g -O2 -fPIE -fstack-protector-strong -Wformat -Werror=format-security -Wl,-Bsymbolic-functions -fPIE -pie -Wl,-z,relro -Wl,-z,now'
'--datadir=/usr/share/squid'
'--sysconfdir=/etc/squid'
'--libexecdir=/usr/lib/squid'
'--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,LDAP,NCSA,NIS,PAM,POP3,RADIUS,SASL,SMB'
'--enable-auth-digest=file,LDAP'
'--enable-auth-negotiate=kerberos,wrapper'
'--enable-auth-ntlm=fake,smb_lm'
'--enable-external-acl-helpers=file_userip,kerberos_ldap_group,LDAP_group,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/squid'
'--with-logdir=/var/log/squid'
'--with-pidfile=/var/run/squid.pid'
'--with-filedescriptors=65536'
'--with-large-files'
'--with-default-user=proxy'
'--enable-ssl'
'--enable-ssl-crtd'
'--with-openssl'
'--enable-build-info=Ubuntu linux'
'--enable-linux-netfilter'
'build_alias=x86_64-linux-gnu'
'CFLAGS=-g -O2 -fPIE -fstack-protector-strong -Wformat -Werror=format-security -Wall'
'LDFLAGS=-Wl,-Bsymbolic-functions -fPIE -pie -Wl,-z,relro -Wl,-z,now'
'CPPFLAGS=-Wdate-time -D_FORTIFY_SOURCE=2'
'CXXFLAGS=-g -O2 -fPIE -fstack-protector-strong -Wformat -Werror=format-security'

Конфигурация без блокировок и прочего. Именно посмотреть работу прозрачного режима. Обычная базовая с добавлением SSL

Переходим в папку squid и генерируем сертификат

cd /etc/squid/
openssl req -new -newkey rsa:1024 -days 365 -nodes -x509 -keyout squidCA.pem -out squidCA.pem

Упростим конфигурацию

cp squid.conf squid.conf.bak
cat squid.conf.bak | grep -v "^#" | grep -v "^$" > squid.conf

Добавим сеть src 192.168.20.0/24
Добавим порты под HTTP 3128 и HTTPS 3129
Добавим генерацию сертификатов sslcrtd_program

nano squid.conf
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 local src 192.168.20.0/24

acl CONNECT method CONNECT

http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost manager
http_access deny manager
http_access allow localhost
http_access allow local
http_access deny all

http_port 192.168.20.1:3128 intercept
https_port 192.168.20.1:3129 intercept ssl-bump cert=/etc/squid/squidCA.pem

ssl_bump peek all
ssl_bump splice all

sslcrtd_program /usr/lib/squid/ssl_crtd -s /var/lib/ssl_db -M 4MB

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 (Release|Packages(.gz)*)$      0       20%     2880
refresh_pattern .               0       20%     4320

Для режима варианта с подменой сертификата следующие строчки писать не надо

ssl_bump peek all
ssl_bump splice all
sslcrtd_program /usr/lib/squid/ssl_crtd -s /var/lib/ssl_db -M 4MB

Применяем конфигурацию

squid -k parse
squid -k reconfigure

Для работы необходимо настроить iptables

nano tables
#!/bin/bash
#==========================================================
# Настройка IPTABLES
#==========================================================

#==========================================================
# Сетевый интерфейсы
#==========================================================
LAN="enp0s8"
WAN="enp0s17"
LO="lo"

#==========================================================
# Локальная сеть
#==========================================================
LAN_RANGE=192.168.20.0/255.255.255.0

#==========================================================
# Путь к таблицам
#==========================================================
IPTABLES="/sbin/iptables"

#==========================================================
# Список портов
#==========================================================
SSH="22"
DNS="53"
SQUIDH="3128"
SQUIDS="3129"
HTTP="80"
HTTPS="443"

# Сбрасываем все правила
#=========================================================================================
$IPTABLES -F
$IPTABLES -t nat -F
$IPTABLES -t mangle -F
$IPTABLES -X
$IPTABLES -t nat -X
$IPTABLES -t mangle -X

# Базовая расстановка правил
#==========================================================
$IPTABLES --policy INPUT   ACCEPT       #DROP
$IPTABLES --policy OUTPUT  ACCEPT       #DROP
$IPTABLES --policy FORWARD DROP         #ACCEPT

# Включаем форвардинг ip в ядре.
#=========================================================================================
/bin/echo 1 > /proc/sys/net/ipv4/ip_forward

# Включаем маскарадинг для маскарад для отработки NAT
#=========================================================================================
$IPTABLES -t nat -A POSTROUTING -o $WAN -j MASQUERADE

# Разрешаем пакеты по уже установленным соединениям
#=========================================================================================
$IPTABLES -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

# Разрешаем доступ к SSH и DNS серверу если INPUT DROP (Не пригодилось)
#=========================================================================================
#$IPTABLES -A INPUT --protocol tcp -i $LAN --dport $SSH -j ACCEPT
#$IPTABLES -A INPUT --protocol tcp -i $LAN --dport $DNS -j ACCEPT
#$IPTABLES -A INPUT --protocol udp -i $LAN --dport $DNS -j ACCEPT

# Разрешаем доступ к HTTP и HTTPS серверу если INPUT DROP (Не пригодилось)
#=========================================================================================
#$IPTABLES -A INPUT --protocol tcp -i $LAN --dport $HTTP -j ACCEPT
#$IPTABLES -A INPUT --protocol tcp -i $LAN --dport $SQUID -j ACCEPT

# Заворачиваем SQUID
#=========================================================================================
iptables -t nat -A PREROUTING -i $LAN -p tcp --dport $HTTP  -j REDIRECT --to-port $SQUIDH
iptables -t nat -A PREROUTING -i $LAN -p tcp --dport $HTTPS -j REDIRECT --to-port $SQUIDS

# Смотрим что мы натворили
#=========================================================================================
$IPTABLES -L -n -t nat -v

Если в качестве шлюза используется маршрутизатор, то на нем перенаправляем порты 80 и 443 на сервер где стоит SQUID на порты 3128 и 3129 соответственно
В таком случае правила "Заворачиваем SQUID" для iptables ненужны.

Применим

chmod +x tables
./tables

Так как под рукой не было DNS сервера то поставил dnsmasq. Порт в iptables 53
Ставил только DNS. DHCP не настраивал поэтому только указываем интерфейс dnsmasq

sudo apt-get install dnsmasq dnsmasq-utils
nano /etc/dnsmasq.conf
interface=enp0s8

Блокировка сайтов HTTPS в отличии от непрозрачного squid осуществляется через директивы ssl_bump
http://wiki.squid-cache.org/Features/SslBump
http://www.squid-cache.org/Doc/config/ssl_bump/

55 комментариев

  • Забыли добавить libssl-dev в список библиотек для сборки. Без неё никак не собиралось.

  • Ещё не могу понять, вроде бы всё сделал, настроил редирект портов 80=>3128, 443=>3129, настроил deny_info как редирект. Все http редиректит, а вот https некоторые просто блокирует, а некоторые пускает, в частности google.com, youtube.com открываются и игнорируют директиву deny. Собственно говоря, точно так же было и на версии скомпилированной без —enable-ssl. Конфиг взял полностью ваш, только пару директив добавил.

    • Хм… проверил squid -v, оказывается configure options нет —enable-ssl —enable-ssl-crtd —with-openssl. Очень странно, как так вышло, делал всё по инструкции…

    • Здесь надо посмотреть что происходит в логе acess.log
      А так достаточно странно. Если бы squid собрался без ssl. то не работали бы директивы ssl_bump и https_port. squid -k parse просто ругался бы что собран без них.
      Поправил статью добавив libssl-dev. В предыдущей версии он мог встать с первым пунктом и я не заметил.
      По поводу блокировок на прозрачном не проверял. Но на обычном работает
      https://imbicile.pp.ru/squid-https-filtraciya/

  • Данис

    После команды: dpkg-buildpackage -d в конце процесса вылез след текст с ошибкой. Подскажите пожалуйста как исправить это:
    dpkg-shlibdeps: ошибка: информация о зависимостях не найдена для /usr/local/lib/libecap.so.3 (используется debian/squid/usr/sbin/squid)
    Подсказка: проверьте, действительно ли библиотеки из этого пакета.
    dh_shlibdeps: dpkg-shlibdeps -Tdebian/squid.substvars debian/squid/usr/lib/squid/diskd debian/squid/usr/lib/squid/ntlm_smb_lm_auth debian/squid/usr/lib/squid/ext_kerberos_ldap_group_acl debian/squid/usr/lib/squid/log_file_daemon debian/squid/usr/lib/squid/basic_radius_auth debian/squid/usr/lib/squid/ext_ldap_group_acl debian/squid/usr/lib/squid/basic_ncsa_auth debian/squid/usr/lib/squid/ext_unix_group_acl debian/squid/usr/lib/squid/negotiate_kerberos_auth_test debian/squid/usr/lib/squid/basic_nis_auth debian/squid/usr/lib/squid/unlinkd debian/squid/usr/lib/squid/ext_file_userip_acl debian/squid/usr/lib/squid/basic_pam_auth debian/squid/usr/lib/squid/negotiate_kerberos_auth debian/squid/usr/lib/squid/ntlm_fake_auth debian/squid/usr/lib/squid/url_fake_rewrite debian/squid/usr/lib/squid/pinger debian/squid/usr/lib/squid/ext_session_acl debian/squid/usr/lib/squid/ssl_crtd debian/squid/usr/lib/squid/basic_sasl_auth debian/squid/usr/lib/squid/basic_ldap_auth debian/squid/usr/lib/squid/basic_fake_auth debian/squid/usr/lib/squid/digest_ldap_auth debian/squid/usr/lib/squid/negotiate_wrapper_auth debian/squid/usr/lib/squid/basic_getpwnam_auth debian/squid/usr/lib/squid/basic_smb_auth debian/squid/usr/lib/squid/digest_file_auth debian/squid/usr/sbin/squid returned exit code 2
    /usr/share/cdbs/1/rules/debhelper.mk:279: ошибка выполнения рецепта для цели «bina ry-predeb-IMPL/squid»
    make: *** [binary-predeb-IMPL/squid] Ошибка 2
    dpkg-buildpackage: ошибка: debian/rules binary возвратил код ошибки 2

    • Оуууу. Тут ошибка может возникать по многим причинам. Чаще всего из-за того что на системе уже проводились всякого вида манипуляции. Тут в примере я все делал на чистой системе. Поставил, обновил и стал собирать. Сборку пакетов руками на Ubuntu вообще не считаю хорошей идеей. Если всеже не выйдет, то рекомендую просто поставить squid и у пользователей прописать его как proxy сервер. Гораздо проще и эффективнее.

  • Александр

    Приветствую!
    Поставил по инструкции, все запустилось (правда не без плясок с бубном). Есть один недостаток: в access.log не резолвятся имена сайтов, только IP адреса. Пока решение проблемы не нашел, Может подскажете?

    • Сейчас стоит Squid с конфигурацией

      Сам вывод лога такой:

      1491544603.697 0 10.10.10.101 TCP_DENIED/407 3679 CONNECT 94.100.180.228:80 – NONE/- text/html
      1491544603.702 0 10.10.10.101 TCP_DENIED/407 3685 CONNECT 94.100.180.228:5190 – NONE/- text/html
      1491544603.706 0 10.10.10.101 TCP_DENIED/407 3685 CONNECT 94.100.180.228:1863 – NONE/- text/html
      1491544603.710 0 10.10.10.101 TCP_DENIED/403 3573 CONNECT 94.100.180.228:25 – NONE/- text/html
      1491544603.714 0 10.10.10.101 TCP_DENIED/403 3575 CONNECT 94.100.180.228:110 – NONE/- text/html
      1491544604.432 0 10.10.10.31 TCP_DENIED/407 3761 GET http://ipv6.msftncsi.com/ncsi.txt – NONE/- text/html
      1491544604.447 11 10.10.10.31 TCP_DENIED/407 3955 GET http://ipv6.msftncsi.com/ncsi.txt – NONE/- text/html
      1491544604.456 6 10.10.10.31 TCP_DENIED/407 4305 GET http://ipv6.msftncsi.com/ncsi.txt – NONE/- text/html
      1491544604.734 66 10.10.10.125 TCP_MISS/200 401 GET http://ad.mail.ru/adi/243? n.ivanova DIRECT/217.69.139.42 text/html
      1491544604.785 27 10.10.10.125 TCP_MISS/200 401 GET http://ad.mail.ru/adi/243? n.ivanova DIRECT/217.69.139.42 text/html

      Может как вариант в новом sqid что накрутили

      Есть такая директива logformat

      По ссылке ее конфигурация ТУТ
      Можно ее покрутить

      • Александр

        Спасибо за ответ, но думаю дело не в формате.
        кусок access.log:
        ============cut=======================
        10.0.0.129 – – [07/Apr/2017:09:38:39 +0300] “CONNECT 213.180.193.90:443 HTTP/1.1” 200 59085 TCP_TUNNEL:ORIGINAL_DST
        10.0.0.129 – – [07/Apr/2017:09:38:40 +0300] “CONNECT 52.222.171.120:443 HTTP/1.1” 200 1316 TCP_TUNNEL:ORIGINAL_DST
        10.0.0.129 – – [07/Apr/2017:09:38:40 +0300] “GET http://avatars.mds.yandex.net/get-rtb/60659/1951788469924538735/orig? HTTP/1.1″ 200 16376 TCP_MISS:ORIGINAL_DST
        10.0.0.129 – – [07/Apr/2017:09:38:40 +0300] “GET http://top-fwz1.mail.ru/tracker? HTTP/1.1″ 200 528 TCP_MISS:ORIGINAL_DST
        10.0.0.129 – – [07/Apr/2017:09:38:40 +0300] “GET http://top-fwz1.mail.ru/tracker? HTTP/1.1″ 200 528 TCP_MISS:ORIGINAL_DST
        ============cut=======================

        Т.е. по HTTP все нормально резолвится, а по HTTPS нет.

        В squid.conf свойства лога такие:
        logformat – по-умолчанию, т.е. в конфиге не прописан.
        access_log stdio:/var/log/squid/access.log common

    • Александр

      Спасибо за ответ.
      Нет, опции лога по-умолчанию.
      В самом логе TCP_DENIED отсутствует.
      10.0.0.100 – – [07/Apr/2017:09:11:52 +0300] “GET http://www.di.fm/_papi/v1/di/track_history HTTP/1.1″ 200 11346 TCP_MISS:ORIGINAL_DST
      10.0.0.110 – – [07/Apr/2017:09:11:52 +0300] “CONNECT 74.125.131.148:443 HTTP/1.1” 200 679 TCP_TUNNEL:ORIGINAL_DST
      10.0.0.110 – – [07/Apr/2017:09:11:53 +0300] “CONNECT 217.69.139.231:443 HTTP/1.1” 200 45 TCP_TUNNEL:ORIGINAL_DST
      10.0.0.110 – – [07/Apr/2017:09:11:53 +0300] “CONNECT 217.69.133.148:443 HTTP/1.1” 200 45 TCP_TUNNEL:ORIGINAL_DST
      10.0.0.110 – – [07/Apr/2017:09:11:53 +0300] “CONNECT 151.101.65.7:443 HTTP/1.1” 200 1845 TCP_TUNNEL:ORIGINAL_DST
      10.0.0.110 – – [07/Apr/2017:09:11:53 +0300] “CONNECT 151.101.65.7:443 HTTP/1.1” 200 96544 TCP_TUNNEL:ORIGINAL_DST
      10.0.0.142 – – [07/Apr/2017:09:11:56 +0300] “CONNECT 94.100.180.215:443 HTTP/1.1” 200 2127 TCP_TUNNEL:ORIGINAL_DST
      10.0.0.142 – – [07/Apr/2017:09:12:04 +0300] “CONNECT 193.0.170.53:443 HTTP/1.1” 200 372 TCP_TUNNEL:ORIGINAL_DST
      10.0.0.22 – – [07/Apr/2017:09:12:05 +0300] “CONNECT 87.250.250.207:443 HTTP/1.1” 200 855 TCP_TUNNEL:ORIGINAL_DST
      10.0.0.142 – – [07/Apr/2017:09:12:06 +0300] “CONNECT 217.20.156.159:443 HTTP/1.1” 200 523 TCP_TUNNEL:ORIGINAL_DST
      10.0.0.142 – – [07/Apr/2017:09:12:06 +0300] “CONNECT 94.100.180.59:443 HTTP/1.1” 200 1132 TCP_TUNNEL:ORIGINAL_DST
      10.0.0.142 – – [07/Apr/2017:09:12:06 +0300] “CONNECT 217.69.136.175:443 HTTP/1.1” 200 537 TCP_TUNNEL:ORIGINAL_DST
      10.0.0.22 – – [07/Apr/2017:09:12:18 +0300] “CONNECT 87.250.250.207:443 HTTP/1.1” 200 0 TAG_NONE:ORIGINAL_DST
      10.0.0.100 – – [07/Apr/2017:09:12:22 +0300] “GET http://www.di.fm/_papi/v1/di/track_history HTTP/1.1″ 200 10954 TCP_MISS:ORIGINAL_DST
      10.0.0.142 – – [07/Apr/2017:09:12:25 +0300] “GET http://update.eset.com/eset_upd/v5/update.ver HTTP/1.1″ 200 10402 TCP_MISS:ORIGINAL_DST

      • Так то на вид лог явно другой. Ну по структуре отличается

        1491554685.528 9 10.10.10.115 TCP_DENIED/407 3880 CONNECT proxy.imgsmail.ru:443 – NONE/- text/html
        1491554685.551 21 10.10.10.115 TCP_DENIED/407 3880 CONNECT proxy.imgsmail.ru:443 – NONE/- text/html
        1491554685.551 21 10.10.10.115 TCP_DENIED/407 3880 CONNECT proxy.imgsmail.ru:443 – NONE/- text/html
        1491554685.553 40 10.10.10.115 TCP_DENIED/407 4097 CONNECT top-fwz1.mail.ru:443 – NONE/- text/html
        1491554685.555 24 10.10.10.115 TCP_DENIED/407 4073 CONNECT rs.mail.ru:443 – NONE/- text/html
        1491554685.555 24 10.10.10.115 TCP_DENIED/407 4105 CONNECT http://www.tns-counter.ru:443 – NONE/- text/html
        1491554685.555 24 10.10.10.115 TCP_DENIED/407 4101 CONNECT proxy.imgsmail.ru:443 – NONE/- text/html
        1491554685.555 35 10.10.10.115 TCP_DENIED/407 4097 CONNECT top-fwz1.mail.ru:443 – NONE/- text/html

        Но у меня в работе сейчас старый и не прозрачный squid. Поэтому поглядеть пока нет возможности
        Из догадок только что он не может распознать имена DNS. Как вариант добавить в конфигурацию сервера DNS принудительно

        Достаточно dns_nameservers 8.8.4.4 8.8.8.8

        У меня оно так

        # Ковыряем ДНС
        ########################################
        dns_nameservers 8.8.4.4 8.8.8.8
        allow_underscore off
        dns_retransmit_interval 1 seconds
        dns_timeout 2 minutes
        dns_defnames off
        ignore_unknown_nameservers off
        fqdncache_size 8192

        • Александр

          dns_nameservers пробовал. Указывал и локальные, и гугловские и локалхост. Результат один к сожалению.

          P.S. прошу прощения за дублирование сообщений. ;)

          • Да не страшно XD
            Ну а по поводу вопроса тут уже тогда к сожалению помочь не могу
            Конфигурации с прозрачным squdi под рукой нет и с таким пока не сталкивался
            Если он так рисует только https, то возможно такая вот его особенность работы при ssl-bump
            Но это не точно ;)

            • Александр

              Похоже действительно это результат работы ssl_bump.
              При замене в конфиге
              ssl_bump peek all
              ssl_bump splice all
              НА
              acl step1 at_step SslBump1
              ssl_bump peek step1
              ssl_bump splice all
              Начинает резолвить, но появляются проблемы с доступом в Google и иже с ним. :(

  • Владимир

    Команда
    #dpkg-buildpackage -d
    выдает ошибку:
    dpkg-buildpackage: пакет исходных текстов squid3
    dpkg-buildpackage: версия исходных текстов 3.5.12-1ubuntu7.3
    dpkg-buildpackage: дистрибутив исходного кода xenial-security
    dpkg-buildpackage: исходные тексты изменены Marc Deslauriers
    dpkg-buildpackage: архитектура узла amd64
    dpkg-source –before-build squid3-3.5.12
    debian/rules clean
    debian/rules:50: *** обнаружен способ до первого определения цели. Останов.
    dpkg-buildpackage: ошибка: debian/rules clean возвратил код ошибки 2

    Что я делаю не так?

    • Если смотреть по логу ошибки, то где-то что-то с синтаксисом debian/rules. Может где что опечатались. Можно удалить все файлы. Скачать заново. И собрать без изменений rules. Если собралось. Удалить полученные deb пакеты. Внести изменения в rules и собрать по новой.

      • Владимир

        А дело может быть в этом:

        apt-get build-dep squid3
        Чтение списков пакетов… Готово
        Чтение списков пакетов… Готово
        Построение дерева зависимостей
        Чтение информации о состоянии… Готово
        обновлено 0, установлено 0 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено.
        root@*****:~/makes# apt-get source squid3
        Чтение списков пакетов… Готово
        ВНИМАНИЕ: упаковка «squid3» поддерживается в системе контроля версий «Git»:
        git://anonscm.debian.org/pkg-squid/pkg-squid3.git/
        Используйте:
        git clone git://anonscm.debian.org/pkg-squid/pkg-squid3.git/
        для получения последних (возможно не выпущенных) обновлений пакета.
        Необходимо получить 4 827 kб архивов исходного кода.
        Пол:1 http://ru.archive.ubuntu.com/ubuntu xenial-updates/main squid3 3.5.12-1ubuntu7.3 (dsc) [2 528 B]
        Пол:2 http://ru.archive.ubuntu.com/ubuntu xenial-updates/main squid3 3.5.12-1ubuntu7.3 (tar) [4 773 kB]
        Пол:3 http://ru.archive.ubuntu.com/ubuntu xenial-updates/main squid3 3.5.12-1ubuntu7.3 (diff) [51,6 kB]
        Получено 4 827 kБ за 3с (1 331 kБ/c)
        gpgv: Подпись создана Сб 04 фев 2017 08:49:37 +07 ключом RSA с ID A744BE93
        gpgv: Не могу проверить подпись: открытый ключ не найден
        dpkg-source: предупреждение: проверка подписи для ./squid3_3.5.12-1ubuntu7.3.dsc завершилась неудачно
        dpkg-source: инфо: извлечение squid3 в squid3-3.5.12
        dpkg-source: инфо: распаковывается squid3_3.5.12.orig.tar.gz
        dpkg-source: инфо: распаковывается squid3_3.5.12-1ubuntu7.3.debian.tar.xz
        dpkg-source: инфо: накладывается 01-cf.data.debian.patch
        dpkg-source: инфо: накладывается 02-makefile-defaults.patch
        dpkg-source: инфо: накладывается 90-cf.data.ubuntu.patch
        dpkg-source: инфо: накладывается 99-ubuntu-ssl-cert-snakeoil.patch
        dpkg-source: инфо: накладывается CVE-2016-3947.patch
        dpkg-source: инфо: накладывается CVE-2016-4051.patch
        dpkg-source: инфо: накладывается CVE-2016-4052.patch
        dpkg-source: инфо: накладывается CVE-2016-4553.patch
        dpkg-source: инфо: накладывается CVE-2016-4554.patch
        dpkg-source: инфо: накладывается CVE-2016-4555.patch
        dpkg-source: инфо: накладывается CVE-2016-10002.patch
        dpkg-source: инфо: накладывается CVE-2016-10003.patch
        W: Невозможно сбросить права для скачивания, так как файл «squid3_3.5.12-1ubuntu7.3.dsc» недоступен для пользователя «_apt». – pkgAcquire::Run (13: Отказано в доступе)
        root@*****:~/makes#
        ?

        • W: Невозможно сбросить права для скачивания, так как файл «squid3_3.5.12-1ubuntu7.3.dsc» недоступен для пользователя «_apt».
          В статье написано что с этим делать

          В случае ошибки доступа apt “Невозможно сбросить права для скачивания” меняем права и повторяем
          chmod 777 squid3_3.5.12-1ubuntu7.3.dsc
          apt-get source squid3

  • Владимир

    Сделал глупость обновил сквид через apt-get upgrade и заменил конфигурационный файл на новый. После команды squid -k parse выдает ошибку:
    2017/04/29 07:55:19| Processing: https_port 192.168.0.1:3129 intercept ssl-bump cert=/etc/squid/squidCA.pem
    2017/04/29 07:55:19| ERROR: ‘https_port’ requires –with-openssl
    2017/04/29 07:55:19| Processing: ssl_bump peek all
    2017/04/29 07:55:19| ERROR: ‘ssl_bump’ requires –with-openssl
    2017/04/29 07:55:19| Processing: ssl_bump splice all
    2017/04/29 07:55:19| ERROR: ‘ssl_bump’ requires –with-openssl
    Я так понимаю-это потому что обновленный пакет был собран без опции –with-openssl
    ВОпрос-можно ли это обновлённый пакет выдернуть откуда-нибудь из системы, пересобрать и заново установить или просто перустановить сквид по инструкции и не обновляться вручную, ибо нефиг?

  • Илья

    Здравствуйте, в строчке конфига сквида
    http_port 192.168.20.1:3128 intercept
    адрес 192,168,20,1 это адрес прокси сервера?

  • Александр

    Всем привет!
    Установил и настроил Squid по статье, но блокирует всем выход в интернет. Видимо где то накосячил.
    Squid стоит на Orange PI в сети роутера и имеет IP 192,168,0,199, роутер 192,168,0,1 у него интерфейсы br0 – внутренний и vlan2 – наружу.
    В настройках Squid localnet прописал 192,168,0,0/24 на роутере зарулил запросы на Orange PI
    iptables -t nat -D PREROUTING -i br0 ! -d 192.168.0.0/24 -p tcp -m tcp –dport 80 -j DNAT –to-destination 192.168.0.199:3128
    после этого выводится страничка Squid о запрете доступа. В какую сторону копать?

    • Немного мутно. Особо настораживает правило iptables. Ну и тут завернут только http. Остается еще вопрос как проверяете. Точно ли переходите на http сайт. А не на https. Проверяли ли на этапах настройки работоспособность интернета через squid. Можно отключить прозрачность и посмотреть будет ли работа с явным указанием прокси сервера

  • Blocknet

    Возможно запустить на одном Ubuntu сервере и SQUID и OpenVPN ? Будут ли конфликты в iptables ?

  • Евгений

    Сделал все по схеме, но браузер все равно не пускает на https
    SEC_ERROR_UNKNOWN_ISSUER

    Где начать копать?
    Спасибо

    • Попробуйте проверить через IE. Тут больше похоже на ошибку браузера. С другого ПК как вариант. Это необходимо чтобы установить что непорядок именно со squid

  • Евгений

    https://hkar.ru/Pr5h
    https://hkar.ru/Pr5i

    При сборке вылезли вот такие ошибки, Но кальмар собрался и запускается без ошибок, но не работает

    • Как вариант что-то с зависимостями
      Можно повторить apt-get build-dep squid3 и пересобрать squid
      Еще надо попробовать apt-get install -f. И после запустить установку deb пакетов по новой

  • Евгений

    Я понимаю, что надоел, но вроде все работает)
    Отключаю прокси > не работает весь инет.
    Включаю прокси > весь инет работает, вместе с https.
    НО.
    Появился еще вопрос, как заблокировать httpS сайты?
    Я создаю список с сайтами и блокирую их. Но если ввести http://vk.com то блокирует, а если сразу ввести https://vk.com то блокировки нет, может подскажите что нибудь?

  • Man

    сборка проваливается:
    bio.cc: In member function ‘bool Ssl::Bio::sslFeatures::parseV3Hello(const unsigned char*, size_t)’:
    bio.cc:1052:47: error: ‘TLS_method’ was not declared in this scope
    const SSL_METHOD *method = TLS_method();
    ^
    bio.cc: In member function ‘bool Ssl::Bio::sslFeatures::parseV23Hello(const unsigned char*, size_t)’:
    bio.cc:1153:47: error: ‘TLS_method’ was not declared in this scope
    const SSL_METHOD *method = TLS_method();
    ^
    Makefile:917: recipe for target ‘bio.lo’ failed
    make[4]: *** [bio.lo] Error 1
    make[4]: Leaving directory ‘/home/ubuntu/temp/1/pkg-squid3/src/ssl’
    Makefile:7291: recipe for target ‘all-recursive’ failed
    make[3]: *** [all-recursive] Error 1
    make[3]: Leaving directory ‘/home/ubuntu/temp/1/pkg-squid3/src’
    Makefile:6152: recipe for target ‘all’ failed
    make[2]: *** [all] Error 2
    make[2]: Leaving directory ‘/home/ubuntu/temp/1/pkg-squid3/src’
    Makefile:581: recipe for target ‘all-recursive’ failed
    make[1]: *** [all-recursive] Error 1
    make[1]: Leaving directory ‘/home/ubuntu/temp/1/pkg-squid3’
    /usr/share/cdbs/1/class/makefile.mk:47: recipe for target ‘debian/stamp-makefile-build’ failed
    make: *** [debian/stamp-makefile-build] Error 2
    dpkg-buildpackage: error: debian/rules build gave error exit status 2

    Подскажите, как пофиксить?

    • dpkg-buildpackage: error: debian/rules build gave error exit status 2
      Судя по этой строке, что-то не так с файлом rules. Попробуйте скачать заново. И главное проверьте синтаксис. А именно чтобы в конце строк с параметрами везде были \ как на картинке

      • Man

        Со переносами строк все в порядке. Проблема возникает при добавлении ключа “–with-openssl”.
        Полагаю, что подсказка кроется в этих строках:

        bio.cc: In member function ‘bool Ssl::Bio::sslFeatures::parseV3Hello(const unsigned char*, size_t)’:
        bio.cc:1013:47: error: ‘TLS_method’ was not declared in this scope
        const SSL_METHOD *method = TLS_method();
        ^
        bio.cc: In member function ‘bool Ssl::Bio::sslFeatures::parseV23Hello(const unsigned char*, size_t)’:
        bio.cc:1114:47: error: ‘TLS_method’ was not declared in this scope
        const SSL_METHOD *method = TLS_method();
        ^
        Makefile:917: recipe for target ‘bio.lo’ failed

        Но мне, к сожалению, это мало о чем говорит.

      • Man

        поправочка: “–-with-openssl”

  • 2017/08/24 09:29:19 kid1| Error negotiating SSL on FD 46: error:140920F8:SSL routines:ssl3_get_server_hello:unknown cipher returned (1/-1/0)
    Постоянно вылазит ошибка и не открывается youtube, в чём дело ?

  • $IPTABLES —policy FORWARD ACCEPT если сделать так то работает.
    Может yutube какие-то другие порты использует кроме 443 ?

  • pashochek179

    Здравствуйте! Ребята я новичок в линукс, так прошу сразу тапками не закидывать! Есть задача настроить прокси сервер. Настроил частично по вашему мануалу, вроде как даже все получилось… Но компы на WinXP не могут зайти на google.com.ua, а некоторые на Win10 не заходят на сайт art-gps.com(это основной для работы сайт). Добавляю ссылки на логи:
    https://www.dropbox.com/s/lg4tk06v3fbygs5/cache.log?dl=0
    https://www.dropbox.com/s/8ikexkwpeus6u1n/access.log?dl=0

    Заранее спасибо!

  • Валерий

    Надо ещё зафиксировать пакеты, чтобы они не обновлялись.
    sudo apt-mark hold packname

    • Угу. Тут рассмотрено что систему после этого обновлять нельзя. Лучше вообще без ОСТРОЙ необходимости не обновлять рабочий сервер. Никогда неизвестно что слетит

  • Rust

    Если выкинуть (а зачем TCP_TUNNEL/200, всё не кеширует)
    ssl_bump peek all
    ssl_bump splice all
    И добавить
    ssl_bump bump all
    то
    Self-signed certificate encountered.
    ERROR: certificate common name ‘1.1.1.1’ doesn’t match requested host name ‘a.b.c’

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *