Añadir un segundo factor a tu acceso ssh

Los piratas no descansan y las bases de datos de contraseñas no dejan de crecer. Hay filtraciones constantes y, por mucho que lo intentes, no haces más que reutilizar contraseñas y a no ser que utilices algo como nomorepass (muy recomendado) tu memoria tiene sus límites y es muy posible que lo último que hayas cambiado es tu contraseña de acceso.

En el caso de linux, que es lo que yo uso todos los días, si tienes un acceso por ssh que llegue a tu ordenador es bastante sencillo que algún escaner de puertos lo haya detectado, aunque sea por azar, y te encuentres con que están intentando acceder a tu cuenta por fuerza bruta. Hay varios métodos muy recomendables para evitarlo, pero aún así si te dejaste «olvidada» tu contraseña en algún sistema que fue comprometido, bueno, se te pueden meter hasta la cocina.

En este post te comento cómo configurar ubuntu 24.04 (probablemente funcione igual en otras distribuciones) para que te pida un segundo factor de seguridad (que tendrás en el teléfono) y puedes usar google authenticator o cualquier otro sistema compatible on TOTP (códigos generados dependientes del tiempo).

Paso 1:

sudo apt install libpam-google-authenticator

Paso 2:

Añade la siguiente línea al archivo /etc/pam.d/sshd

auth requiered pam_google_authenticator.so

Modifica el archivo /etc/ssh/sshd_config para cambiar y descomentar este valor:

KbdInteractiveAuthentication yes

Ahora reinicia el servicio ssh

sudo systemctl restart ssh

Y ya es momento de configurar tu authenticator

google-authenticator

Te mostrará un QR enorme en pantalla que podrás escanear con tu app de authenticator (yo uso nomorepass) o bien copiar la secret key. Luego siempre puedes copiar los códigos de mergencia por si pierdes el acceso al teléfono (y no los guardes en donde no debes, que nos conocemos)…

Luego ya configuras el resto de cosas de seguridad a los valores recomendados y ya estaría.

Ahora la siguiente vez que intentes entrar te pedirá la constraseña y el código de verificación… Una puerta menos para los hackers.

Protege tu .git

Hasta hace poco en mi empresa utilizábamos subversion como repositorio, no somos un equipo grande y las funcionalidades que nos ofrecía el repositorio eran suficiente para nuestros proyectos.
Recientemente, debido a que un cliente nos ha impuesto utilizar git como repositorio principal y dado que nuestra relación con ellos es muy importante, decidimos mover todos nuestros repositorios a git. Tampoco es que vayamos a utilizar extensivamente las ventajas que nos ofrece, pero si que nos obligaría a funcionar de manera más fluida con una herramienta que vamos a necesitar si-o-si.

El caso es que, en nuestra anterior configuración, utilizábamos subversion para mantener el código de producción de algunas webs y al modificar el repositorio hicimos lo propio con git, teniendo una «feliz transición». El problema vino en que, realmente, no eramos conscientes de las diferencias reales que tenían los dos repositorios y dentro de los directorios servidos junto a la web en cuestión se encontraba el directorio .git.

¿Qué significa esto? Pues ni más ni menos que todo el mundo mundial tiene acceso a tu repositorio local y puede, entre otras cosas, acceder a todo el código de lo que hay allí publicado… Y eso no puede ser. ¿Qué hacemos para evitarlo?

Hay varias formas de hacerlo, dependiendo de si tienes o no un .htaccess en tu web o no y de la configuración de tu servidor, en mi caso la solución que implementamos fue añadir las siguientes líneas al archivo de configuración de cada web:

        <Directory /directorio.de.la.web/.git>
		Options FollowSymLinks
		AllowOverride All
		Require all denied
	</Directory>

Esto indica al servidor que todo lo que hay bajo el directorio .git no está autorizado para ser visto… Reiniciamos el servidor o recargamos la configuración y ya tendremos el problema resuelto.

Y con esto y un bizcocho… Podemos empezar nuestra semana.

Ellos ya conocen tu contraseña

Ultimamente estoy recibiendo este tipo de correo (tengo que revisar el spam porque Google sabiamente me los clasifica como correos peligrosos):

La cuestión es que sabían mi contraseña (no, no es la que aparece en el ejemplo que acabo de poner) y eso no es nada raro, ya que hay más de 1.400 millones de emails y contraseñas circulando por la red proveniente de filtraciones y hackeos varios. Si quieres saber si estás afectado (antes de que intenten chantajearte por email) puedes hacerlo en esta página:

Comprobar si tienen mi contraseña

Aquí puedes comprobar si ya tienen tu contraseña

El resto del correo electrónico es pura ingeniería social… Te amenazan con hacer público algo que a ti no te interesa y que, dado que conocen una de tus contraseñas, podrían haber capturado si no tenemos cuidado… Es totalmente falso, y si tuviesen algo que enseñar ya te lo habrían enseñado, así que, por favor, no pagues.

Para estar protegido (dentro de lo que cabe) intenta no repetir contraseñas en distintos sitios, usar contraseñas que no sean comunies o variaciones de datos propios (si, las variaciones tampoco aportan seguridad) y nunca hagas caso de correos que te manden desconocidos. Por mi parte yo aporto mi granito de arena con NoMorePass, para que no tengas que recordar ninguna contraseña y te mantengas a salvo de todas estas cosas. ¿Qué esperas para probarlo? Es el unico gestor de contraseñas que mantiene solo en tu teléfono todas tus contraseñas y te evita el tener que recordarlas o teclearlas. De hecho el enlace que os puse antes está patrocinado por un gestor de contraseñas de la competencia que ya ha sido comprometido más de una vez. Se bueno, mantente seguro y usa nomorepass…