Control de acceso en tiempo real con PAM: ¡No pierdas ni un minuto!

Las redes a menudo requieren restricciones de acceso basadas en el tiempo. El administrador del sistema puede no querer que se acceda a un servicio en particular los fines de semana, o un usuario viajero puede necesitar acceso a un sistema de archivos cuando está trabajando en otra zona horaria. En este artículo, discutiremos formas de utilizar los Módulos de Autenticación Enchufables (PAM) para permitir y denegar el acceso a los servicios del sistema, basado en el tiempo.

Índice de Contenido
  1. El módulo pam_time
  2. Tabla A
  3. Restringir el acceso basado en los recursos del sistema
  4. Tabla D
  5. Tabla E
  6. Restringir /etc/security/time.conf
  7. Resumen

El módulo pam_time

El módulo pam_time se utiliza como tipo de módulo account. El módulo pam_time no acepta argumentos. En su lugar, utiliza el archivo /etc/security/time.conf para obtener información relacionada con las restricciones de tiempo y ubicación de inicio de sesión. Hay dos puntos importantes respecto al archivo /etc/security/time.conf.

  1. Si el archivo /etc/security no existe, no hay restricciones de inicio de sesión relacionadas con el tiempo o la ubicación.
  2. Las limitaciones establecidas por /etc/security se aplican a todos los usuarios, incluido root.

El archivo /etc/security/time.conf restringe el acceso por tiempo y ubicación cuando se utiliza con pam_time. Cada línea en el archivo /etc/security/time.conf se llama regla. Cada regla utiliza la siguiente sintaxis:
servicios; terminales; usuarios; tiempos

Tabla A

La Tabla A describe la función de cada una de estas entradas.

Tabla A
EntradaFunción
serviciosSe utiliza para listar los servicios utilizados con PAM. Se pueden usar varios registros con el mismo servicio.
terminalesUna lista de dispositivos a los que se puede permitir o denegar el acceso.
usuariosUna lista de usuarios conocidos por el sistema. Esta lista puede incluir a root.
tiemposUna lista que determina los momentos en que se aplica una regla específica.

Operadores lógicos

Los operadores lógicos son caracteres especiales utilizados para aplicar condiciones a los parámetros en archivos de configuración y scripts. La Tabla B enumera los operadores lógicos utilizados en /etc/security/time.conf y otros archivos de configuración.

Cómo encontrar el Pin 1 en un cable de cinta: métodos y consejos.
Tabla B
OperadorFunciónUso TípicoDescripción
&AND lógicojack & jill.Esta regla se aplica a los usuarios jack y jill.
|OR lógicoftp | telnet.Esta regla se aplica a ftp o telnet.
!NOT lógico! ssh.Esta regla no se aplica al shell seguro (ssh).
*Comodín Se utiliza cuando se necesita una coincidencia para cualquier valor.

Códigos de tiempo

Los códigos de tiempo se usan para establecer los momentos en que se aplican las reglas de acceso. Los códigos de tiempo pueden especificar el día de la semana o la hora del día cuando una regla está en vigencia, o ambos.

Cuando se establecen restricciones de hora del día, el tiempo se mide utilizando un reloj de 24 horas. Si se requiere una restricción para la 1:00 P.M., el tiempo utilizado en el archivo de configuración sería 1300, ya que la 1:00 P.M. es la decimotercera hora del día. La Tabla C enumera los códigos de día utilizados en archivos de configuración.

Tabla C
Código de díaFunción
Su, Mo, Tu, WeEstos son los códigos utilizados para los días de la semana, comenzando en domingo y terminando en sábado. Estos códigos se pueden usar en una cadena de texto continua para representar varios días. SuTuFr indicaría que hay una restricción en vigor los domingos, martes y viernes.
Wk, WdWd significa días de la semana. Wk significa fines de semana. La cadena SuWk significa todos los fines de semana excepto los domingos. La cadena WeWd significa todos los días de la semana excepto los miércoles.
A1Este término significa los siete días de la semana. La cadena A1Th significa todos los días de la semana, excepto los jueves.

Poniendo en práctica /etc/security/time.conf

A continuación, veremos un ejemplo de archivo /etc/security/time.conf. Recuerde, el formato de las entradas en este archivo es:
servicios; terminales; usuarios; tiempos

Un archivo /etc/security/time.conf simple se verá así:
*;tty1;jim;A10000-2300
login & ssh;*;jane | jim|bill|susan;A11200-2000
ftp;*;guest;MoTuFr0800-1700&!Wk0000-2400
finger;*;guestA10000-2400

Clases de direcciones IP: A

Ahora, examinemos el contenido de este archivo. La primera línea:
*;tty1;jim;A10000-2300

permite al usuario Jim acceder a todos los servicios desde la medianoche hasta las 11:00 p.m., siempre que Jim inicie sesión desde tty1.

La segunda línea:
login & ssh;*;jane | jim|bill|susan;A11200-2000

permite a los usuarios Jane, Jim, Bill y Susan acceder al sistema cualquier día de la semana, desde las 12:00 del mediodía hasta las 8:00 p.m., siempre que accedan al sistema utilizando /bin/login o el shell seguro (ssh).

La tercera línea:
ftp; *;guest;Wk0000-2400

permite al usuario invitado acceder al sistema a través de FTP en cualquier momento durante el fin de semana.

Qué es una DMZ y cómo puede beneficiar a tu red doméstica o empresarial

La última línea:
finger;*;guestA10000-2400

impide que el usuario obtenga información de "finger" del sistema en cualquier momento.

Pruébate a ti mismo

¿Qué sucedería si colocara la siguiente entrada en /etc/security/time.conf?
*;*;*;!A10000-2400

Si adivinaste que esta entrada denegaría el acceso a todos los usuarios, incluido root, tienes razón. El punto aquí es tener mucho cuidado al realizar modificaciones en el archivo time.conf. Siempre haz una copia de seguridad de este archivo antes de realizar cualquier modificación.

El propósito del archivo /etc/security/time.conf es restringir el acceso. Si las entradas de este archivo contienen tiempos o ubicaciones superpuestos, se utilizará la entrada que otorgue menos acceso. Coloca una entrada pam_time en el archivo de configuración /etc/pam.d para cada aplicación que requiera acceso restringido.

Cómo bloquear el tráfico SNMP en tu firewall y proteger tu red

Restringir el acceso basado en los recursos del sistema

Establecer límites en los recursos del sistema disponibles para cada usuario también puede restringir el acceso al sistema. Estos límites proporcionan dos ventajas distintas para el administrador del sistema:

  • Ningún usuario o servicio consumirá recursos disponibles, evitando cuellos de botella.
  • Los límites en los recursos del sistema son útiles para prevenir ataques de denegación de servicio (DoS) basados en el sistema.

PAM utiliza dos componentes para establecer límites en los recursos del sistema: el módulo pam_limits y el archivo /etc/security/limits.conf. El módulo pam_limits solo se puede utilizar como tipo de módulo session. El módulo pam_limits solo aceptará dos argumentos:

  • debug: se utiliza para enviar información a syslog
  • conf=ruta-al-archivo-de-configuración: El valor predeterminado para este argumento es /etc/security/limits.conf

El archivo /etc/security/limits.conf establece límites de recursos del sistema en función del usuario o del grupo. Todos los límites establecidos por el archivo limits.conf se aplican a una única sesión. Los límites totales se establecen en los recursos del sistema al restringir el número máximo de usuarios concurrentes. Las entradas se realizan en /etc/security/limits.conf utilizando el formato:
Nombre de usuario o nombre de grupo, límite duro o blando, recurso limitado, valor del límite

Tabla D

La Tabla D enumera los caracteres especiales y la sintaxis utilizada en /etc/security/limits.conf.

Tabla D
Carácter o sintaxisFunción
#Se utiliza para especificar comentarios
@nombre-de-grupoLos nombres de grupo siempre van precedidos del carácter @
*Carácter comodín. Se utiliza para representar a todos los usuarios o grupos
Duro / blandoDenota un límite duro o blando en un recurso específico. Un límite duro establece un límite fijo. Un límite blando utiliza un límite predeterminado.
-Se utiliza para establecer límites para un usuario específico

Tabla E

Tabla E muestra un archivo típico de /etc/security/time.conf.

Tabla E
Usuario/grupoTipo de límiteRecursoValor del límite
*durostack10000
@finanzasduronofile10
@contabilidaddurofsize2000
jim-
ftpduromaxlogins50

Ahora, examinemos las restricciones establecidas por estas entradas. La primera línea:
*, duro, stack, 10000

Cómo configurar el sistema de transporte de correo Mercury/32

establece un límite de stack de 10,000 kilobytes o 10 MB para todos los usuarios.

La segunda línea:
@finanzas, duro, nofile 10

especifica que los usuarios del grupo finanzas pueden tener un máximo de 10 archivos abiertos.

La tercera línea:
@contabilidad, duro, fsize, 2000

establece el tamaño máximo de archivo para los usuarios del grupo contabilidad en 2 MB.

La cuarta línea:
jim -,

Los cinco tipos de contraseñas para proteger tu router Cisco

desactiva todas las restricciones para el usuario Jim.

La última línea:
ftp, duro, maxlogins, 50

establece el número máximo de inicios de sesión concurrentes de FTP en 50.

Restringir /etc/security/time.conf

Tabla F muestra los recursos que se pueden restringir utilizando el archivo /etc/security/time.conf. La única forma de implementar adecuadamente estas o cualquier restricción es conocer los requisitos de tu red. Recuerda, cualquier restricción de seguridad que apliques a tu sistema hará que un usuario no pueda realizar una tarea. Siempre es recomendable probar las restricciones antes de implementarlas en un servidor de producción.

Tabla F
RecursoFunción
CoreLimita el tamaño de los archivos de volcado de memoria (core files)
FsizeEstablece el tamaño máximo de archivo
DataTamaño máximo de datos
NofileNúmero máximo de archivos abiertos
CpuTiempo máximo de CPU en minutos
StackTamaño máximo de stack
NprocNúmero máximo de procesos
AsSe utiliza para limitar el espacio de direcciones
MaxloginsNúmero máximo de inicios de sesión simultáneos
MemlockEspacio de direcciones de memoria bloqueado en la memoria
RssTamaño máximo de conjuntos de páginas residentes (resident set size)

Resumen

En este artículo, hemos discutido formas de utilizar PAM para aplicar una política de acceso al sistema basada en el tiempo. Explicamos los módulos de PAM y los archivos de configuración necesarios para aplicar esta política y los procedimientos necesarios para modificar estos archivos. También mostramos algunas entradas que no deben ser utilizadas por los administradores al establecer una política de acceso al sistema basada en el tiempo.

Guía completa para entender las direcciones IP y su importancia en redes

En Newsmatic nos especializamos en tecnología de vanguardia, contamos con los artículos mas novedosos sobre Redes, allí encontraras muchos artículos similares a Control de acceso en tiempo real con PAM: ¡No pierdas ni un minuto! , tenemos lo ultimo en tecnología 2023.

Artículos Relacionados

Subir

Utilizamos cookies para mejorar su experiencia de navegación, mostrarle anuncios o contenidos personalizados y analizar nuestro tráfico. Al hacer clic en “Aceptar todo” usted da su consentimiento a nuestro uso de las cookies.