Bloqueando Facebook con PFSense

Ahora que en la empresa estamos usando telefonía IP, me preocupa mucho más como se está usando el ancho de banda. Dentro de las cosas que estoy bloqueando para uso no autorizado es facebook, después de todo acá se viene a trabajar.

Para los que no saben, PFSense es un sistema de firewall que puedes instalar en un computador, reduciendo los costos de comprar equipos que tienen este propósito.

En este artículo iremos paso a paso como bloquear las redes de facebook usando pfsense.

Antes de continuar necesitamos saber la lista de IPs actualizada que usa facebook, en linux podemos usar el comando whois para obtener la lista.

whois -h whois.radb.net '!gAS32934'

El resultado tiene que ser como el siguiente :

A1157
204.15.20.0/22 69.63.176.0/20 66.220.144.0/20 66.220.144.0/21 69.63.184.0/21 69.63.176.0/21 74.119.76.0/22 69.171.255.0/24 173.252.64.0/18 69.171.224.0/19 69.171.224.0/20 103.4.96.0/22 69.63.176.0/24 173.252.64.0/19 173.252.70.0/24 31.13.64.0/18 31.13.24.0/21 66.220.152.0/21 66.220.159.0/24 69.171.239.0/24 69.171.240.0/20 31.13.64.0/19 31.13.64.0/24 31.13.65.0/24 31.13.67.0/24 31.13.68.0/24 31.13.69.0/24 31.13.70.0/24 31.13.71.0/24 31.13.72.0/24 31.13.73.0/24 31.13.74.0/24 31.13.75.0/24 31.13.76.0/24 31.13.77.0/24 31.13.96.0/19 31.13.66.0/24 173.252.96.0/19 69.63.178.0/24 31.13.78.0/24 31.13.79.0/24 31.13.80.0/24 31.13.82.0/24 31.13.83.0/24 31.13.84.0/24 31.13.85.0/24 31.13.86.0/24 31.13.87.0/24 31.13.88.0/24 31.13.89.0/24 31.13.90.0/24 31.13.91.0/24 31.13.92.0/24 31.13.93.0/24 31.13.94.0/24 31.13.95.0/24 69.171.253.0/24 69.63.186.0/24 31.13.81.0/24 179.60.192.0/22 179.60.192.0/24 179.60.193.0/24 179.60.194.0/24 179.60.195.0/24 185.60.216.0/22 45.64.40.0/22 185.60.216.0/24 185.60.217.0/24 185.60.218.0/24 185.60.219.0/24 129.134.0.0/16 157.240.0.0/16 204.15.20.0/22 69.63.176.0/20 69.63.176.0/21 69.63.184.0/21 66.220.144.0/20 69.63.176.0/20

Esta lista corresponde a los segmentos de red usados por Facebook. Ojo, segmento de red no es lo mismo que una dirección IP, un segmento posee más de una  direcciones IP.

Ok, lo primero que haremos es crear un Alias con todos los segmentos de red de facebook.

Menu de Alias en PFSense
Menu de Alias en PFSense

Ahora creamos un nuevo alias con las direcciones de facebook. Es importante no olvidar seleccionar la opción de networks en vez de hosts, ya que lo que obtuvimos al comienzo son redes y no direcciones IPs.

Facebook IPs PFSense
Facebook IPs PFSense

Teniendo el alias listo con todas las redes, simplemente procedemos a bloquear el tráfico hacia estos IPs.

Vamos a la pestaña Firewall -> Rules , y luego seleccionamos la pestaña LAN. Ahí crearemos una nueva regla en donde la acción es bloquear, el source serán todos los IPs ( En mi caso los que no estén en el alias whitelist, de querer que fueran todas simplemente seleccionamos any ) y en la dirección de destino simplemente seleccionamos como alias el nombre que le hayamos puesto a las direcciones de facebook, en mi caso facebookIps .

La regla debería quedar de la siguiente manera.

Reglas Firewall PFSense Facebook
Reglas Firewall PFSense Facebook

Cabe destacar que para que la regla funcione, debe de estar en el inicio de las reglas del firewall, si no el firewall nunca llegará a esta regla.

Esto es todo, ojala a alguien le sirva.

Saludos!

 

👉 ¿Te gustó este contenido? Hay más esperando por ti.

Cada semana, comparto aprendizajes y reflexiones que no encontrarás en ningún otro lugar. ¡Únete a la comunidad de más de 9,000 emprendedores que ya están avanzando!

Direcciones IP de Google APPs

En más de una ocasión es posible que queramos aceptar el tráfico que viene de google, ya sea por los correos que envía como por sus aplicaciones. En mi caso para ciertos usuarios de la red estoy bloqueando todo el tráfico excepto a unas aplicaciones web y las aplicaciones de Google.

La lista de direcciones IP actualizadas de Google a Noviembre de 2015 son las siguientes :

  • ip4:64.18.0.0/20
  • ip4:64.233.160.0/19
  • ip4:66.102.0.0/20
  • ip4:66.249.80.0/20
  • ip4:72.14.192.0/18
  • ip4:74.125.0.0/16
  • ip4:108.177.8.0/21
  • ip4:173.194.0.0/16
  • ip4:207.126.144.0/20
  • ip4:209.85.128.0/17
  • ip4:216.58.192.0/19
  • ip4:216.239.32.0/19
  • ip6:2001:4860:4000::/36
  • ip6:2404:6800:4000::/36
  • ip6:2607:f8b0:4000::/36
  • ip6:2800:3f0:4000::/36
  • ip6:2a00:1450:4000::/36
  • ip6:2c0f:fb50:4000::/36

Con esta información es mucho más sencillo poder manejar el tráfico hacia las aplicaciones.

Si quisieramos filtrar solo algunas de las aplicaciones, nos podemos ayudar del comando dig de linux.

ctala@CTMGroupSpA:~$ dig gmail.com

; <<>> DiG 9.9.5-3ubuntu0.5-Ubuntu <<>> gmail.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 11676
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;gmail.com.            IN    A

;; ANSWER SECTION:
gmail.com.        73    IN    A    64.233.190.17
gmail.com.        73    IN    A    64.233.190.18
gmail.com.        73    IN    A    64.233.190.83
gmail.com.        73    IN    A    64.233.190.19

;; Query time: 4 msec
;; SERVER: 127.0.1.1#53(127.0.1.1)
;; WHEN: Sat Nov 07 11:00:02 CLT 2015
;; MSG SIZE  rcvd: 102

Y podemos ver en el «Answer Section» Las direcciones Ips que tiene en este caso de ejemplo el servidor de GMail.

👉 ¿Te gustó este contenido? Hay más esperando por ti.

Cada semana, comparto aprendizajes y reflexiones que no encontrarás en ningún otro lugar. ¡Únete a la comunidad de más de 9,000 emprendedores que ya están avanzando!

Encontrar filas repetidas en Mysql

Mysql es una base de datos relacional, por lo que en general usamos relaciones (Dah !) que tienen que ser únicas a través de llaves primarias y foráneas. A veces nos pasan información que incluir en una tabla de manera directa que no necesariamente viene bien filtrada.

Cómo uno de nuestros fuertes en la empresa son los regalos corporativos, y dentro de ellos están los regalos de fin de año, muchas veces dependemos que las empresas con las cuales trabajamos nos manden la lista de empleados. En general esta información es entregada en un Excel o un CSV que puede tener datos repetidos que debemos filtrar.

Antiguamente para este objeto de encontrar filas repetidas realizaba un join de la tabla consigo misma, pero descubrí un método mucho más sencillo y menos tedioso.

SELECT * FROM `Empleados` group by `RUT` having count(*) >= 2 

De esta manera también podemos eliminar de la lista automáticamente los que estén repetidos.

Como no podemos actualizar una tabla en base a la misma, creamos una tabla temporal con estos datos.

CREATE TABLE temporal AS
SELECT `RUT` FROM `Empleados` group by `RUT` having count(*) >= 2

Ahora simplemente eliminamos los datos repetidos que aparecen en nuestra nueva tabla.

DELETE FROM `Empleados` 
WHERE `RUT` in (
    SELECT `RUT` from temporal
)
limit 1

Si bien el código anterior simplemente borra un solo registro, se entiende la idea. Ojo, si ejecutas nuevamente la sentencia existe la posibilidad que borres nuevamente el mismo registro que ya no estará repetido.

👉 ¿Te gustó este contenido? Hay más esperando por ti.

Cada semana, comparto aprendizajes y reflexiones que no encontrarás en ningún otro lugar. ¡Únete a la comunidad de más de 9,000 emprendedores que ya están avanzando!

¡ Twilio Al Rescate ! Solucionando problemas de comunicación

Este post es sobre como solucionamos la perdida de telefonía análoga para poder trabajar de manera normal en la empresa.

Me había rehusado a el cambio a la telefonía IP debido a que pensaba que la análoga era más estable. El resultado de este terrible error es que he tenido intermitencias del servicio telefónico pero no de internet en el último año.

La semana pasada nuestro proveedor de servicios telefónicos para la empresa, del cual no diré el nombre pero empieza con movi y termina star en Chile, tuvo un problema con una de sus centrales en nuestra zona  debido a problemas eléctricos que fueron ocasionados por el temporal. El resultado es que no se pueden recibir ni hacer llamados telefónicos hace una semana ( ¡ Gracias empresa que no puedo mencionar !, me haces la vida mucho más entretenida ).

Creo que está de más decir que para una empresa cuyo foco es darle servicios a otras empresas, en donde el trato es uno a uno y todos los negocios se cierran vía telefónica o en persona NO puede tener problemas telefónicos. Para aprovechar de pasar el dato nuestra empresa es de branding corporativo, regalos corporativos y merchandising, pueden encontrarla en el siguiente link : EmpresasCTM .

Leer más

¿ Desarrollar o no Desarrollar? He ahí el dilema

En que momento debemos desarrollar un software o simplemente usar una solución ya hecha anteriormente por la comunidad.

Recuerdo ya que hace muchos años mi primer blog fue programado 100% por mi, lo desarrollé en php siguiendo un tutorial que había en un libro que compré. Cuanto me arrepentí de haberlo hecho. Un par de años después de tenerlo funcionando un robot lo llenó de comentarios y la BdD colapsó, ni si quiera me di la oportunidad de recuperar el contenido que tenía en él. Estaba demasiado molesto…

Creo que poco antes de desarrollar este CMS ( la verdad ni si quiera se puede llamar así ) pensé en usar un sistema que ya existiera, pero en ese momento ganó el sentimiento de pertenencia y no la lógica por lo que terminé desarrollándolo. Si tuviera que elegir HOY si desarrollar un CMS para blogging personal ni si quiera pensaría en algo distinto a wordpress.

¿ Entonces cuando es necesario o no desarrollar un software ?

Leer más