Thursday, May 6, 2021

Ansible

 Estoy realizando un proyecto en Ansible y cuando estas realizando ciertas tareas sencillas como instalar o  copiar datos a los nodos donde estas configurado en el inventory es mas o menos sencillo. Pero cuando quieres ejecutar tareas específicar en un nodo y no en el resto etc. las tareas se complican. 

una tarea sencilla seria que fallara en las máquinas donde tienes cierta version de S.O. por ejemplo para controlar la distribución se haria de la siguiente manera. 

  - namecheck Distribution 
    ansible.builtin.fail
      msgThe system opetative must be Ubuntu and version 20 or getter 
    whenansible_distribution | lower != "ubuntu" or ansible_distribution_major_version| int  < 20

Otra de las tareas que me llevó tiempo es como te puedes impersonar en otro usuario para eso tienes que instalar  un paquete 

  - nameinstall setfacl support copy temp files with other users.
    ansible.builtin.aptpkg=acl
    becometrue







Thursday, January 28, 2021

Limitar el acceso por SSH de un usuario por Región o ciudad a través de su IP

¿Cómo detectar un inturso en tu equipo?  existen diversas manera pero siempre he querido explorar la de localidad del usuario.

Muchas veces me he preguntado como puedo limitar a las personas que entrar en un equipo Unix por Zona geográfica.   

Una solución pasa por un servicio externo que te diga de que region es la ip que se conecta el usuario. 

Por supuesto si entra a través de una VPN de la region permitida el usuario podría entrar.

Con la api de  https://ipwhois.io/documentation  puedes resolver la localizacion de la ip

 Con el comando

 who --ips |  awk '{ print $5 }'| xargs -t  -I ARG   curl -s  http://ipwhois.app/json/ARG | jq .city

 

puedes ver desde que ciudad se está conectando los usuarios. Este comando lo podrías usar para enviar un correo o para limitar por ssh quien se puede conectar.