Ubuntu прозорий squid https

Вирішив подивитися на роботу прозорого Squid transparent.
У версіях вище 3 вказують intercept
Багато натикався на складності в налаштуваннях саме в режимі HTTPS
Як виявилося не даремно.
Так склалося що при установці через apt ми отримуємо Squid без підтримки SSl
приступимо

Є два шляхи вирішення.

1) З підміною сертифікатів.
В цьому випадку генерується сертифікат. Потім вже на клієнтських машинах він додається в довірені
Метод має на увазі що необхідно на всіх комп'ютерах користувачів провести цю маніпуляцію

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

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

Щоб постійно не вводити sudo переходимо в root

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

Ubuntu прозорий squid https

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

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

Качаємо залежності (для виконання цієї операції був поставлений dpkg-dev)

У разі помилки доступу apt "Неможливо скинути права для скачування" міняємо права і повторюємо

У моєму випадку це був файл squid3_3.5.12-1ubuntu7.2.dsc може бути і squid3_3.5.12-1ubuntu7.3.dsc і інші різновиди

Якщо цього не зробити або будуть помилки, то чи не з'явиться папка debian

Переходимо в отриману папку

Додаємо підтримку ssl
Редагуємо файл правил

Ubuntu прозорий squid https

ВАЖЛИВО: щоб всі параметри закінчувалися \. а саме дописати після proxy

Збираємо DEB пакети (Процес довгий)

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

Йдемо на папку вище і там повинні бути отримані пакети

Правимо залежності і переставляємо (На цьому моменті він підтягнув apache для якихось своїх цілей)

Якщо все успішно то дивимося версію squid і що у нас вийшло

(Код в рядок. Відформатувати для наочності)

Конфігурація без блокувань і іншого. Саме подивитися роботу прозорого режиму. Звичайна базова з додаванням SSL

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

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

Для режиму варіанту з підміною сертифіката наступні рядки писати не треба

Робота необхідно налаштувати iptables

Якщо в якості шлюзу використовується маршрутизатор, то на ньому перенаправляємо порти 80 і 443 на сервер де стоїть SQUID на порти 3128 і 3129 відповідно
В такому випадку правила "Загортаємо SQUID" для iptables непотрібні.

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

Максим Дубовик

Ще не можу зрозуміти, начебто все зробив, налаштував редирект портів 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. Дуже дивно, як так вийшло, робив все по інструкції ...

-= IMBICILE = - (одміну)

Після команди: 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

-= IMBICILE = - (одміну)

Оууу. Тут помилка може виникати з багатьох причин. Найчастіше з-за того що на системі вже проводилися всякого виду маніпуляції. Тут в прикладі я все робив на чистій системі. Поставив, оновив і став збирати. Збірку пакетів руками на Ubuntu взагалі не вважаю хорошою ідеєю. Якщо все ж вийде, то рекомендую просто поставити squid і у користувачів прописати його як proxy сервер. Набагато простіше і ефективніше.

-= IMBICILE = - (одміну)

Сам висновок балки такої:

Може як варіант в новому sqid що накрутили

Є така директива logformat

За посиланням її конфігурація ТУТ
Можна її покриття

Тобто по HTTP все нормально ні перетворювати, а по HTTPS немає.

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

-= IMBICILE = - (одміну)

Так то на вигляд лог явно інший. Ну по структурі відрізняється

Але у мене в роботі зараз старий і не прозорий 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

команда
# 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

Що я роблю не так?

-= IMBICILE = - (одміну)

Якщо дивитися по балці помилки, то де-то что-то з синтаксисом debian / rules. Може десь що опечатали. Можна видалити всі файли. Завантажити заново. І зібрати без змін rules. Якщо зібралося. Видалити отримані deb пакети. Внести зміни в rules і зібрати за новою.

А справа може бути в цьому:

-= IMBICILE = - (одміну)

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

У разі помилки доступу apt "Неможливо скинути права для скачування" міняємо права і повторюємо
chmod 777 squid3_3.5.12-1ubuntu7.3.dsc
apt-get source squid3

-= IMBICILE = - (одміну)

Все правильно. Після поновлення він встав з репозитаріїв. А там він якраз зібраний без ssl. Тому треба пересобрать його по інструкції і більш не оновлювати

Всім привіт!
Встановив і налаштував 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 про заборону доступу. В який бік копати?

-= IMBICILE = - (одміну)

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

збірка провалюється:
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

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

-= IMBICILE = - (одміну)

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

З переносами рядків все в порядку. Проблема виникає при додаванні ключа "-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

Але мені, на жаль, це мало про що говорить.

Схожі статті