Mostrando entradas con la etiqueta Redes. Mostrar todas las entradas
Mostrando entradas con la etiqueta Redes. Mostrar todas las entradas

miércoles, 1 de julio de 2020

Crear Azure Bastion

¿Que es Azure Bastion?

Azure Bastion es un servicio (PaaS) que proporciona conectividad RDP y SSH de manera segura y sin problemas a las máquinas virtuales a través del protocolo TLS.
Gracias a este servicio las máquinas virtuales no necesitan una dirección IP pública, ya que las conexiones se realizan hacia Azure Bastion, agregando de esta forma una capa de seguridad a las virtuales.
Con Azure Bastion, la conexión a la máquina virtual se realiza directamente desde el portal de Azure. No se necesita un cliente, agente o software adicional.
La implementación de Azure Bastion es por red virtual, con lo cual estará disponible para todas las máquinas virtuales que se encuentren en esa red.
Con Azure Bastion las maquinas virtuales no solo no necesitan una IP publica sino que tampoco necesitan exponer los puertos RDP ni SSH, debido a esto, están protegidas contra el escaneo de puertos por parte de usuarios maliciosos y malintencionados ubicados fuera de la red.
Con algunas variaciones de acuerdo a la cantidad de conexiones y sesiones en uso, Azure Bastion soporta, en principio, 25 conexiones RDP concurrentes y 50 de SSH.

En cuanto a los precios se pueden verificar aqui.

Pasamos a lo importante.

Crear host de Azure Bastion:

Ingresamos al portal de Azure y elegimos crear un recurso:


Buscamos Bastion, nos aseguramos que sea el de Microsoft:


Y elegimos crear:


Completamos los datos que nos pide como nuestra suscripción, el grupo de recursos (en mi caso use uno que ya tenia), el nombre de la instancia, la región en donde lo vamos a crear, luego la red virtual  y por ultimo el nombre de la ip publica:


En cuanto al grupo de recursos de Azure en el que se creará el Bastion, si no tienen uno, deben crear uno nuevo.

Con respecto a la red virtual pueden crear una nueva o utilizar una red virtual existente. Si van a utilizar una red virtual existente, tienen que asegurarse de que tenga suficiente espacio libre de direcciones para los  requisitos de subred de Bastion.
La subred estará dedicada al host de Bastion y debe nombrarse como AzureBastionSubnet. Esta subred debe ser al menos /27 o mayor.

AzureBastionSubnet no admite rutas definidas por el usuario, pero sí admite grupos de seguridad de red.

La dirección IP pública de Bastion es a la que se accederá a través de RDP o SSH (a través del puerto 443). La IP pública debe estar en la misma región que el recurso Bastion que están creando.

Cuando terminamos la configuración, hacemos click en Revisar + Crear y luego en Crear. Esto valida los valores. Una vez que pasa la validación, comienza la implementacion:



domingo, 14 de junio de 2020

Compartir carpeta con MX Linux

La otra vez mostraba en este post como conectarnos por RDP a Ubuntu y como compartir una carpeta con Samba, esta ultima parte por linea de comandos.
Luego, en este post, hable de MX Linux y como lo ponía fácil de cara al usuario.
Bueno, una de las cosas en las que lo pone fácil es en la de compartir carpetas, podes no saber absolutamente nada, y con solo 2 clicks vas a poder compartir una carpeta. En realidad son muchos mas clicks pero hay que vender ¬¬
Arranquemos.

Para compartir una carpeta con MX Linux, vamos a "Inicio", escribimos Samba y luego le hacemos click:


Nos va a pedir la contraseña de root, la ingresamos y nos va a aparecer la siguiente pantalla:


Vamos a crear el usuario de Samba con el cual vamos a acceder al recurso compartido.
Para ello vamos a Preferencias -> Usuarios Samba -> Añadir usuario.


En Nombre de usuario Unix desplegamos el menú y elegimos nuestro usuario de inicio de sesión, en mi caso ardillasenlared.
En Nombre de usuario Windows podemos poner cualquiera, si son de olvidarse pueden usar las mismas credenciales que usan para loguearse en la compu.
Aceptamos las 2 ventanas y luego procedemos a compartir la carpeta.

Para ello hacemos click en el boton "+" de la izquierda y luego en Examinar:


Ahí elegimos la carpeta que queremos compartir, en mi caso Música:


La seleccionamos y ponemos Aceptar.
Tildamos Visible y Permiso de Escritura, ambas son optativas obviamente, pero en mi caso quiero que la carpeta se encuentre visible en el recurso compartido y que me permita copiar archivos desde Windows:


Ahora vamos a la parte de permisos en la pestaña que dice Acceso:


Ahí podemos elegir que este accesible para todos (no recomendado) o solo para nuestro usuario. Tildamos nuestro usuario y aceptamos.

Ahora en nuestra maquina con Windows presionamos al mismo tiempo la tecla con el logo de Windows y la letra R y escribimos: \\ipdenuestraPCconMXLinux. En mi caso 192.168.2.119:


¿Como sabemos la IP de nuestra maquina con MX Linux?

Vamos a "Inicio", escribimos "Terminal", hacemos click en "Terminal de Xfce" y ejecutamos el comando:

ip addr


Ahí nos va a aparecer la IP, y esa es la que tenemos que ingresar para acceder al recurso compartido.
Bueno, aceptamos y nos van a aparecer todas las carpetas compartidas del servidor. Le hacemos doble click a la que queremos abrir, en mi caso Música, y nos va a pedir las credenciales de Samba, las ingresamos:

Y listo:


Si quisiéramos acceder a esa carpeta compartida desde otro Linux, por ejemplo Manjaro, y de manera simple, abrimos cualquier gestor de archivos y escribimos en la barra de direcciones:

smb://ardillaswindows@192.168.2.119/

Reemplazando ardillaswindows por el nombre de usuario que usamos en nuestro Samba, y la dirección IP por la de nuestro servidor:


Ingresamos la contraseña del usuario de Samba, hacemos doble click en Música y listo:


Ya podemos acceder desde Manjaro también.

Fácil, ¿no?

¿Y que esperas para compartir?

Saludos!

lunes, 8 de junio de 2020

Conectarse por RDP a Ubuntu desde Windows y crear carpeta compartida

Bueno, en mi caso Kubuntu, pero es lo mismo.
Para conectarnos por RDP a Ubuntu desde Windows, instalamos en Ubuntu un software llamado xrdp.

Instalar y habilitar xrdp:

sudo apt install xrdp
sudo systemctl enable xrdp



Desde la otra maquina, con Windows, probamos un telnet al puerto RDP (por defecto, 3389) a ver si responde:

telnet 192.168.2.106 3389

Si responde ya nos podemos conectar, y sino hay que habilitar el puerto en el Firewall así:

sudo ufw allow 3389/tcp

En mi caso por defecto estaba habilitado.
Ahora en Windows vamos a Inicio, Ejecutar y escribimos mstsc:


Luego ingresamos la IP de nuestro Ubuntu:


Nos va a aparecer una advertencia, ponemos que si:


Y finalmente nos aparece la pantalla para ingresar nuestras credenciales:


Asegúrense de no haber iniciado sesión antes (o si lo hicieron cierrenla), sino queda la pantalla negra y nunca abre el RDP. Parecería ser un bug, pero la verdad es que no tuve mucho tiempo de investigar el error (y lo que encontré no me funcionó), con lo cual si alguno sabe por favor comente y lo agrego a la entrada.
Pero bueno, con la sesión cerrada podemos ingresar correctamente:


Ahora vamos a compartir una carpeta de Linux hacia Windows

domingo, 7 de junio de 2020

Protege tu Servidor con Fail2ban

¿Que es Fail2ban?

Es una herramienta escrita en Python que sirve para securizar un servidor monitoreando logs y bloqueando conexiones de intrusos en base a ciertos patrones predefinidos. Es decir, cuando por ejemplo detecta que en un log hay cierta cantidad de intentos fallidos de conexión, en base a la configuración que hayamos definido bloquea la IP del intruso a través de iptables para impedir que el mismo siga intentando conectarse. Este bloqueo/baneo de la IP puede ser permanente o temporal, dependiendo de como lo hayamos definido nosotros.

La ubicación que contiene la totalidad de filtros de fail2ban es /etc/fail2ban/filter.d:

Entre sus filtros mas destacables se encuentran:

sshd.conf: Para los intentos fallidos a SSH.
proftp.conf: Para los intentos fallidos hacia el FTP ProFTP del cual hice un post de instalación y configuración.
exim.conf: Para detectar autenticaciones al servidor de correo Exim.
squid.conf: Para los intentos de omitir este famoso proxy del cual tambien hice un post aca y aca.


Los filtros contienen principalmente expresiones regulares que se utilizan para detectar intentos de intrusión, fallas de contraseña, etc.
Una vez definida una expresión regular se irá comprobando que la misma no aparezca en ninguno de los logs que Fail2ban esta monitoreando. En el caso que la expresión regular aparezca en los logs se contabilizará un intento fallido de autenticación, el mismo se ira incrementando hasta llegar al numero que configuramos, una vez que llegue tomará una acción, que generalmente sera bloquear la IP.
Si vamos a usar los servicios estándares predeterminados (que son los que vemos mas arriba) no será necesario modificar ni crear ningún filtro, podemos utilizar los que vienen por defecto.

En cuanto a las acciones, las mismas se encuentran en la ruta /etc/fail2ban/action.d. Allí una serie de scripts definen las acciones a realizar al detectar los ataques definidos en las expresiones regulares de los filtros.
Como con los filtros, estas acciones que ya nos trae por defecto deberían ser suficientes, pero esta la posibilidad de crear acciones nuevas.

Archivo jail.conf:

jail.conf es el archivo de configuración más importante. En este archivo es donde indicamos que servicios debe proteger Fail2ban (por defecto vienen todos, o casi, activados), entre otras cosas podemos:

- Definir que servicios queremos que monitoree Fail2ban.
- Que filtro y acción aplicar.
- Definir el puerto del servicio, para casos como por ejemplo ssh donde se suele cambiar el puerto 22 que viene por defecto.
- Elegir que log del servicio vamos a monitorear.
- Definir la cantidad de intentos fallidos y el tiempo de bloqueo.

Algunos parámetros:

Sección [DEFAULT]
ignoreip: Acá van las IPs que no queres que se bloqueen, generalmente va la red o subredes internas.
maxretry: Número de intentos antes de banear la IP.
findtime: Definimos en cuanto tiempo el contador de intentos fallidos se va a resetear.
bantime: Duración (en segundos) para la prohibición de la IP. Usar número negativo para la prohibición "permanente".
ignorecommand: Acá podemos definir un comando que sera exceptuado cuando una determinada IP intente conectarse a nuestro servidor.
logtarget: Es para indicar en que ubicación se van a almacenar los logs de Fail2ban, por defecto  /var/log/fail2ban.log

En [ACTION]:
Podemos definir la dirección del mail a la que queremos que lleguen los avisos de bloqueo:
destemail = root@localhost

En [JAILS]:

enable: Activamos o desactivamos el monitoreo del servicio con true o false.
port: Definimos el puerto del servicio.
filter: Nombre del filtro que utilizará la "cárcel" para detectar coincidencias.
logpath: Definimos que log tiene que monitorear.

A modo de ejemplo:

[DEFAULT]
ignoreip = 127.0.0.1 (Ignora la propia ip)
bantime = 600 
findtime = 600
maxretry = 3
backend = auto

[sshd]
enabled = true
port = ssh
filter = sshd
logpath = %(sshd_log)s
#logpath = /var/log/secure
#logpath = /var/log/auth.log
maxretry = 3

Si modificamos parámetros para que los mismos se hagan efectivos tenemos que reiniciar el servicio de Fail2ban:

sudo service fail2ban restart

Ahora vamos a lo importante:

Instalar Fail2ban:

sudo apt-get install fail2ban


Hacer backup del archivo de configuración:

sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.orig


Ver reglas de iptables cargadas:

sudo iptables -L -n

Como mencionamos mas arriba, Fail2ban no se limita a SSH. Contiene filtros acciones predeterminados para muchos demonios servicios. Se pueden modificar o crear otros nuevos. En este caso como la idea es mostrar el de SSH vamos a probar loguearnos fallidamente a la IP de nuestro servidor con Fail2ban para ver si nos banea:

Intentos fallidos hasta el bloqueo
Vemos que ya no nos deja seguir intentando, se queda ahí. Esto es porque tengo configurado 5 intentos fallidos. Si reviso el log de Fail2ban se ve con mas claridad:

sudo cat /var/log/fail2ban.log | more

martes, 2 de junio de 2020

Desconectar Usuario Remoto Linux

Estamos sentados frente a nuestro Kubuntu 20.04, muy lindo por cierto, tranquilos, relajados, seguros de que nadie nos está espiando... Hasta que una voz nos dice al oído, susurrando, "hay usuarios conectados a tu computadora". "¿Que?", pensas. "¿Y como puedo saber si hay alguien conectado a mi computadora?"

Tranquilo.

Ardillas en la red te da la respuesta. Y no solo eso, sino que ademas te dirá como desconectarlo.

Para ver quien esta conectado a mi computadora ejecuto el siguiente comando:

who

Lo que mostrará algo como:


Acá vemos 3 personas conectadas, son sus respectivas IPs y sus respectivas consolas:

ardillasenlared tty1         2020-05-25 05:46 (:0) <- Este soy yo
ardillasenlared pts/2        2020-05-28 12:43 (192.168.2.107)
ardillasenlared pts/4        2020-05-29 10:17 (192.168.2.112)
ardillasenlared pts/5        2020-05-29 10:17 (192.168.2.111)

También vemos el día y la hora de conexión y que en todos los casos se utilizó el usuario ardillasenlared.

Supongamos que queremos desconectar al usuario que tiene la IP 192.168.2.111 y la consola pts/5.
Vamos a buscar el PID de su shell:

ps -ax | grep pts/5


Vemos la siguiente linea:

 47145 pts/5    Ss+    0:00 -bash

Donde nos indica el PID del proceso bash correspondiente a la consola pts/5.
Entonces procedemos a matar dicho proceso:

kill -9 47145

Ejecutamos nuevamente who y vemos que el usuario de la consola pts/5 y la IP 192.168.2.111 no está mas:


Y al usuario remoto le aparecerá el siguiente cartel:


Listo, ya podes desconectarlos a todos ¬¬

¿Ademas queres banearle la IP? Ejecuta:

sudo iptables -I INPUT 1 -s 192.168.2.111 -j DROP

Con esto no podrá volver a conectarse desde esa IP. Si te arrepentís:

sudo iptables -I INPUT 1 -s 192.168.2.111 -j ACCEPT


Interesante, ¿no?

COMPARTÍ, ¿que te cuesta?

Chau chau chauuuuu

lunes, 1 de junio de 2020

Instalar Kubernetes en Azure

Bueno vamos a probar Kubernetes en Azure, así de una, sin vueltas, sin caretearla (?).
Para empezar ingresamos al Portal de Azure con nuestras credenciales y en "Inicio" a la izquierda vamos a ver los servicios que nos ofrece Azure para desplegar.
Uno de ellos es "Servicios de Kubernetes", clickeamos ahí:


Luego vamos a crear nuestro primer cluster haciendo click en "Agregar" o "Crear Servicio de Kubernetes":


Elegimos nuestra suscripción, creamos un nuevo grupo de recursos o resource group, elegimos el nombre del cluster y la región. Y mas abajo elegimos el tamaño del nodo y la cantidad, este paso es muy importante, porque al definir el tamaño del nodo básicamente estamos eligiendo las especificaciones técnicas (cpu, memoria, disco) que van a tener las maquinas virtuales que van a formar los nodos del cluster y esto no se podrá cambiar después de crearlo. El numero de nodos si se puede cambiar.
En mi caso elijo la maquina virtual mas barata que es la DS2 v2, que tiene un 2 CPU y 7GB de RAM.



Fijense que a la derecha aparecen los precios de las virtuales (Costo Mensual Estimado):



sábado, 30 de mayo de 2020

Rollback de Deployments y Namespace en Kubernetes

Hola Ardillas, para estos posts largos prefiero ir directamente al asunto y evitar chistes como el del hacker, así que arranquemos.

Para los que no quieren leer todo (aunque lo recomiendo) podríamos dividir el post en 3 grandes títulos que voy a marcarlos en mayúscula, azul y subrayado así TITULO
Los títulos son:
CREAR NAMESPACE
CREAR DEPLOYMENT
ROLLBACK DE UN DEPLOYMENT

Antes de avanzar con el post de rollback de un deployment en si vamos a ver que tengo corriendo actualmente en mi cluster de Kubernetes:

Para ver un listado de lo que tenemos corriendo en el cluster:

kubectl get all


Fijense que diferencia los PODs, de los servicios, de los deployments y las replicas.

Ver detalle de todos los PODs en el namespaces actual:

kubectl get pods -o wide


Ver detalle de todos los PODs en todos los namespaces:

kubectl get pods --all-namespaces  


En este caso vemos los mismos ya que tengo solo un namespace (los otros que aparecen son del sistema).

Ver cantidad de replicas:

kubectl get rs


Ver historial de cambios de un deployment:

kubectl rollout history deployment/nombredeldeploy



jueves, 28 de mayo de 2020

OpenFortiVPN desde terminal, y aprende a usar tmux

Bueno, después del post de Kubernetes quedé exhausto (?), así que vamos con algo livianito, algo así como una ensalada informática (?).

Estás en tu casa, yo se que te encantan éstas situaciones, que las visualizas. Estás en tu casa, aburrido, en cuarentena, no hay nada en la tele, hace 10 minutos que pasas los canales y no encontras nada que te llame la atención. ¿Entonces que haces?. Pensas, "creo que este es un buen momento para adelantar algo de trabajo". Ya se que no es cierto, pero usemos la imaginación, necesito un pie para meter lo que viene en el post, ¿si?. Bueno, pensas, ¡que bonito sería trabajar este domingo desde casa! (así, con signos de exclamación y todo).
Te dirigís hacia tu maquina, la encendes (me encanta contar el paso a paso, perdón), inicia tu Kubuntu 20.04 y te dispones a trabajar. Pero te das cuenta de algo, no tenes acceso a los servidores de la oficina desde tu casa, empezas a sudar, pero de inmediato recordas que no habías conectado la VPN, cuando chequeas te das cuenta que el panorama es peor de lo que imaginabas, porque... no tenes un cliente VPN instalado. Entras en crisis, estás llorando desconsoladamente como un niño, te sonas la nariz con una servilleta y entras a Ardillas en la red para ver si hay una solución a tu problema. Entonces vas a la ventana de la derecha en el blog, donde dice "buscar en este blog" y escribis "cliente VPN Fortinet", o simplemente VPN, y aparece este post guiñandote el ojo, que te va a permitir conectarte a la VPN de tu trabajo, y seguir adelante este domingo sin tristezas...

Si bien existe una versión oficial de FortiClient para Linux a la que es posible acceder por CLI la verdad es que no la probé, y siendo que OpenFortiVPN siempre me pareció simple, fácil y la verdad es que nunca me dio problemas, prefiero recomendar este cliente para las conexiones VPN SSL con Fortinet.
De todas formas les dejo algunos links para todas las Plataformas:
El FortiClient para Windows lo pueden descargar desde este link.
Para OSX desde este link.
Para Android lo pueden descargar de aca.
Para Linux (Ubuntu, Fedora y Centos) pero con entorno gráfico pueden seguir estos pasos.
Y si tienen otra plataforma pueden acceder directamente a esta pagina.

Luego de darles las opciones oficiales, procedemos con la instalación del cliente en cuestión.

INSTALAR OPENFORTIVPN

Para instalar (en Debian):

sudo apt-get install openfortivpn


Para ver la ayuda:

man openfortivpn

Para conectarte:

sudo openfortivpn HOSTNAME:PUERTO -u USUARIO


Facilisimo, ¿no?

INSTALAR TMUX

Y ahora vamos con tmux que es un software que nos permite lanzar múltiples terminales (ventanas y paneles) dentro de una única pantalla. Muy útil cuando tenes que hacer varias cosas en simultaneo desde la terminal.

Para instalar tmux:

sudo apt-get install tmux

Para crear una ventana:

Primero escribimos tmux para ingresar a la aplicación y luego pulsamos:

Ctrl+B c

Abajo en la franja verde vamos viendo las terminales que creamos. Por ejemplo, yo cree 4:

0:bash 1:bash 2:bash 3:bash


El asterisco nos marca en que ventana estamos ubicados.

Para movernos a la ventana 1 presionamos:

Ctrl+B 1

En esta ventana dejo corriendo el cliente VPN:


Luego me dirijo a la ventana 2:

Ctrl+B 2

Y dejo corriendo un TOP:


Bueno, y así con todo ¬¬

Para listar todas las ventanas:

Ctrl+B w

Para cambiar el nombre de una ventana:

Ctrl+B ,

Para dividir paneles verticalmente:

Ctrl+B %


Para dividir paneles horizontalmente:

Ctrl+B  » + h

Para cambiar entre paneles:

Ctrl+B  tecla de flecha


Para cerrar la ventana actual:

Ctrl+B &

Para cerrar en panel actual:

Ctrl+B » + X

Bueno, esto fue todo, sencillo, pero emotivo (?).
No se porque sos tan egoísta y no compartís, pero tenes que saber que com par tir, extender la mano a tus hermanos, com par tir para hacer un mundo nueeevo.

Perdón, chau.

PD: No me juzguen ni lo cuenten.