Aplicación y seguridad del sistema Linux (con capturas de pantalla de funcionamiento detalladas adjuntas)

1. Control de seguridad de la cuenta

Una cuenta de usuario es el ID o identificación de un usuario de computadora. Todos los que quieran acceder a los recursos del sistema deben confiar en su cuenta de usuario para acceder a la computadora. En el sistema Linux, se proporcionan una variedad de mecanismos para garantizar el uso adecuado y seguro de las cuentas de usuario.

1.1 Limpieza de la cuenta del sistema

  • Configure el shell de los usuarios que no inician sesión en / sbin / nologin o / bin / falsh
usermod -s /sbin/nologin 用户名
  • Bloquear cuentas que no se hayan utilizado durante mucho tiempo
usermod -L 用户名             锁定用户账户  
passwd  -l  用户名            锁定用户密码
passwd  -S  用户名            查看用户状态
  • Eliminar cuentas inútiles
userdel [-r] 用户名           删除用户-r宿主目录一起删除
  • Bloquear archivos de cuenta passwd, shadow
chattr +i /etc/passwd /etc/shadow      锁定文件
lsattr /etc/passwd /etc/shadow         查看文件状态
chattr -i /etc/passwd /etc/shadow      解锁文件

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

  • Uso del comando chattr
    1. "+": agrega parámetros basados ​​en la configuración original de los parámetros;

2. "-": Elimina el parámetro según la configuración del parámetro original;

3. "="; actualizar a la configuración de parámetro especificada.

“A”:文件或目录的atime(access time)不可被修改(modified),可以有效预防例如手提电脑,磁盘I/O错误的发生;

“S”:硬盘I/O同步选项,功能类似sync;

“a”:即append,设定参数后,只能向文件中添加数据,而不能删除,多用来服务器日志文件安全,只有root才能设定这个属性;

“c”,即compresse,设定文件是否经压缩后再存储,读取时需要经过自动解压操作;

“d”:即no dump 设定文件不能成为dump程序的备份目标;

“i”:设定文件不能被删除、改名、设定链接关系,同时不能写入或新增内容。i参数对文件系统的安全设置有很大帮助;

“j”:即journal,设定此参数使得当通过mount参数:data=ordered或者data=writeback挂载的文件系统,文件在写入时会被记录(在journal中)。如果filesystem被设定参数为data=journal,则该参数自动失效;

“s”:保密性地删除文件或者目录,即硬盘空间被全部收回;

“u”:与s相反,当设定为u时,数据内容其实还存在磁盘中,可以用于undeletion。

Las opciones de uso común en cada parámetro son "a" e "i". Las fuerzas de opción "a" solo se pueden agregar y no se pueden eliminar. Se usa principalmente para la configuración de seguridad del sistema de registro, mientras que "i" es una configuración de seguridad más estricta, que solo puede ser aplicada por superusuario (root) o procesos con capacidades de procesamiento CAP_Linux_IMMUYABLE (identificación) La opción.

1.2 Control de seguridad por contraseña

En un entorno de red inseguro, para reducir el riesgo de adivinar la contraseña o descifrar la fuerza bruta, los usuarios adquieren el hábito de cambiar las contraseñas con regularidad para evitar usar la misma contraseña durante mucho tiempo. El administrador puede limitar el número máximo de días válidos para la contraseña de un usuario en el lado del servidor. Para los usuarios cuyas contraseñas han expirado, se les pedirá que restablezcan sus contraseñas al iniciar sesión, de lo contrario, se les negará el inicio de sesión.

1.2.1 Establecer el período de validez de la contraseña

方法一:修改密码配置文件适用于新建用户
vim /etc/login.defs     
……
PASS_MAX_DAYS 30
方法二:适用于已有用户
[root@localhost ~]# chage -M 30 用户
[root@localhost ~]# cat /etc/shadow | grep 用户

método uno:

[root@localhost c7-1]#vi /etc/login.defs

#   QMAIL_DIR is for Qmail
#
#QMAIL_DIR      Maildir
MAIL_DIR        /var/spool/mail
#MAIL_FILE      .mail

# Password aging controls:
#
#       PASS_MAX_DAYS   Maximum number of days a password may be used.
#       PASS_MIN_DAYS   Minimum number of days allowed between password changes.
#       PASS_MIN_LEN    Minimum acceptable password length.
#       PASS_WARN_AGE   Number of days warning given before a password expires.
#
PASS_MAX_DAYS   99999   // 系统默认99999 ,永久
PASS_MIN_DAYS   0
PASS_MIN_LEN    5
PASS_WARN_AGE   7

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Demostración del método dos:
Inserte la descripción de la imagen aquí

1.2.2 Solicitar a los usuarios que cambien su contraseña la próxima vez que inicien sesión

chage -d 0 lisi                    强制在下次登陆时更改密码               
cat /etc/shadow | grep 用户        shadow文件中的第三个字段被修改为0

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

1.2.3 Restricciones del historial de comandos

  • Reducir la cantidad de comandos grabados
[root@localhost ~]# vi /etc/profile           #编辑profile文件    
 export HISTSIZE=30                            #保存30条历史记录
[root@localhost ~]# source /etc/profile        #执行一次配置文件,让配置文件生效

Inserte la descripción de la imagen aquí

Inserte la descripción de la imagen aquí

Inserte la descripción de la imagen aquí

  • Limpia automáticamente el historial de comandos al iniciar sesión
[root@localhost ~]#vi ~/.bashrc
 echo " " > ~/.bash_history  

Inserte la descripción de la imagen aquí

Después de reiniciar, puede ver que todos los comandos anteriores se vacían
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

1.2.4 Cierre de sesión automático del terminal

  • Cerrar sesión automáticamente después de 600 segundos de inactividad
vim /etc/profile                #编辑profile文件
export TMOUT=600                #设定时间600秒
[root@localhost ~]# source /etc/profile    #调用配置文件

Inserte la descripción de la imagen aquí

2. Cambio de usuario y escalada de privilegios

La mayoría de los servidores Linux no recomiendan que los usuarios inicien sesión directamente como usuario root. Por un lado, puede reducir en gran medida el daño causado por un mal funcionamiento y, por otro lado, también reduce el riesgo de que la contraseña privilegiada se filtre en una red insegura. Por estas razones, es necesario proporcionar un mecanismo de conmutación de identidad o escalado de privilegios para que los usuarios comunes realicen tareas de administración cuando sea necesario.
El sistema Linux nos proporciona dos comandos su y sudo: el comando su se usa principalmente para cambiar de usuario y el comando sudo se usa para aumentar la autoridad de ejecución.

2.1 Utilice el comando su para cambiar de usuario

1) Finalidad y uso

作用:切换用户
格式:su [-] 目标用户    #带“-”表示使用目标用户的登录shell环境,不加环境变量不变。
可登录的用户一般分两种种,超级用户root、普通用户。
当root切换到任意的用户时,不需要密码。
但当普通用户切换其他用户的时候,需要输入目标用户的密码进行验证。

Inserte la descripción de la imagen aquí

2) Restrinja a los usuarios que usan el comando su
Paso 1: agregue usuarios que pueden usar el comando su al grupo de ruedas

gpasswd -a 用户 wheel    #添加用户到wheel组中
grep wheel /etc/group    #确定wheel组成员

Inserte la descripción de la imagen aquí
Paso 2: Modifique la configuración de autenticación /etc/pam.d/su para habilitar la autenticación pam_wheel

vim /etc/pam.d/su     #编辑/etc/pam.d/su文件
auth sufficient pam_rootok.so  
#pam_rootok.so模块的主要作用是使uid为0的用户root能够直接通过认证而不用输入密码
...      #省略部分
auth required pam_wheel.so use_uid 
 #pam_wheel.so作用是让wheel组内的用户使用su命令,其他人(包括root)无法使用su命令

每种状态的解释:
两行都注释:所有用户都能使用su命令,切换时root和普通用户都需要密码验证
开启第二行,注释第六行:(默认状态)允许所有用户间使用su命令进行切换的,切换时,root不需要密码,其他用户需要密码。
注释第二行,开启第六行:只有wheel组内的用户才能使用su命令,root用户也无法切换。
两行都开启:只有root用户和wheel组内的用户才可以使用su命令。

Inserte la descripción de la imagen aquí
Ejemplo: Modifique el documento para eliminar el comentario "#" delante del comando y guárdelo con "wq"
3) Ver el registro de su operación
/ var / log / secure es el registro de seguridad de su, y la operación de conmutación los usuarios que utilicen el comando su serán registrados. Por lo tanto, puede verificar este archivo para ver el registro.

例:cat /var/log/secure  

Ver / var / log / archivo seguro
Inserte la descripción de la imagen aquí

2.2 Certificación de seguridad PAM

  • Linux-PAM es un módulo de autenticación conectable a Linux, un conjunto de bibliotecas compartidas personalizables y cargables dinámicamente, de modo que el administrador del sistema local puede elegir el método de autenticación del programa a voluntad.
    De forma predeterminada, cualquier usuario puede usar el comando su y tiene la oportunidad de probar repetidamente la contraseña de inicio de sesión de otros usuarios (como root), lo que conlleva riesgos de seguridad.
  • Para fortalecer el control del uso del comando su, el módulo de autenticación PAM se puede usar para permitir que solo unos pocos usuarios usen el comando su para cambiar

1) PAM y su función

PAM es un módulo de autenticación conectable a Linux, un conjunto de bibliotecas compartidas personalizables y cargables dinámicamente. El administrador del sistema puede elegir el método de autenticación del programa a voluntad a través del archivo de configuración de PAM.
El archivo de configuración de PAM se encuentra en el directorio /etc/pam.d, y el módulo de autenticación local de CentOS7 se encuentra en / lib64 / security. Si desea saber cuáles son, puede usar ls para ver.

2) Principio de autenticación PAM

  • Generalmente siga la orden
    Servicio (servicio) -> PAM (archivo de configuración) -> pam _ *. Entonces
  • PAM primero determina qué servicio, luego carga el archivo de configuración PAM correspondiente y finalmente llama al módulo de autenticación PAM para la autenticación de seguridad.
  • Cuando un usuario accede al servidor, un determinado programa de servicio del servidor envía la solicitud del usuario al módulo PAM para su autenticación.
  • Los módulos PAM correspondientes a la misma aplicación también son diferentes
如果想查看某个程序是否支持 PAM 认证,可以用 ls 命令进行查看/etc/pam.d/。
示例:查看su是否支持PAM模块认证
ls /etc/pam.d | grep su

Inserte la descripción de la imagen aquí

3) La composición de la certificación PAM

  • Cada línea es una autenticación y un proceso independientes, que son llamados por el módulo PAM en orden de arriba a abajo.
  • Cada línea tiene tres particiones: tipo de autenticación, tipo de control, módulo PAM, parámetros del módulo PAM. Para
    ver un archivo de configuración de inicio de sesión, primero cd /etc/pam.d/, ls para ver cuáles están disponibles y cat selecciona una.
    Inserte la descripción de la imagen aquí
    Explicación de cada partición
    Primera columna: PAM tiene los siguientes cuatro tipos de módulos, que representan cuatro tareas diferentes
Tipo de módulo de autenticación efecto
auth Identifique la identidad del usuario, si se le solicita que ingrese una contraseña, determine si es root.
cuenta Verifique los diversos atributos de la cuenta, como si está permitido iniciar sesión en el sistema, si la cuenta ha caducado, si se ha alcanzado el número máximo de usuarios, etc.
contraseña Utilice la información del usuario para actualizar datos, como cambiar las contraseñas de los usuarios.
sesión Defina la gestión de operaciones de la sesión que se realizará antes del inicio de sesión y después del cierre de sesión, como la información de conexión de inicio de sesión, la apertura y cierre de los datos del usuario y el montaje del sistema de archivos.

La segunda columna: PAM usa el tipo de control para procesar y juzgar el valor de retorno de cada módulo.

Tipo de control efecto
requerido Se debe devolver un valor de éxito. Si falla, el resultado de falla no se devolverá inmediatamente, pero continuará la siguiente verificación del mismo tipo. Después de que se ejecuten todos los módulos de este tipo, se devolverá la falla. El éxito de la línea y los módulos involucrados es una condición necesaria para que el usuario pase la autenticación
requisito Similar a requerido, pero si este módulo devuelve una falla, regresará inmediatamente e indicará que este tipo ha fallado.
suficiente Si este módulo devuelve éxito, independientemente de la verificación posterior, devuelve el éxito directamente al programa, indicando que la verificación pasó, si la devolución falla, puede considerarse opcional. (Úselo con precaución)
Opcional No devuelve si se ha realizado correctamente o no. Por lo general, no se utiliza para la verificación, sino que solo muestra información (normalmente se utiliza para los tipos de sesión). Independientemente del éxito o el fracaso, continúe verificando el siguiente módulo, y los servicios de este módulo también se pueden disfrutar.
incluir Indica que se llaman a otros archivos de configuración de PAM durante el proceso de verificación. Por ejemplo, muchas aplicaciones implementan la autenticación llamando completamente a /etc/pam.d/system-auth (principalmente responsable de la autenticación del sistema de inicio de sesión del usuario) sin la necesidad de reescribir los elementos de configuración uno por uno.

La tercera columna representa el módulo PAM:

  • El predeterminado está en el directorio / lib64 / security /, si no está en la ruta predeterminada, complete la ruta absoluta

  • El mismo módulo puede aparecer en diferentes tipos de módulo, y realiza diferentes operaciones en diferentes tipos. Esto se debe a que cada módulo tiene diferentes funciones de ejecución para diferentes tipos de módulo. La
    cuarta columna representa el módulo PAM. Los parámetros:

  • Agregar según el módulo utilizado

  • Los parámetros pasados ​​al módulo, puede haber múltiples parámetros, separados por espacios

4) Descripción complementaria de la marca de control

  • required: Indica que el éxito de la línea y el módulo involucrado es una [condición necesaria] para que el usuario pase la autenticación. En otras palabras, solo cuando todos los módulos requeridos correspondientes al programa de aplicación hayan tenido éxito, el programa puede pasar la autenticación. Al mismo tiempo, si algún módulo con la marca requerida tiene un error, PAM no devuelve inmediatamente el mensaje de error al programa de aplicación, sino que devuelve el mensaje de error al programa que lo llamó después de que se hayan llamado todos los módulos de este tipo.
    Para decirlo sin rodeos de todos modos, todos los módulos de este tipo deben ejecutarse una vez. Si alguno de los módulos no logra verificar, la verificación continuará y el mensaje de error se devolverá después de que se complete la ejecución. El propósito de esto es evitar que los usuarios sepan qué módulo son rechazados y proteger los servicios del sistema de forma oculta. Al igual que cuando se configuran las reglas de firewall, las reglas de denegación están configuradas para eliminarse, por lo que los usuarios no pueden determinar con precisión si se les niega o si la red de destino es inaccesible cuando el acceso a la red no tiene éxito.
  • requisito: similar al requerido, solo después de que el módulo con esta marca regrese con éxito, el usuario puede pasar la autenticación. La diferencia es que una vez que falla, ya no ejecuta los otros módulos en el montón, y el proceso de autenticación termina aquí, y el mensaje de error se devuelve inmediatamente. Comparado con lo anterior requerido, parece ser más abierto y justo.
  • Suficiente: Indica que la verificación exitosa de la línea y el módulo involucrado es una [condición suficiente] para que el usuario pase la autenticación. Es decir, siempre que el módulo marcado como suficiente se verifique con éxito, PAM devolverá inmediatamente un resultado exitoso a la aplicación sin tener que probar ningún otro módulo. Es lo mismo incluso si los indicadores de control requeridos o requeridos se utilizan en los módulos en cascada posteriores. Cuando el módulo marcado como suficiente falla, el módulo suficiente se tratará como opcional. Por lo tanto, el elemento de configuración con el bit de bandera suficiente es injusto cuando la verificación se realiza incorrectamente, lo que provoca que falle la verificación completa, pero cuando la verificación es exitosa, la puerta se abre. Por lo tanto, el uso de este bit de control debe ser cauteloso.
  • opcional: Significa que el usuario aún puede pasar la autenticación incluso si falla la verificación del módulo involucrado en la fila. En el sistema PAM, el módulo con esta marca continuará procesando el siguiente módulo después de que falle. Es decir, incluso si falla la verificación del módulo especificado por el banco, el usuario puede disfrutar de los servicios que brinda la aplicación. Con este indicador, el marco PAM ignorará el error de verificación generado por este módulo y continuará ejecutando el siguiente módulo en cascada en secuencia.

5) proceso de certificación de seguridad PAM

Inserte la descripción de la imagen aquí
1. Si la verificación requerida falla, continuará, pero devolverá Falla.
2. Si la verificación requerida falla, el proceso de verificación completo finalizará inmediatamente.
Se devolverá la falla . 3. Si la verificación suficiente es exitosa, regrese inmediatamente y no continúe. De lo contrario, ignore el resultado y continúe.
4. Opcional no se usa para verificación.

3. Cambiar la seguridad de la máquina

3.1 Ajustar la configuración de arranque del BIOS

(1) Configure el primer dispositivo de arranque en el disco duro donde se encuentra el sistema actual.
(2) Está prohibido arrancar el sistema desde otros dispositivos (CD-ROM, U-disk, red) y configurar el elemento correspondiente en "desactivado".
(3) Establezca el nivel de seguridad para configurar y establezca la contraseña de administrador.

3.2 restricciones de GRUB

grub2-mkpasswd-pbkdf2       #使用grub2-mkpasswd-pbkdf2生成密钥

cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.bak
cp /etc/grub.d/00_header /etc/grub.d/00_header.bak

vim /etc/grub.d/00_header       #修改/etc/grub.d/00_header文件,添加密码记录
cat << EOF
set superusers="root"					#设置用户名为root
password_pbkdf2 root grub.pbkdf2……		#设置密码,省略部分内容为经过加密生成的密码字符串
EOF

grub2-mkconfig -o /boot/grub2/grub.cfg	#生成新的 grub.cfg 文件
1
2
3
4
5
6
7
8
9
10
11
12
在linux系统重启时,看最下面有一行,按“e”可以进入grub菜单。

Inserte la descripción de la imagen aquí
Después de ingresar al menú de grub, todos pueden modificar los parámetros de arranque de grub. Este es un gran peligro oculto, por lo que necesitamos un grup para agregar una restricción. Se puede establecer una contraseña para el menú de GRUB y solo se permite la contraseña correcta para modificar los parámetros de arranque.
Inserte la descripción de la imagen aquí
(1) Utilice grub2-mkpasswd-pbkdf2 para generar una clave

grub2-mkpasswd-pbkdf2


Inserte la descripción de la imagen aquí
Debe ingresar la contraseña dos veces y generar la clave basada en la contraseña ingresada. 2) Modifique el archivo /etc/grub.d/00_header y agregue un registro de contraseña.
Haga una copia de seguridad del archivo antes de modificarlo para evitar problemas y restaurar eso. Aquí se hace una copia de seguridad del grup.cfg del tercer paso.
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
3) Genere un nuevo archivo de configuración grub.cfg
Inserte la descripción de la imagen aquí
4) Reinicie el sistema init 6, presione "e" en la interfaz correspondiente y aparecerá la siguiente interfaz: Ingrese el nombre de usuario y la contraseña cuando se le solicite para ingresar al menú de grub.
Inserte la descripción de la imagen aquí

4. Control de seguridad de inicio de sesión en la terminal

1. Restringir root para iniciar sesión solo en terminales seguras

  • Configuración de terminal segura: / etc / securetty
[root@localhost ~]# vim /etc/securetty
#tty5        #禁止root用户从终端tty5,tty6登录
#tty6

2. Prohibir que los usuarios normales inicien sesión

Cree el archivo / etc / nologin,
elimine el archivo nologin o reinícielo, volverá a la normalidad

touch /etc/nologin			#禁止普通用户登录
rm -rf /etc/nologin			#取消登录限制

Supongo que te gusta

Origin blog.csdn.net/zhangyuebk/article/details/113781091
Recomendado
Clasificación