Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Установка squid 3.5.23
- 0. NB! В системе используется LibreSSL 2.5.0 (openssl version -> LibreSSL 2.5.0)
- 1. Устанавливаем squid3 из репозиториев debian (версия 3.5.23-1).
- 1.1. aptitude install squid3
- 1.2. После чего останавливаем его: /etc/init.d/squid3 stop
- 2. Скачать squid 3.5.23
- 2.1. root@gtw-v2:/usr/src# wget http://www.squid-cache.org/Versions/v3/3.5/squid-3.5.23.tar.gz
- 3. Разархивировать его
- 3.1. root@gtw-v2:/usr/src# tar -xzf squid-3.5.23.tar.gz
- Примечание: необходимо отключить ipv6 (см. Hardware.txt)
- 4. Устанавливаем необходимые пакеты для компиляции squid’a
- 4.1. root@gtw-v2:/usr/src# apt-get build-dep squid3
- 4.2. root@gtw-v2:/usr/src# aptitude install libssl-dev
- Вместе с ними будут установлены сопутствующие пакеты для компиляции, после которой их необходимо будет удалить. Список удаления см. ниже.
- 4.3. Ставим дополнительно пакеты, которые так же после установки можно будет удалить:
- gcc
- build-essential
- Вместе с ними будут установлены сопутствующие пакеты для компиляции, после которой их необходимо будет удалить. Список удаления см. ниже.
- 5. Создаем в папочке [/usr/src/]?squid-3.5.23 скрипт с конфигурационными параметрами 1.sh
- ./configure \
- --build=x86_64-linux-gnu \
- --prefix=/usr \
- --includedir=${prefix}/include \
- --mandir=${prefix}/share/man \
- --infodir=${prefix}/share/info \
- --localstatedir=/var \
- --libexecdir=${prefix}/lib/squid3 \
- --disable-maintainer-mode \
- --disable-dependency-tracking \
- --disable-silent-rules \
- --datadir=/usr/share/squid3 \
- --sysconfdir=/etc/squid3 \
- --mandir=/usr/share/man \
- --enable-inline \
- --enable-async-io=8 \
- --enable-storeio=ufs,aufs,diskd \
- --enable-removal-policies=lru,heap \
- --enable-delay-pools \
- --enable-ssl \
- --enable-ssl-crtd \
- --enable-cache-digests \
- --enable-underscores \
- --enable-icap-client \
- --enable-follow-x-forwarded-for \
- --enable-auth \
- --enable-basic-auth-helpers \
- --enable-ntlm-auth-helpers=smb_lm \
- --enable-digest-auth-helpers=ldap,password \
- --enable-negotiate-auth-helpers=squid_kerb_auth \
- --enable-external-acl-helpers \
- --enable-arp-acl \
- --enable-esi \
- --enable-zph-qos \
- --enable-wccpv2 \
- --with-logdir=/var/log/squid3 \
- --with-pidfile=/var/run/squid3.pid \
- --with-filedescriptors=65536 \
- --with-large-files \
- --with-default-user=proxy \
- --enable-linux-netfilter \
- --disable-ipv6 \
- --with-ssl \
- --enable-snmp
- 6. На файл 1.sh выдать права на исполнение chmod 770 1.sh
- 7. Затем приступаем к конфигурированию, путем запуска нашего скрипта 1.sh
- 8. После успешного завершения конфигурирования приступаем к компиляции, набрав в консоли make
- 9. Устанавливаем squid 3.5.23: make install
- 10. Перемещаем squid3 в squid_old (mv /usr/sbin/squid3 /usr/sbin/squid3_old), а squid в squid3 (mv /usr/sbin/squid /usr/sbin/squid3)
- 11. Затем пробуем запустить squid (/etc/init.d/squid3 start)
- После запуска возможно появление ошибки следующего содержания:
- [....] Starting Squid HTTP Proxy 3.x: squid32014/03/25 16:01:58| aclParseAclLine: ACL 'manager' already exists with different type.
- FATAL: Bungled /etc/squid3/squid.conf line 693: acl manager proto cache_object
- Решение данной проблемы – необходимо разложить конфиги.
- 12. После этого запускаем squid и удаляем сопутствующие пакеты, использованные для компиляции squid’a.
- Список пакетов для удаления после компиляции squid’a
- 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
- 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
- 13. Удаляем исходники squid’а: rm squid-3.4.4/ squid-3.4.4.tar.gz –rf
- 14. NB! Не забудьте указать aptitude НЕ выполнять обновление пакета squid3. В противном случае при обновлении пакетов squid3 версии 3.4.Х будет заменен на версию из репозиториев Дебиана (в моем случае 3.1.20), которая, скорее всего, будет сконфигурирована без указания нужных Вам опций. aptitude hold squid3
- apt-mark hold squid3
- 15. Если через прокси-сервер успешно открываются страницы по http, но не хотят открываться страницы по https – необходимо выдать права на папку /etc/squid3/ssl-bump пользователю proxy. А ещё лучше всей папке /etc/squid3: chown proxy:proxy /etc/squid3 -R
- Настройка SSL bumping’а
- 1. Для работы ssl bumping’а squid должен быть скомпилирован с опциями: --enable-ssl --enable-ssl-crtd
- 2. Генерируем приватный ключ: openssl genrsa -out <server-name>.private 2048, где <server-name> - имя сервера.
- Например: openssl genrsa -out gtw-v2.polymer.private 2048
- 3. Генерируем запрос подписи сертификата (certificate signing request): openssl req -new -key <server-name>.private -out <server-name>.csr
- Например: openssl req -new -key gtw-v2.polymer.private -out gtw-v2.polymer.csr
- На вопросы при генерации отвечаем следующим образом:
- Country Name (2 letter code) [AU]:RU
- State or Province Name (full name) [Some-State]:Smolensk
- Locality Name (eg, city) []:Desnogorsk
- Organization Name (eg, company) [Internet Widgits Pty Ltd]:Polymer
- Organizational Unit Name (eg, section) []:IT
- Common Name (e.g. server FQDN or YOUR name) []:gtw-v2 Polymer
- Email Address []:admin@polymersm.ru
- Please enter the following 'extra' attributes
- to be sent with your certificate request
- A challenge password []:zzExtra
- An optional company name []:
- 4. Создаем непосредственно сертификат: openssl x509 -req -days 3652 -in <server-name>.csr -signkey <server-name>.private -out <server-name>.crt
- Например: openssl x509 -req -days 3652 -in gtw-v2.polymer.csr -signkey gtw-v2.polymer.private -out gtw-v2.polymer.crt
- 5. Копируем папку, с созданными сертификатом, ключом и запросом подписи в /etc/squid3 и назначаем её владельцем пользователя squid’a:
- cp /root/ssl-bump/ /etc/squid3/ -R
- chown proxy:proxy /etc/squid3/ssl-bump/ -R
- 6. Создаем кеш сертификатов squid’а и указываем пользователя squid’а её владельцем:
- /lib/squid3/ssl_crtd -c -s /etc/squid3/ssl-db
- chown proxy:proxy /etc/squid3/ssl-db/ -R
- 7. И включаем ssl bumping в конфиге сквида /etc/squid3/squid.conf:
- 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
- # SSL Bump Config
- always_direct allow all
- ssl_bump server-first all
- sslproxy_cert_error deny all
- sslproxy_flags DONT_VERIFY_PEER
- sslcrtd_program /lib/squid3/ssl_crtd -s /etc/squid3/ssl-db -M 4MB
- sslcrtd_children 8 startup=1 idle=1
- 8. Запускаем/перезапускаем squid: /etc/init.d/squid3 restart
- 9. Копируем сертификат на клиентскую машину и устанавливаем его в IE и Firefox с помощью скриптов Cert auto-add (скопировав сертификат в папку Cert auto-add).
- 10. Проверяем работу протокола https у клиента. В логах squid’a на сервере смотрим прозрачность ssl-соединений.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement