Squid 5 en modo transparente SSL y funcionando en absoloom

Responder
sysop
Site Admin
Mensajes: 24
Registrado: Jue Ago 01, 2019 4:24 pm

Squid 5 en modo transparente SSL y funcionando en absoloom

Mensaje por sysop »

Squid 5 en modo transparente con certificado auto firmado y funcionando (Modificacion 3 - 26/11/2019)

bajarse el squid tu eliges versión yo elegí esta


http://www.squid-cache.org/Versions/v5/ ... a91.tar.gz

Dependencias

Código: Seleccionar todo

apt install devscripts build-essential openssl libssl-dev fakeroot libcppunit-dev libsasl2-dev cdbs ccze libfile-readbackwards-perl libcap2 libcap-dev libcap2-dev libnetfilter-conntrack-dev htop ccze sysv-rc-conf 

cd /opt/squid-5
configura

Código: Seleccionar todo

./configure --x-includes=/usr/include --x-libraries=/usr/lib --with-default-user=proxy --with-logdir=/var/log/squid --with-pidfile=/var/run/squid.pid --enable-storeio=ufs,aufs,diskd --enable-linux-netfilter --enable-removal-policies=lru,heap --enable-gnuregex --enable-follow-x-forwarded-for --enable-x-accelerator-vary --enable-zph-qos --enable-delay-pools --enable-snmp --enable-underscores --with-openssl --enable-ssl-crtd --enable-http-violations --enable-async-io=24 --enable-storeid-rewrite-helpers --with-large-files --with-libcap --with-netfilter-conntrack --with-included-ltdl --with-maxfd=65536 --with-filedescriptors=65536 --with-pthreads --without-gnutls --without-mit-krb5 --without-heimdal-krb5 --without-gnugss --disable-icap-client --disable-wccp --disable-wccpv2 --disable-dependency-tracking --disable-auth --disable-epoll --disable-ident-lookups --disable-icmp


compila


make all

instala

make install


Genera el certificado autofirmado

Código: Seleccionar todo

openssl req -new -newkey rsa:4096 -sha256 -days 3654 -nodes -x509 -keyout myCA.key  -out myCA.pem
openssl x509 -in myCA.pem -outform DER -out myCA.der


Configuracion del squid



Genera la carpeta de el intencambio de certificados
para que pueda intercambiar los certificados con los servidores seguros

Código: Seleccionar todo

/usr/local/squid/libexec/security_file_certgen -c -s /usr/local/squid/cert -M4MB

Configuracion del squid

Código: Seleccionar todo


acl localnet all

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 70          # gopher
acl Safe_ports port 210         # wais
acl Safe_ports port 1025-65535  # unregistered ports
acl Safe_ports port 280         # http-mgmt
acl Safe_ports port 488         # gss-http
acl Safe_ports port 591         # filemaker
acl Safe_ports port 777         # multiling http
acl CONNECT method CONNECT


never_direct allow all
always_direct allow all

# Only allow cachemgr access from localhost
http_access allow localhost manager
http_access deny manager



http_access allow localnet 
http_access allow localhost

debug_options ALL,2

visible_hostname proxy.three.metal.heart.darknet.b.mad

# for clients with a configured proxy. con tls un solo puerto para todo
http_port 3127 ssl-bump generate-host-certificates=on dynamic_cert_mem_cache_size=4MB cert=/etc/ssl/myCA.pem
# for clients who are sent here via iptables ... REDIRECT.
http_port 3128 intercept
# for https clients who are sent here via iptables ... REDIRECT
https_port 3129 intercept ssl-bump generate-host-certificates=on dynamic_cert_mem_cache_size=4MB cert=/etc/ssl/myCA.pem

sslcrtd_program /usr/local/squid/libexec/security_file_certgen -s /usr/local/squid/cert -M 4MB sslcrtd_children 8 startup=1 idle=1


ssl_bump server-first all
sslproxy_cert_error allow all
cache_dir ufs /var/spool/squid 200 16 256
coredump_dir /var/cache/squid

refresh_pattern ^ftp:           1440    20%     10080
refresh_pattern ^gopher:        1440    0%      1440
refresh_pattern -i (/cgi-bin/|\?) 0     0%      0
refresh_pattern .               0       20%     4320
genraramos la cache

/usr/local/squid/sbin/squid -z

y lanzamos el squid

/usr/local/squid/sbin/squid


redireccion con ip talbles

Código: Seleccionar todo

 iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 3128
iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-ports 3129


y ahora el tema de los instalar los certificado en los clientes

Instrucciones para certificado https
--------------------------------------------

Para visistar paginas con conexion segura, https, hay que instalar el el certificado
como autoridad certificadora, para ello ncesitas renombrar myCA.der a myCA.crt . y a my myCA.cer
para firefox y Android fucniona myCA.crt automaticoa y el myCA.cer afunciona en explorer y windows
instala el certificado .crt puedes hacerlo en descarga con lo que la instalacion es automatica, no olvidar
marcar la casilla de certificacion web. y en la semi apertura en el explorerer se carga en el almacen a de certificados

para Opera vale el myCA.der amano
en chrome tambien hay que pònerlo amano

Si no se instala hay que hacerlo a mano, descargar el certificado, irte a opciones
en el navegador y en privacidad y seguridad buscar certificados e importarlo desde tu disco
duro como autoridad certificadora. Asi es valido para todos los navegadores.



En Android para hacerlo manual caragalo desde download desde
configuracion -> seguridad -> cifardo y credenciales
y dale de nombre wifi, con esto podras funcionar para
para edge, chrome y firefox en tu tablet
o movil, google play no funciona, aptoide si, algunos sitios
sino funciona con firefox, usar chrome, tambien
puedes buscar en la web que es delo que va
hacer la busqueda directamente en el navegador en
http://google.com, pasar un poco de loa automatismos.



Puede dar problemas con los antivirus, para arreglarlo y no quedarte sin antivirus, instala
el certificado, quita el antivirus y vuelvelo a instalar, y reinicia o desabilitalo mientras
naveges. o busca uno que no te de problemas. Es lo que hay

Si te lias tendras que desinstalar los navegadores con los certificados y volverlos a instalar
yo ya no los toco mas mas, ya que antes eran pruebas, hazlo de una primera vez y si funciona no
toques mas. Tambien puedes utilizar los navegadores firefox que hay en la parte de abajo de la
web son firefox para android y windwos, por si los otros te dan problemas estos no fallan

para mac prueba instalar los mismos certificado

esta no es la unica manera de navegar por webs https, pero es la unica manera de navegar por webs seguras en mi red
de forma transaparente con squid. y diciendolo de otra manera falla un pokito sobre todo con gogle pero las cosas no solo tienen una opcion, yo lo uso parar todo y con certificado autofirmado

En Resumen, hablamos de que descargamos los cerificados de un server http


-hay variedad de certificados pero el mas seguro es el myCA.cer con eso funciona lo mismo
y todo y no se entrega la key y te guaradas el my CA.pem del squid


DOC: https://serverfault.com/questions/81874 ... -squid-3-5


Sysop
sysop
Site Admin
Mensajes: 24
Registrado: Jue Ago 01, 2019 4:24 pm

password en squid5 en el lado reverso

Mensaje por sysop »

Password de acceso en squid 5

Mensaje por sysop » Vie Ene 03, 2020 9:19 am
En squid 5 el acceso mediante password no esta reñido con el redireccionamineto siempre que no queramos usar el mismo puerto. En el ejemplo anterior el puerto 3127 lo teniamos que cubrir con el firewall para impedir su acceso, pos bien e este puerto podemos ponerle acceso mediante password
si bien este ejemplo muesta el acceso mediante pass plano ya que otros "crasheaban" el squid.

compilaremos asi

Código: Seleccionar todo

./configure --x-includes=/usr/include --x-libraries=/usr/lib --with-default-user=proxy --with-logdir=/var/log/squid --with-pidfile=/var/run/squid.pid --enable-storeio=ufs,aufs,diskd --enable-linux-netfilter --enable-removal-policies=lru,heap --enable-gnuregex --enable-follow-x-forwarded-for --enable-x-accelerator-vary --enable-zph-qos --enable-delay-pools --enable-snmp --enable-underscores --with-openssl --enable-ssl-crtd --enable-http-violations --enable-async-io=24 --enable-storeid-rewrite-helpers --with-large-files --with-libcap --with-netfilter-conntrack --with-included-ltdl --with-maxfd=65536 --with-filedescriptors=65536 --with-pthreads --without-gnutls --without-mit-krb5 --without-heimdal-krb5 --without-gnugss --disable-icap-client --disable-wccp --disable-wccpv2 --disable-dependency-tracking --enable-auth --disable-epoll --disable-ident-lookups --disable-icmp
daros cuenta que solo cambia el enble-auth

make all

make install

Código: Seleccionar todo

auth_param basic program /usr/local/squid/auth/jeck
auth_param basic children 5 startup=5 idle=1
auth_param basic realm Proxy Authentication Required
auth_param basic credentialsttl 2 hours
acl auth_users proxy_auth 
http_access allow auth_users
esto seria el comienzo del squid.conf con el invocamos el script de autorizacion basica jeck
el script lo empezo otro, pero lo he modificado poniendele logs de acceso



Código: Seleccionar todo

#!/bin/bash

RUTA=/usr/local/squid/auth/conectados.log

read U P


if [ ! -z $U  ]
then

echo -n "`date` $U " >> $RUTA  

egrep "$U#:#$P" /usr/local/squid/auth/sqpasswd >> /dev/null && echo OK || echo ERR 


SW=`grep -i -c -e"$U#:#$P" /usr/local/squid/auth/sqpasswd`

if [ $SW != "0" ]  
then

echo " Access $U OK" >> $RUTA 

else

echo " ACCESS ERROR $U" >> $RUTA 


fi
asi pues te queda crear el fichero de password y de conectados

file sqpasswd

Código: Seleccionar todo

user#:#password
user2#:#password

notese que la separciaon viene dada por "almoadila dos puntos almoadilla"

el fichero conectados.log hay que creralo
touch conectados.log

el tema de los permisos lo dejo de tu cuenta

este es el unico que no me "crashea"

necesitais los certificados en el navegador y demas programas ya que seria lo mismo redirigirlo que cojerlo


sysop
Responder