Вирішив подивитися на роботу прозорого Squid transparent.
У версіях вище 3 вказують intercept
Багато натикався на складності в налаштуваннях саме в режимі HTTPS
Як виявилося не даремно.
Так склалося що при установці через apt ми отримуємо Squid без підтримки SSl
приступимо
Є два шляхи вирішення.
1) З підміною сертифікатів.
В цьому випадку генерується сертифікат. Потім вже на клієнтських машинах він додається в довірені
Метод має на увазі що необхідно на всіх комп'ютерах користувачів провести цю маніпуляцію
Тут більш менш все просто. Можна підключити репозитарій і встановити вже підготовлений Squid
2) Без заміни сертифікатів
Ось тут вже складніше. Необхідно збирати заново пакет Squid.
Щоб постійно не вводити sudo переходимо в root
Розблокуємо гілки де вказано src
Оновити і поставимо необхідні бібліотеки для збірки
Створимо папку де буде проводиться збірка
Качаємо залежності (для виконання цієї операції був поставлений dpkg-dev)
У разі помилки доступу apt "Неможливо скинути права для скачування" міняємо права і повторюємо
У моєму випадку це був файл squid3_3.5.12-1ubuntu7.2.dsc може бути і squid3_3.5.12-1ubuntu7.3.dsc і інші різновиди
Якщо цього не зробити або будуть помилки, то чи не з'явиться папка debian
Переходимо в отриману папку
Додаємо підтримку ssl
Редагуємо файл правил
ВАЖЛИВО: щоб всі параметри закінчувалися \. а саме дописати після 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
Але мені, на жаль, це мало про що говорить.