El SysAdmin del 3er Mundo

todo lo que expliqué mientras nadie prestaba atención

squid y navegar a .cu

| Comments

Aveces las necesidades de nuestros clientes, son tan raras que nos dejan anonadados. Pero ante necesidades extravagantes; soluciones extravagantes. Este post me lo dejo a modo de reflexión, para recordar; que muchas veces, el ingenio combinado con la simpleza, puede desembocar en soluciones tan hermosas como raras.

Es común, que en algunos lugares, la navegación a sitios “.cu” no requiera autenticación. Aveces poner una ACL como esta

“squid.conf”
1
2
 acl cuba url_regex \.cu
 http_access allow cuba

Aparentemente matamos la jugada, pero luego, metemos una ACL relacionada con usuarios autenticados y se jodió bicicleta.

El cartel de “por favor autentique” cae a cuanto “.cu” se navegue.

Pero tocando el squid.conf, vi esta cosa hermosa

“squid.conf”
1
 #   acl aclname localport 3128  # TCP port the client connected to [fast]

Decidí que los que vallan a navegar con autenticación, usarán el puerto 8080 y los vuelos nacionales saldrán por el 3128.

De esta manera, se hace una ACL que niegue las peticiones NO cubanas sin mostrar el puto login.

“squid.conf”
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 # aquellos que se conectan por el puerto 3128
 acl mortales localport 3128

 # aquellos que se conectan por el 8080
 acl olimpo localport 8080

 # los sitios a los que se entran sin contraseña
 acl cuba url_regex -i "/etc/squid3/cuba.lst"

 # CUBANOS
 # lo que valla a cuba,
 # sale sin autenticación
 http_access allow mortales cuba
 http_access allow CONNECT mortales cuba

 # deniega a los mortales, lo que no sea cuba
 http_access deny mortales !cuba
 http_access deny CONNECT mortales !cuba


 # PRIVILEGIADOS
 # lo que NO valla para cuba debe autenticarse
 http_access allow CONNECT olimpo autenticados
 http_access allow olimpo autenticados

 # y más nada pasa
 http_access deny CONNECT all
 http_access deny all
 icp_access deny all

¿Se entendió? Pasa que squid, al hacerle cualquier petición, que involucre internet, le mostrará al pobre puntoseunauta el cuadro de diálogo, ya que para acceder a internet real requiere autenticación; y squid te da la posibilidad probar que eres usuario de internet. Para evitar esta conducta, ponemos una cláusula permitiendo que los “.cu” usando el 3128, pasan. Luego ponemos otra ACL negando el acceso a lo que NO sea .cu por el mismo puerto. De esta manera, los que tengan solo acceso “.cu”, usarán el 3128 y la ACL que involucra autenticación nunca es probada.

Para los autenticados, pusimos una ACL que machea el puerto 8080. O sea, los usuarios de internet, al hacer su peticiones por el puerto 8080, enseguida las pedirá autenticación.

Si este artículo te resultó interesante, considere donar 0.003 BTC: 1LgL9cfT2StNk9gdedMJZseMnKJCEgQJdQ

Comments