Foros del Web » Administración de Sistemas » Unix / Linux »

[SOLUCIONADO] Squid-ssl https transparente

Estas en el tema de Squid-ssl https transparente en el foro de Unix / Linux en Foros del Web. Hola a todos. Logre vincular HTTPS via SQUID3-SSL en modo transparente, pero tengo problemas con las paginas. Ejemplo: NAVEGADOR FIREFOX HTTPS facebook.com = Al momento ...
  #1 (permalink)  
Antiguo 08/04/2014, 13:11
Avatar de Melecio  
Fecha de Ingreso: julio-2011
Ubicación: Coahuila
Mensajes: 320
Antigüedad: 13 años, 4 meses
Puntos: 8
Squid-ssl https transparente

Hola a todos.

Logre vincular HTTPS via SQUID3-SSL en modo transparente, pero tengo problemas con las paginas.

Ejemplo:



NAVEGADOR FIREFOX HTTPS
facebook.com = Al momento de agregar el certificado me deja abrir la pagina inicial correctamente, pero al momento de logearme, la pagina no se muestra como se debe es como si sele quitaran todos los estilos css de html
google = en esta pagina me permite abrirlo y se ve correctamente, el problema es GMAIL "accounts.google.com" me dice que esta conexion no es confiable y no me permite agregar el certificado
twiter me dice lo mismo ESTA CONEXION NO ES CONFIABLE

NAVEGADOR IEXPLORER 8 HTTPS
Con este navegador todas las paginas me funcionan muy bien.

NAVEGADOR CHROME HTTPS
no me funciona ninguna pagina


Para poder utilizar este método se requiere instalar (apt-get install squid3-ssl) y las dependencias openssl

Generar el certificado

openssl genrsa -des3 -out intranet.key 1024
openssl req -new -key intranet.key -out intranet.csr
openssl rsa -in intranet.key -out intranet-proxy.key
openssl x509 -req -days 365 -in intranet.csr -signkey intranet-proxy.key -out intranet-proxy.crt
openssl x509 -in intranet-proxy.crt -noout -enddate

esta es mi configuración squid.conf

Código:
https_port 3129 transparent cert=/etc/squid/ssl/intranet-proxy.crt key=/etc/squid/ssl/intranet-proxy.key   
acl EEE-PC src 192.168.1.1   
acl SSL_ports port 443   
acl SSL_ports port 8081   
acl Safe_ports port 80          # http   
acl Safe_ports port 21          # ftp   
acl Safe_ports port 443         # httpss 
acl Safe_ports port 8081        # 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 Safe_ports port 995         # multiling http   
acl Safe_ports port 578         # multiling http  
acl Safe_ports port 53         # multiling http   
acl CONNECT method CONNECT   

acl noper url_regex "/etc/squid/sitios"
acl ip_list_access src "/etc/squid/ip_can_access"
http_access deny noper !ip_list_access
  
http_access allow manager   
http_access allow !Safe_ports   
http_access allow CONNECT !SSL_ports   
http_access allow EEE-PC    
http_access allow all   
http_port 3128 transparent   
hierarchy_stoplist cgi-bin ?   
coredump_dir /var/spool/squid3   
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



IPTABLES

iptables -t nat -A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.1.1:3128
iptables -t nat -A PREROUTING -i eth1 -p tcp -m tcp --dport 443 -j DNAT --to-destination 192.168.1.1:3129
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE



El único problema es el certificado si lograramos arreglarlo ya quedaría listo e monitoreo HTTPS y denegación de paginas del mismo protocolo.

Gracias.
  #2 (permalink)  
Antiguo 02/09/2015, 09:01
Avatar de Melecio  
Fecha de Ingreso: julio-2011
Ubicación: Coahuila
Mensajes: 320
Antigüedad: 13 años, 4 meses
Puntos: 8
Respuesta: Squid-ssl https transparente

Hola a todos logre hacer funcionar el squid via HTTPS ya puedo abrir bien las paginas

el detalle es que hice un ejemplo con https://google.com.mx y funciono, no me dice que el certificado no es valido pero cuando intento entrar a https://facebook.com me die que el certificado no funciona, lo que hice fue generar un certificado para facebook.com y me funciono correctamente en https lo malo es que tendria que generar 1 sertificado para cada dominio y eso no me gustaria.


aca les dejo el ejemplo para generar el certificado de google.com.mx

openssl genrsa -des3 -out server.key 1024
openssl req -new -key server.key -out server.csr
en esta opcion cuando les salga "Common Name (eg, your name or your server's hostname) [] :" coloquen www.google.com.mx
todos los demas datos no son necesario de llenar pueden oprimir solamente enter el que si importa es Common Name que es el certificado al dominio que estamos generando ejemplo www.google.com.mx o www.facebook.com pero solamente uno

cp server.key server.key.org
openssl rsa -in server.key.org -out server.key
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

se tienen que generar 4 archivos que son "server.crt server.csr server.key server.key.org"
y solamente usaremos server.crt y server.key para el squid

squid.conf
https_port 3129 transparent key=/etc/squid/ssl/server.key cert=/etc/squid/ssl/server.crt

acl EEE-PC src 192.168.1.1
acl SSL_ports port 443
acl SSL_ports port 8081
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # httpss
acl Safe_ports port 8081 # 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 Safe_ports port 995 # multiling http
acl Safe_ports port 578 # multiling http
acl Safe_ports port 53 # multiling http
acl CONNECT method CONNECT


sslproxy_flags DONT_VERIFY_PEER
sslcrtd_program /usr/lib64/squid/ssl_crtd -s /var/lib/ssl_db -M 4MB sslcrtd_children 8 startup=1 idle=1


http_access allow manager
http_access allow !Safe_ports
http_access allow CONNECT !SSL_ports
http_access allow EEE-PC
http_access allow all
http_port 3128 transparent
hierarchy_stoplist cgi-bin ?
coredump_dir /var/spool/squid3
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




copiaremos el archivo server.crt a nuestra maquina remota e instalamos el cetificado en "ENTIDADES DE CERTIFICACION RAIZ DE CONFIANZA" y le dan aceptar y listo solamente dominio https funcionara sin errores esto funciona para ie y firefox en chrome aun no se donde se instalan los certificados


si alguin sabe como generar multiples dominios con openssl o agregarle algun codigo para que funcione con cualquier dominio se los agradeceria, ya intente ponerle * y *.com y no me funcina solamente poniendo el dominio completo funciona correctamente.


Gracias.
  #3 (permalink)  
Antiguo 22/09/2015, 10:46
Avatar de Melecio  
Fecha de Ingreso: julio-2011
Ubicación: Coahuila
Mensajes: 320
Antigüedad: 13 años, 4 meses
Puntos: 8
Respuesta: Squid-ssl https transparente

Hola a todos pues despues de tiempo porfin logre usar https con certificados ssl ya puedo navegar a cualquier pagina https y mi access.log puede ver toda las conexiones http y https este es la configuracion final

instalar desde el princio intenta hacerlo en una pc recien fotmateada para que no te cause problemas con las configuraciones que tienen

iniciamos paso a paso

nano /etc/apt/sources.list
//AGREGAR ESTA LIENA PARA PODER DESCARGAR SQUID3-SSL
deb ftp://ftp.linux.org.tr/mydlp/ubuntu precise main

guardamos y ejecutamos los comandos

1.- apt-get update
2.- apt-get install squid3-ssl
3.- crear este dorectorio /etc/mydlp/ssl/home
copiar y pegar en la terminal

(echo -e "TR\nAnkara\nTechnopolis\nMyDLP\nMyDLP\n*\nsupport @mydlp.com\n"| openssl req -x509 -nodes -sha256 -days 365 -newkey rsa:2048 -keyout techglimpse.com.key -out techglimpse.com.crt)

openssl x509 -noout -text -in techglimpse.com.crt

4.- nano /etc/squid3/squid.conf
vaciar el squid.conf y agrgarle esto

acl REGEL src 192.168.1.0/24
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

acl ip_list_access src "/etc/squid/ip_can_access"
acl noper url_regex "/etc/squid/sitios"
http_access deny noper !ip_list_access

http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost manager
http_access deny manager
http_access allow localhost
http_access allow REGEL
http_access allow all

http_port 3127 ssl-bump generate-host-certificates=on dynamic_cert_mem_cache_size=4MB key=/etc/mydlp/ssl/home/techglimpse.com.key cert=/etc/mydlp/ssl/home/techglimpse.com.crt
http_port 3128 transparent

ssl_bump allow all
sslproxy_flags DONT_VERIFY_PEER
sslproxy_cert_error allow all
sslcrtd_program /usr/lib/squid3/ssl_crtd -s /var/lib/ssl_db -M 4MB
sslcrtd_children 5

#ssl_bump ssl-server-first all


coredump_dir /var/spool/squid3
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
always_direct allow all

despues creamos otro directorio
mkdir /etc/squid/
y agregamos estos archivos
ip_can_access agreguen el contenido de alguna ip
sitios agregar akgun sitio que quieran bloquear
deben de tener algo o sino les dara error

ejecutamos en la terminal
squid3 -k reconfigure
si les dan algun error verifiquen bien el squid.conf
al ejecutar ese compando no les debe aparecer ningun mensaje eso significa que funciona

configuraremos nuestras interfaces
cambien las direcciones por las suyas
nano /etc/network/interfaces
auto eth0
iface eth0 inet static
address 192.168.4.243
netmask 255.255.255.0
gateway 192.168.4.254
network 192.168.4.0
broadcast 192.168.4.255
dns-nameservers 8.8.8.8 8.8.4.4

auto eth1
iface eth1 inet static
address 192.168.1.1
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255

instalaremos el dhcp
sudo apt-get -y install dhcp3-server

despues agregamos nuestra configuracion
nano /etc/dhcp/dhcpd.conf
ddns-update-style none;
option domain-name "SEVER";
option domain-name-servers 8.8.8.8, 8.8.4.4;
default-lease-time 3600;
max-lease-time 7200;
authoritative;
log-facility local7;
subnet 192.168.1.0 netmask 255.255.255.0{
range 192.168.1.2 192.168.1.19;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
option routers 192.168.1.1;
}

editamos el archivo
nano /etc/sysctl.conf
y descomentaremos esta liena
#net.ipv4.ip_forward=1
debe de quedar asi
net.ipv4.ip_forward=1

despues configuramos nuestra interface dhcp
nano /etc/default/isc-dhcp-server
en mi caso es la eth1 ustedes cambienla por la suya
INTERFACES="eth1"

ejecutamos en la terminal
echo 1 > /proc/sys/net/ipv4/ip_forward
reiniciamos el servidor
despues copiaremos el archivo
techglimpse.com.crt
y lo instalaremos en la pc remota para que empieze a navegar
configurar el proxy en la pc en mi caso es la 192.168.1.1 puerto 3128
y eso seria todo les debera funcionar su servidor en https
solo lo puede hacer asi en transparente aun no lo he podido configurar

Gracias.

Etiquetas: https, ip, squid
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:27.