Некоторые подсказки:
eval
для интерпретации переменной. find
, а используйте find -exec
. bash
вместо cut
. rsync
вместо cp
. find backup -type f -exec sh -c '
mkdir -p "$(eval dirname "${1#*/}")";
rsync -av "$1" "$(eval printf "${1#*/}")"
' find-sh {} \;
Или лучше просто используйте rsync
в первую очередь, что делает именно то, что вы хотите:
rsync -av backup/\$HOME/ $HOME/
Не беспокойтесь; это пустая трата времени:
# apt-get install openssl
# mkdir -p /etc/squid/cert
# cd /etc/squid/cert
# openssl req -new -newkey rsa:4096 -sha256 -days 365 -nodes -x509 -keyout myCA.pem -out myCA.pem
# openssl x509 -in myCA.pem -outform DER -out myCA.der
# chown -R proxy:proxy /etc/squid/cert
# chmod 700 /etc/squid/cert
# /usr/lib/squid/security_file_certgen -c -s /var/spool/squid/ssl_db -M 4MB
# chown -R proxy:proxy /var/spool/squid/ssl_db/
И вsquid.conf
:
https_port 3129 intercept ssl-bump cert=/etc/squid/cert/myCA.pem generate-host-certificates=on dynamic_cert_mem_cache_si
ze=4MB
ssl_bump peek all
ssl_bump splice all
И для перехвата:
iptables -t nat -A PREROUTING -i br0 -p tcp --dport 443 -j DNAT --to 192.168.1.51:3129
iptables -t nat -A PREROUTING -i br0 -p tcp --dport 443 -j REDIRECT --to-port 3129
(Здесь br0
моя внутренняя сеть.)
Вот команда для просмотра наиболее часто кэшируемых доменов. SSL отображаются пустыми.
awk 'BEGIN {FS="[ ]+"}; {print $7}' < /var/log/squid/access.log | awk 'BEGIN {FS="/"}; {print $3}' | sort | uniq -c |sort -k1,1nr -k2,2 | head
Это не прямой ответ на ваш вопрос, поскольку я просто использую squid в качестве локального кеширующего прокси. Несмотря на это, я разместил здесь, так как ваш вопрос был наиболее близок к тому, что мне было нужно, и теперь я его проработал, и я хотел поделиться.
В Debian 11/Bullseye необходимо установить пакет squid -openssl(Squid v4.x, скомпилированный--with-openssl
).
apt install -y squid-openssl
Затем установите (собственный -подписанный )доверенный сертификат ЦС:
CERT_D=/etc/squid/cert/
CERT=$CERT_D/squid_proxyCA.pem
rm -rf $CERT
mkdir -p $CERT_D
# Generate local self-signed CA certificate/key (in the same file)
openssl req -new -newkey rsa:4096 -sha256 -days 365 -nodes -x509 -keyout $CERT -out $CERT
chown -R proxy:proxy $CERT_D
chmod 0400 $CERT
# add squid_proxyCA cert to system so it's trusted by default
CA_CERT_D=/usr/local/share/ca-certificates
rm -rf $CA_CERT_D/*
mkdir -p $CA_CERT_D
openssl x509 -inform PEM -in $CERT -out $CA_CERT_D/squid_proxyCA.crt
update-ca-certificates
Настройте squid для генерации сертификатов на лету:
/usr/lib/squid/security_file_certgen -c -s /var/spool/squid/ssl_db -M 4MB
Тогда это моя/etc/squid/squid.conf
(заметка, она довольно минималистична и принимает соединения только с локального хоста и слушает только IPv4):
acl localhost src 127.0.0.1/255.255.255.255
acl SSL_ports port 443
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 1025-65535 # unregistered ports
acl purge method PURGE
acl CONNECT method CONNECT
http_access allow manager localhost
http_access deny manager
http_access allow purge localhost
http_access deny purge
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost
http_access deny all
http_port 127.0.0.1:3128 ssl-bump cert=/etc/squid/certs/squid_proxyCA.pem generate-host-certificates=on options=NO_SSLv3,NO_TLSv1,NO_TLSv1_1,SINGLE_DH_USE,SINGLE_ECDH_USE
ssl_bump bump all
coredump_dir /var/spool/squid
logfile_rotate 0
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern. 0 20% 4320
cache_dir ufs /var/spool/squid 200 16 256
Наконец, перезапустите squid:
systemctl reload squid
Еще одна вещь, о которой стоит упомянуть, это то, что URL-адрес прокси http://127.0.0.1:3028
должен использоваться для как , так и http_proxy
, и , https_proxy
(, обратите внимание на http.-нет с ; даже при использовании в качестве https-прокси ). Если/когда используется с https, Squid обновит соединение для использования TLS/SSL.