Tengo un archivo en mi sistema Linux que se llama ".fetchmailrc" y se utiliza para configurar la dirección de correo electrónico de la que fetchmail recibirá los correos. Por lo tanto, tengo que escribir mi contraseña y dirección de correo electrónico en texto sin formato.
Así es como se ve el archivo .fetchmailrc:
set daemon 1
set logfile /home/user/.fetchmail.log
set no bouncemail
poll pop.gmail.com proto POP3 auth password no dns user "MY_EMAIL" password "MY_PASSWORD" is user keep ssl
mda "/usr/bin/procmail -d %T"
Creo que debe haber una mejor manera de hacer esto, ya que si un pirata informático obtiene acceso a mi servidor, puede leer fácilmente el archivo y obtener mis credenciales.
Escuché que en los sistemas Linux hay PAM (Módulos de autenticación conectables) pero no sé si eso está relacionado con lo que estoy tratando de hacer.
Respuesta1
No importa cómo almacene sus contraseñas, cuando ejecuta un programa que no solicita sus contraseñas, el programa tiene que descifrar la contraseña almacenada con la información disponible en el servidor. Un "hacker" que obtenga acceso a su servidor puede utilizar toda la información almacenada en el servidor. Entonces también puede descifrar la contraseña de la misma manera que la descifra el programa.
Si el esquema que utiliza para cifrar y almacenar su contraseña es un poco más complicado, es posible que el "hacker" tarde un poco más.
Así que no hay forma de hacer lo que quieres: no importa cómo guardes tu contraseña, no puedes hacerla "segura contra piratas informáticos". El hacker sólo tiene que hacer lo que sea que haga el programa (o tal vez incluso simplemente ejecutar el programa y detectar el tráfico de la red).
Los módulos PAM no tienen nada que ver con eso. No sirven para almacenar contraseñas, pero proporcionan formas de configurar métodos de autenticación para servicios de Linux existentes. Se debe escribir un programa que desee utilizar PAM.
Respuesta2
Utilice el servicio de retención de claves del kernel
Si le preocupa que alguien obtenga acceso root repetido a su sistema, entonces prácticamente no hay nada que pueda hacer después de eso. (Pero eso es una pesadilla, siga las mejores prácticas y mantenga buenas copias de seguridad).
Sin embargo, si todo sigue siendo seguro, entonces podría hacerlo mucho mejor que dejar una contraseña en un archivo de texto sin formato (cualquiera que encuentre la unidad del sistema en ejecución o apagada puede leerla). Haz cosas como:
- Cifra tu casa, de modo que el archivo de texto (en $HOME) esté cifrado al menos cuando no hayas iniciado sesión.
- Cifre todo su disco, similar a lo anterior.
- No guardes la contraseña en un archivo, solo escríbela tú mismo cuando sea necesario
- Si tiene que almacenar contraseñas escritas, escríbalas al iniciar sesión y luego póngalas:
- en una variable (en ram, aunque podrían aterrizar en swap)
- en elservicio de retención de claves del kernel(llavero en ram, más seguro). Verhttps://www.kernel.org/doc/Documentation/security/keys.txty
man keyctl
quizáman keyrings
Algunos ejemplos prácticos y notas de Anthony Thyssen.