Ну почти работает.
Сертификаты:
# mkdir /etc/squid/ssl && cd /etc/squid/ssl && chown -R squid:squd /etc/squid/ssl
# openssl genrsa -out /etc/squid/ssl/squid.key
# openssl req -new -key /etc/squid/ssl/squid.key -out /etc/squid/ssl/squid.csr
# openssl x509 -req -days 3650 -in /etc/squid/ssl/squid.csr -signkey /etc/squid/ssl/squid.key -out /etc/squid/ssl/squid.pem
В squd.conf:
http_port 3128 transparent
https_port 3129 intercept ssl-bump generate-host-certificates=on dynamic_cert_mem_cache_size=4MB cert=/etc/squid/ssl/squid.pem key=/etc/squi /ssl/squid.key
sslproxy_flags DONT_VERIFY_PEER
sslproxy_cert_error allow all
always_direct allow all
ssl_bump client-first all
ssl_bump server-first all
ssl_bump none all
sslcrtd_program /usr/libexec/squid/ssl_crtd -s /var/lib/ssl_db -M 4MB
Важный момент путь до sslcrtd_program /usr/libexec/squid/ssl_crtd
И каталог /var/lib/ssl_db
Иначе будет вываливаться с ошибкой в логе:
(squid-1): The ssl_crtd helpers are crashing too rapidly, need help!
Пересоздать базу сертификатов так:
# rm -rf /var/lib/ssl_db && /usr/libexec/squid/ssl_crtd -c -s /var/lib/ssl_db && chown -R squid:squid /var/lib/ssl_db
# squid -v
Squid Cache: Version 3.3.1
configure options: '--prefix=/usr' '--build=x86_64-pc-linux-gnu' '--host=x86_64-pc-linux-gnu' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--datadir=/usr/share' '--sysconfdir=/etc' '--localstatedir=/var/lib' '--libdir=/usr/lib64' '--disable-dependency-tracking' '--sysconfdir=/etc/squid' '--libexecdir=/usr/libexec/squid' '--localstatedir=/var' '--with-pidfile=/run/squid.pid' '--datadir=/usr/share/squid' '--with-logdir=/var/log/squid' '--with-default-user=squid' '--enable-removal-policies=lru,heap' '--enable-storeio=aufs,diskd,rock,ufs' '--enable-disk-io' '--enable-auth' '--enable-auth-basic=MSNT,MSNT-multi-domain,NCSA,POP3,getpwnam,SMB,LDAP,PAM,NIS,DB' '--enable-auth-digest=file,LDAP,eDirectory' '--enable-auth-ntlm=smb_lm' '--enable-auth-negotiate=none' '--enable-external-acl-helpers=file_userip,session,unix_group,wbinfo_group,LDAP_group,eDirectory_userip' '--enable-log-daemon-helpers' '--enable-url-rewrite-helpers' '--enable-cache-digests' '--enable-delay-pools' '--enable-eui' '--enable-icmp' '--enable-follow-x-forwarded-for' '--enable-esi' '--with-large-files' '--disable-strict-error-checking' '--with-libcap' '--disable-ipv6' '--enable-snmp' '--enable-ssl' '--enable-ssl-crtd' '--enable-icap-client' '--enable-ecap' '--enable-linux-netfilter' '--enable-zph-qos' '--with-netfilter-conntrack' 'build_alias=x86_64-pc-linux-gnu' 'host_alias=x86_64-pc-linux-gnu' 'CC=gcc' 'CFLAGS=-march=native -mtune=native -O2 -pipe -g0 -Wno-all' 'LDFLAGS=-Wl,-O1 -Wl,--as-needed' 'CXX=g++' 'CXXFLAGS=-march=native -mtune=native -O2 -pipe -g0 -Wno-all' 'PKG_CONFIG_PATH=/usr/lib64/pkgconfig'
# netstat -nap | grep 312
tcp 0 0 0.0.0.0:3128 0.0.0.0:* LISTEN 24713/(squid-1)
tcp 0 0 0.0.0.0:3129 0.0.0.0:* LISTEN 24713/(squid-1)
Iptables - для проверки на один ip:
iptables -t nat -A PREROUTING -s 192.168.0.8 -p tcp --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -s 192.168.0.8 -p tcp --dport 443 -j REDIRECT --to-port 3129
История показывает, что во всем новом обычно кроется какой-то подвох.
Классическая ошибка, которую совершают проектировщики
абсолютно надежных систем, - недооценка изобретательности клинических идиотов.