Advertisement
Guest User

Untitled

a guest
Nov 13th, 2018
354
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Установка squid 3.5.23
  2. 0. NB! В системе используется LibreSSL 2.5.0 (openssl version -> LibreSSL 2.5.0)
  3. 1. Устанавливаем squid3 из репозиториев debian (версия 3.5.23-1).
  4. 1.1. aptitude install squid3
  5. 1.2. После чего останавливаем его: /etc/init.d/squid3 stop
  6. 2. Скачать squid 3.5.23
  7. 2.1. root@gtw-v2:/usr/src# wget http://www.squid-cache.org/Versions/v3/3.5/squid-3.5.23.tar.gz
  8. 3. Разархивировать его
  9. 3.1. root@gtw-v2:/usr/src# tar -xzf squid-3.5.23.tar.gz
  10. Примечание: необходимо отключить ipv6 (см. Hardware.txt)
  11. 4. Устанавливаем необходимые пакеты для компиляции squid’a
  12. 4.1. root@gtw-v2:/usr/src# apt-get build-dep squid3
  13. 4.2. root@gtw-v2:/usr/src# aptitude install libssl-dev
  14. Вместе с ними будут установлены сопутствующие пакеты для компиляции, после которой их необходимо будет удалить. Список удаления см. ниже.
  15. 4.3. Ставим дополнительно пакеты, которые так же после установки можно будет удалить:
  16. gcc
  17. build-essential
  18. Вместе с ними будут установлены сопутствующие пакеты для компиляции, после которой их необходимо будет удалить. Список удаления см. ниже.
  19. 5. Создаем в папочке [/usr/src/]?squid-3.5.23 скрипт с конфигурационными параметрами 1.sh
  20. ./configure \
  21. --build=x86_64-linux-gnu \
  22. --prefix=/usr \
  23. --includedir=${prefix}/include \
  24. --mandir=${prefix}/share/man \
  25. --infodir=${prefix}/share/info \
  26. --localstatedir=/var \
  27. --libexecdir=${prefix}/lib/squid3 \
  28. --disable-maintainer-mode \
  29. --disable-dependency-tracking \
  30. --disable-silent-rules \
  31. --datadir=/usr/share/squid3 \
  32. --sysconfdir=/etc/squid3 \
  33. --mandir=/usr/share/man \
  34. --enable-inline \
  35. --enable-async-io=8 \
  36. --enable-storeio=ufs,aufs,diskd \
  37. --enable-removal-policies=lru,heap \
  38. --enable-delay-pools \
  39. --enable-ssl \
  40. --enable-ssl-crtd \
  41. --enable-cache-digests \
  42. --enable-underscores \
  43. --enable-icap-client \
  44. --enable-follow-x-forwarded-for \
  45. --enable-auth \
  46. --enable-basic-auth-helpers \
  47. --enable-ntlm-auth-helpers=smb_lm \
  48. --enable-digest-auth-helpers=ldap,password \
  49. --enable-negotiate-auth-helpers=squid_kerb_auth \
  50. --enable-external-acl-helpers \
  51. --enable-arp-acl \
  52. --enable-esi \
  53. --enable-zph-qos \
  54. --enable-wccpv2 \
  55. --with-logdir=/var/log/squid3 \
  56. --with-pidfile=/var/run/squid3.pid \
  57. --with-filedescriptors=65536 \
  58. --with-large-files \
  59. --with-default-user=proxy \
  60. --enable-linux-netfilter \
  61. --disable-ipv6 \
  62. --with-ssl \
  63. --enable-snmp
  64.  
  65. 6. На файл 1.sh выдать права на исполнение chmod 770 1.sh
  66. 7. Затем приступаем к конфигурированию, путем запуска нашего скрипта 1.sh
  67. 8. После успешного завершения конфигурирования приступаем к компиляции, набрав в консоли make
  68. 9. Устанавливаем squid 3.5.23: make install
  69. 10. Перемещаем squid3 в squid_old (mv /usr/sbin/squid3 /usr/sbin/squid3_old), а squid в squid3 (mv /usr/sbin/squid /usr/sbin/squid3)
  70. 11. Затем пробуем запустить squid (/etc/init.d/squid3 start)
  71. После запуска возможно появление ошибки следующего содержания:
  72. [....] Starting Squid HTTP Proxy 3.x: squid32014/03/25 16:01:58| aclParseAclLine: ACL 'manager' already exists with different type.
  73. FATAL: Bungled /etc/squid3/squid.conf line 693: acl manager proto cache_object
  74. Решение данной проблемы – необходимо разложить конфиги.
  75. 12. После этого запускаем squid и удаляем сопутствующие пакеты, использованные для компиляции squid’a.
  76. Список пакетов для удаления после компиляции squid’a
  77. libasan1 libatomic1 libcilkrts5 libisl10 libcloog-isl4 libgomp1 libitm1 liblsan0 libmpfr4 libquadmath0 libtsan0 libubsan0 libmpc3 binutils cpp-4.9 cpp libgcc-4.9-dev gcc-4.9 gcc libstdc++-4.9-dev g++-4.9 g++ libdpkg-perl dpkg-dev build-essential libfakeroot fakeroot libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl libfile-fcntllock-perl
  78. libssl-dev libssl-doc zlib1g-dev autotools-dev binutils build-essential cdbs comerr-dev cpp cpp-4.7 debhelper dpkg-dev g++ g++-4.7 gcc gcc-4.7 gettext html2text intltool-debian krb5-multidev libc-dev-bin libc6-dev libcap-dev libcppunit-1.12-1 libcppunit-dev libcroco3 libdb-dev libdb5.1-dev libdpkg-perl libexpat1-dev libffi5 libgettextpo0 libglib2.0-0 libgmp10 libgomp1 libgssrpc4 libitm1 libkadm5clnt-mit8 libkadm5srv-mit8 libkdb5-6 libkrb5-dev libldap2-dev libltdl-dev libmpc2 libmpfr4 libpam0g-dev libquadmath0 libsasl2-dev libstdc++6-4.7-dev libtimedate-perl libunistring0 libxml2-dev linux-libc-dev make po-debconf
  79. 13. Удаляем исходники squid’а: rm squid-3.4.4/ squid-3.4.4.tar.gz –rf
  80. 14. NB! Не забудьте указать aptitude НЕ выполнять обновление пакета squid3. В противном случае при обновлении пакетов squid3 версии 3.4.Х будет заменен на версию из репозиториев Дебиана (в моем случае 3.1.20), которая, скорее всего, будет сконфигурирована без указания нужных Вам опций. aptitude hold squid3
  81. apt-mark hold squid3
  82. 15. Если через прокси-сервер успешно открываются страницы по http, но не хотят открываться страницы по https – необходимо выдать права на папку /etc/squid3/ssl-bump пользователю proxy. А ещё лучше всей папке /etc/squid3: chown proxy:proxy /etc/squid3 -R
  83.  
  84. Настройка SSL bumping’а
  85. 1. Для работы ssl bumping’а squid должен быть скомпилирован с опциями: --enable-ssl --enable-ssl-crtd
  86. 2. Генерируем приватный ключ: openssl genrsa -out <server-name>.private 2048, где <server-name> - имя сервера.
  87. Например: openssl genrsa -out gtw-v2.polymer.private 2048
  88. 3. Генерируем запрос подписи сертификата (certificate signing request): openssl req -new -key <server-name>.private -out <server-name>.csr
  89. Например: openssl req -new -key gtw-v2.polymer.private -out gtw-v2.polymer.csr
  90. На вопросы при генерации отвечаем следующим образом:
  91. Country Name (2 letter code) [AU]:RU
  92. State or Province Name (full name) [Some-State]:Smolensk
  93. Locality Name (eg, city) []:Desnogorsk
  94. Organization Name (eg, company) [Internet Widgits Pty Ltd]:Polymer
  95. Organizational Unit Name (eg, section) []:IT
  96. Common Name (e.g. server FQDN or YOUR name) []:gtw-v2 Polymer
  97. Email Address []:admin@polymersm.ru
  98.  
  99. Please enter the following 'extra' attributes
  100. to be sent with your certificate request
  101. A challenge password []:zzExtra
  102. An optional company name []:
  103. 4. Создаем непосредственно сертификат: openssl x509 -req -days 3652 -in <server-name>.csr -signkey <server-name>.private -out <server-name>.crt
  104. Например: openssl x509 -req -days 3652 -in gtw-v2.polymer.csr -signkey gtw-v2.polymer.private -out gtw-v2.polymer.crt
  105. 5. Копируем папку, с созданными сертификатом, ключом и запросом подписи в /etc/squid3 и назначаем её владельцем пользователя squid’a:
  106. cp /root/ssl-bump/ /etc/squid3/ -R
  107. chown proxy:proxy /etc/squid3/ssl-bump/ -R
  108. 6. Создаем кеш сертификатов squid’а и указываем пользователя squid’а её владельцем:
  109. /lib/squid3/ssl_crtd -c -s /etc/squid3/ssl-db
  110. chown proxy:proxy /etc/squid3/ssl-db/ -R
  111. 7. И включаем ssl bumping в конфиге сквида /etc/squid3/squid.conf:
  112. http_port 3128 ssl-bump generate-host-certificates=on dynamic_cert_mem_cache_size=4MB key=/etc/squid3/ssl-bump/gtw-v2.polymer.private cert=/etc/squid3/ssl-bump/gtw-v2.polymer.crt
  113. # SSL Bump Config
  114. always_direct allow all
  115. ssl_bump server-first all
  116. sslproxy_cert_error deny all
  117. sslproxy_flags DONT_VERIFY_PEER
  118. sslcrtd_program /lib/squid3/ssl_crtd -s /etc/squid3/ssl-db -M 4MB
  119. sslcrtd_children 8 startup=1 idle=1
  120.  
  121. 8. Запускаем/перезапускаем squid: /etc/init.d/squid3 restart
  122. 9. Копируем сертификат на клиентскую машину и устанавливаем его в IE и Firefox с помощью скриптов Cert auto-add (скопировав сертификат в папку Cert auto-add).
  123. 10. Проверяем работу протокола https у клиента. В логах squid’a на сервере смотрим прозрачность ssl-соединений.
Advertisement
RAW Paste Data Copied
Advertisement