1. Servidores web (Apache, Nginx):
* Concepto: Los servidores web a menudo usan `.htpasswd` (apache) o archivos similares para proteger directorios y archivos con autenticación de contraseña. Estos archivos contienen nombres de usuario y contraseñas cifradas.
* apache (.htaccess &.htpasswd):
1. Crear el archivo .htpasswd: Use la utilidad `htpasswd`. Esto generalmente se incluye con Apache.
`` `Bash
htpasswd -c /path/to/.htpasswd username # Crear un archivo nuevo y agregar el primer usuario
htpasswd /path/to/.htpasswd otheruser # Agregar usuarios posteriores
`` `` ``
* `-C`:Crea un nuevo archivo. Usar solo para el * primer * usuario. Omitirlo para usuarios posteriores.
* `/ruta/a/.htpasswd`:la ruta completa a donde desea almacenar el archivo de contraseña. IMPORTANTE: Asegúrese de que esta ubicación esté * fuera * de la raíz del documento de su servidor web (por ejemplo, `/var/www/.htpasswd`) para evitar el acceso no autorizado.
* `Nombre de usuario`:el nombre de usuario para la cuenta. Se le pedirá que ingrese la contraseña.
2. Crear o modificar el archivo .htaccess en el directorio que desea proteger:
`` `Apache
Authtype básico
AuthName "Área restringida" # Mensaje que se muestra en el mensaje de inicio de sesión
Autuserfile /path/to/.htpasswd # ruta a su archivo .htpasswd
Requiere un usuario válido # cualquier persona en el archivo .htpasswd puede acceder
`` `` ``
* `Authtype Basic`:especifica la autenticación básica.
* `Authname`:el reino o el nombre que aparece en el mensaje de inicio de sesión.
* `AuthuserFile`:la ruta * completa * a su archivo '.htpasswd`. Esto es crítico.
* `Requerir un usuario válido ':requiere un nombre de usuario válido del' AuthuserFile '.
3. Habilitar .htaccess en Apache (si es necesario): En su archivo de configuración de Apache (generalmente `httpd.conf` o` apache2.conf` o un archivo en `sites disponible '), asegúrese de que el directorio que contenga su archivo` .htaccess` tenga `desactivado todo' set. Por ejemplo:
`` `Apache
Índices de opciones Seguirsymlinks
Permisir todo lo importante # importante! Permite que funcione .htaccess
Requiere todos otorgados
`` `` ``
* Después de cambiar la configuración de Apache, reinicie Apache: `sudo systemCTL reiniciar apache2` (o el comando apropiado para su sistema).
* nginx (requiere una utilidad externa como `apache2-utils`):
1. Instalar `apache2-utils` (si no está instalado):
`` `Bash
# de sudo apt-get # (Debian/Ubuntu)
sudo apt-get install apache2-utils
`` `` ``
`` `Bash
SUDO YUM ACTUALIZACIÓN # (CENTOS/RHEL)
sudo yum instalar httpd-tools
`` `` ``
2. Crea el archivo `.htpasswd`: Use la utilidad `htpasswd` (igual que Apache).
`` `Bash
htpasswd -c /path/to/.htpasswd username # Crear un archivo nuevo y agregar el primer usuario
htpasswd /path/to/.htpasswd otheruser # Agregar usuarios posteriores
`` `` ``
3. Configurar nginx: Edite su archivo de configuración de Nginx (generalmente en `/etc/nginx/sites disponible/`) para el sitio relevante.
`` `nginx
Ubicación /YourDirectory { # Reemplazar con el directorio que desea proteger
auth_basic "Área restringida";
auth_basic_user_file /path/to/.htpasswd;
}
`` `` ``
* `Ubicación /YourDirectory`:el camino que desea proteger.
* `Auth_basic`:el reino o el nombre que aparece en el mensaje de inicio de sesión.
* `auth_basic_user_file`:la ruta completa a su archivo '.htpasswd`.
4. reiniciar nginx: `sudo systemCtl reiniciar nginx`
2. Cuentas de usuario de Linux/Unix:
* Concepto: Estos sistemas usan `/etc/passwd` (históricamente, pero rara vez se modifican directamente ahora) y`/etc/shadow` (o similar) para la información de la cuenta de usuario y los hash de contraseña. Usted * nunca * edita directamente estos archivos a menos que * realmente * sepa lo que está haciendo y comprende el formato.
* use `userAdd`,` adduser`, `passwd` y` usermod`: Estas son las utilidades estándar.
* Crear un nuevo usuario:
`` `Bash
Adduser Newuser # (Debian/Ubuntu)
Sudo UserAdd Newuser # (CentOS/RHEL, puede requerir pasos adicionales como configurar una contraseña)
sudo passwd Newuser # Establezca la contraseña para el usuario
`` `` ``
* Cambie la contraseña de un usuario:
`` `Bash
sudo passwd existenteuser
`` `` ``
* Modifique las propiedades del usuario (por ejemplo, agregar a un grupo):
`` `Bash
sudo usermod -a -g groupname username # Agregar usuario al grupo (Debian/Ubuntu/Centos/Rhel)
`` `` ``
3. Aplicaciones específicas (por ejemplo, bases de datos, software personalizado):
* Lea la documentación de la aplicación: Esto es crucial. Cada aplicación maneja la autenticación de manera diferente. Busque secciones sobre seguridad, autenticación, gestión de usuarios o temas similares.
* Ejemplos:
* mysql/mariadb: Use declaraciones `Crear usuario` y` Grant`.
* PostgreSQL: Use declaraciones `Crear rol` y` subvención '.
* Aplicación personalizada de Python: El método de autenticación dependerá de los marcos y las bibliotecas utilizadas (por ejemplo, frascos con frasco-login, django con su administración de usuarios incorporada).
Consideraciones importantes:
* Seguridad:
* Hashing de contraseña: * Nunca* almacene contraseñas en texto plano. Use algoritmos de hash de contraseña segura (por ejemplo, Bcrypt, Argon2, Scrypt). La utilidad `htpasswd` generalmente maneja esto por usted. Los sistemas y aplicaciones modernas casi siempre usan el hash.
* Permisos de archivo: Proteja los archivos de contraseña con los permisos de archivo apropiados. El propietario debe ser `root`, y el grupo a menudo debería ser algo así como 'shadow' o un grupo específico del sistema. Establezca permisos en `640` o` 600` para restringir el acceso.
* Principio de menor privilegio: Solo otorgue a los usuarios los permisos mínimos necesarios.
* Actualizar regularmente: Mantenga su sistema operativo, servidor web y todo el software actualizado para parchear las vulnerabilidades de seguridad.
* Complejidad de contraseña: Haga cumplir las políticas de contraseña segura (longitud mínima, estuche mixta, caracteres especiales) cuando sea posible.
* Autenticación de dos factores (2fa): Considere implementar 2FA para una mayor seguridad.
* Mensajes de error: Tenga cuidado con los mensajes de error. No regale demasiada información a los posibles atacantes. Por ejemplo, un mensaje como "nombre de usuario no válido" es más seguro que el "nombre de usuario no encontrado".
* Prueba: Siempre pruebe su configuración de autenticación siempre para asegurarse de que funcione como se esperaba.
Para obtener instrucciones más específicas, por favor dígame:
* ¿Con qué sistema o aplicación está trabajando? (por ejemplo, Apache Web Server, Linux Server, una base de datos específica, una aplicación personalizada)
* ¿Qué estás tratando de lograr? (por ejemplo, proteger un directorio en un sitio web, crear una nueva cuenta de usuario en un servidor de Linux, acceso seguro a una base de datos)
* ¿Qué has probado ya?
Con esta información, puedo darle una respuesta más precisa y útil.