Hacer que un fichero en Linux no pueda ser borrado ni modificado.

A veces nos interesa que en nuestro sistema Linux haya algún fichero inmutable, que no pueda ser borrado o modificado incluso aunque se intente con permisos de superusuario. ¿Es posible? Sí, con el comando chattr y usando la opción +i. Por ejemplo:

chattr +i nombre_del_fichero

Si lo aplicamos a una carpeta esto haría no solo que la carpeta no pueda ser borrado o editada sino que tampoco se puedan añadir nuevos ficheros a la misma o borrarlos, pero sí se podrían editar estos ficheros. ¿Se puede hacer que estos tampoco puedan ser editados? Sí, habría que aplicar el comando de forma recursiva sobre la carpeta para que afecte a todo lo que esta contiene:

chattr +i -RV nombre_de_carpeta

¿Y para quitar este flag y poder borrarlo o editarlo? En lugar de +i se usa -i:

chattr -i nombre_del_fichero

¿Esto tiene alguna utilidad? Pues sí. Por ejemplo podéis hacer que el fichero de usuarios o de contraseñas del sistema sea inmutable, de forma que nadie podría darse de alta sin antes modificar los permisos del fichero para ello, dando un punto extra a la seguridad.

Anuncios

Generar contraseñas seguras en Linux con APG

Ya vimos en el pasado cómo generar contraseñas en linux con mkpasswd, hoy veremos otro método. APG, abreviatura de Automatic Password Generator, viene instalado en Ubuntu y sus derivados. Es un programa pensado para generar contraseñas “memorizables“. Si lo ejecutas a secas te pedirá una “raíz“, una serie de datos con los que trabajar, y en base a eso creará una contraseña “memorizable“, y con “memorizable” quiero decir que junto a la contraseña te mostrará una transcripción fonética para que la recuerdes mejor.

APG Ejemplo
Ejemplo de APG

También puedes generar contraseñas totalmente aleatorias usando el comando apg a -1, que ofrece resultados de entre 8 y 10 caracteres.

Ejemplo APG 2
Ejemplo de APG con a -1

Siete puntos a tener en cuenta para comprar on-line.

En estas fechas navideñas se hacen muchas compras, y en los últimos años las compras on-line han crecido exponencialmente. Tanto como para colapsar los centros de algunas empresas de transporte. Pero ¿Son seguras? En los últimos años la seguridad de estas transacciones también ha mejorado mucho, pero sin una serie de buenas prácticas por parte del usuario todo el trabajo de los programadores de dichos sistemas puede irse al garete.

Hace unas semanas, motivados por el Black Friday, INCIBE y OSI realizaron una guía con una serie de pasos para comprar de forma segura en Internet. Con ánimo divulgativo os dejo por aquí la infografía que realizaron y también este enlace donde podéis ver el contenido del post original en el sitio web de la OSI.

Guía OSI INCIBE compra on-line

 

Detectar intrusos en tu wifi desde Android o iOS

En el pasado vimos cómo detectar intrusos en tu wifi con Windows (ya hace años de eso) y desde Ubuntu. Pero ¿y si eres un usuario que tiene sólo tablet y móvil? ¿puedes saber si te están vampirizando la wifi? Puedes. Existen varias apps para ello, pero creo que la más sencilla es Fing, que además en su versión más básica es gratis.

Fing es una aplicación que te permite escanear la red a la que estás conectado, y por suerte existen versiones para varios sistemas operativos. De hecho puedes usar también Fing desde un portátil o sobremesa ya que también tiene versiones para Linux, Windows y MacOSX.

Centrándonos en la versión móvil, no puede ser más sencilla de usar: la puedes descargar desde aquí y, una vez instalada, basta ejecutar la aplicación para ver qué equipos hay conectados a la red. Los móviles tendrán un icono distintivo, al igual que el router o punto de acceso al que esté conectado el teléfono. Una vez veas la lista puedes calcular si ves algo raro, si hay algún equipo que no debiera estar conectado. En caso de que haya un invitado indeseado la mejor opción es que cambies la contraseña de la wifi.

Fing captura

Pulsando encima de cada dispositivo conectado podrás tener varias opciones: una es ver la MAC del dispositivo, por si quieres añadir a tu router una regla de filtrado por MAC para impedir que ese equipo se conecte (aunque la MAC puede cambiarse, así que no es un método infalible para evitar conexiones indeseadas). Otra es la de etiquetar a ese dispositivo con un nombre a tu elección (por ejemplo “ordenador del salón“) para facilitar su identificación cuando ejecutes el app. También puedes realizar un escaneado de puertos o lanzar un ping. Si decides hacerte una cuenta puedes disponer de notificaciones cuando alguien se conecte y más opciones.

Como ves es una solución fácil para tener controlado quién accede a tu wifi. Por cierto, que los creadores de Fing están trabajando en Fingbox, un dispositivo de hardware que facilitaría la expulsión de intrusos de tu red.

Creando contraseñas en Linux con mkpasswd

El programa mkpasswd, que es parte del paquete whois, nos permite generar contraseñas complejas y seguras a través de diversos algoritmos criptográficos.

Si no lo tienes instalado puedes agregar el paquete whois tal que así:

sudo apt-get update
sudo apt-get install whois

Una vez tengamos whois instalado ya podemos hacer uso de mkpasswd. Veamos que opciones tiene:

  • -m: Nos permite elegir el método con el que encriptaremos: entre des, md5,sha-256 y sha-512.
  • -5: Es una forma abreviada para seleccionar el método md5, sería equivalente a usar -m md5.
  • -S: Una cadena que usar como salt para el password.
  • -R: Definimos el número de rondas que se usarán, si son aplicables.
  • -P: Lee la contraseña del descriptor de fichero que le pasemos en lugar de hacerlo de /dev/tty
  • -s: Método acortado equivalente a -P 0

Por ejemplo:

#usamos el algoritmo sha-256
#pasamos como sal la cadena salamos1
mkpasswd -m sha-256 -S salamos1

#lo mismo pero con md5
mkpasswd -m md5 -S salamos1

Una captura viendo distintas opciones, distintos algoritmos y comprobando también cómo el salt no permite ciertos carácteres:
mkpasswd

Reparar Sambacry (CVE-2017-7494) en Ubuntu

Tras todo el tema de Wannacry atacando sistemas Windows hace un par de semanas ahora aflora otra vulnerabilidad que afecta al protocolo SMB en Samba, afectando a las versiones 3.5 y posteriores, lanzada en marzo de 2010. El fallo ha sido reportado y descrito por Samba en su sitio oficial como CVE-2017-7494.

Ya se ha reparado el problema, así que si no tienes actualizado Samba es el momento de hacerlo. Las versiones para Ubuntu en las que ya se ha aplicado el parche son las siguientes:

  • 17.04: samba 2:4.5.8+dfsg-0ubuntu0.17.04.2
  • 16.10: samba 2:4.4.5+dfsg-2ubuntu5.6
  • 16.04 LTS: samba 2:4.3.11+dfsg-0ubuntu0.16.04.7
  • 14.04 LTS: samba 2:4.3.11+dfsg-0ubuntu0.14.04.8

Para actualizar Samba y ver qué versión tienes instalada en tu Ubuntu puedes usar los siguientes comandos:

#instalar
$ sudo apt-get update
$ sudo apt-get install samba

#y para comprobar la versión
$ sudo apt-cache show samba

Si por lo que sea no puedes actualizar Samba comprueba que tengas SELinux habilitado, en caso afirmativo ya deberías estar protegido contra la ejecución de código remoto en tu equipo. También puedes poner la opción noexec en las unidades compartidas por Samba para evitar la ejecución de binarios en las mismas.

En la sección [global] del fichero smb.conf también puedes añadir la siguiente línea y luego reinciar el servicio:

nt pipe support = no

Ojo con esto último, puede dar problemas con los permisos para acceder a carpetas a los usuarios de Windows. Por ejemplo, les forzaría a poner la dirección completa del directorio compartido, no bastando sólo con la del directorio raíz.

Añadiendo una capa extra de seguridad al login de PHPMyAdmin

He visto este artículo en Tecmint esta semana y he pensado que no estaría de más comentarlo por aquí, por aquello de que muchos de los que llegáis a este blog es porque buscáis una solución que no esté en inglés sino en castellano.

En fin, la idea es poner protección con contraseña a la propia página de login de PHPMyAdmin, esto nos obliga a poner dos contraseñas para entrar en lugar de una. Puede paracer paranoico, pero recuerda que es el corazón y el cerebro de vuestro servidor web. Como es habitual nos centraremos en la versión para Debian/Ubuntu. Los ejemplos los copio y pego del artículo original.

Bueno, lo primero es añadir estas líneas al fichero /etc/apache2/sites-available/000-default.conf

<Directory /usr/share/phpmyadmin>
AuthType Basic
AuthName "Restricted Content"
AuthUserFile /etc/apache2/.htpasswd
Require valid-user
</Directory>

Lo siguiente será usar htpasswd para generar un fichero de contraseña para una cuenta que tendrá el acceso autorizado a la página de login. Usaremos el parámetro -c para que cree la cuente o, en caso de que exista, se la cargue y genere una nueva. En el ejemplo usan tecmint como  usuario, así que copio tal cual:

# htpasswd -c /etc/apache2/.htpasswd tecmint

Tras eso nos pedirá que insertemos la nueva contraseña dos veces. El siguiente paso nos lleva  a modificar los permisos sobre el fichero para que ningún usuario indeseado pueda leerlo:

# chmod 640 /etc/apache2/.htpasswd
# chgrp www-data /etc/apache2/.htpasswd

De esta forma si intentamos acceder a nuestro PHPMyAdmin nos encontraremos con lo comentado: nos pide una contraseña para poder acceder al login, donde tendremos que meter otra para entrar. Como recomendación, para que esto sea útil no uséis el mismo usuario y contraseña para las dos.