Aplicación de seguridad del sistema

 

1. Implementación de seguridad básica

1. Bloquear usuarios y bloquear archivos

1) Bloquear cuenta

[root@localhost ~]# usermod -L lisi       //锁定账户
[root@localhost ~]# passwd -S lisi       //查看账户状态
lisi LK 1969-12-31 0 99999 7 -1 (密码已被锁定。)
[root@localhost ~]# usermod -U lisi     //解锁
[root@localhost ~]# passwd -S lisi 
lisi PS 1969-12-31 0 99999 7 -1 (密码已设置,使用 SHA512 算法。)

2) Bloquear el archivo

Después de bloquear los archivos / etc / passwd y / etc / passwd, no se puede ejecutar la creación de usuarios y la asignación de contraseñas. 

[root@localhost ~]# chattr +i /etc/passwd /etc/passwd      //锁定文件
[root@localhost ~]# lsattr /etc/passwd /etc/passwd        //查看锁定文件状态
----i----------- /etc/passwd
----i----------- /etc/passwd
[root@localhost ~]# useradd zhangsan     //锁定文件后创建用户和赋予密码都执行不能执行了              
useradd:无法打开 /etc/passwd
[root@localhost ~]# chattr -i /etc/passwd /etc/passwd     //解锁文件
[root@localhost ~]# useradd zhangsan
[root@localhost ~]# passwd zhangsan
更改用户 zhangsan 的密码 。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。

2. Control de contraseña de seguridad

1) Establezca el período de validez de la contraseña (el cambio se usa para establecer el límite de tiempo de la contraseña)

[root@localhost ~]# vim /etc/login.defs       //针对新用户
PASS_MAX_DAYS   7                            //更改密码有效期为7天
[root@localhost ~]# chage -M 77 zhangsan    //针对已有用户,有效期为77天
[root@localhost ~]# tail /etc/shadow        //查看

2) Configure la contraseña para cambiar la próxima vez que inicie sesión; de lo contrario, se negará a iniciar sesión

[root@localhost ~]# chage -d 0 zhangsan  //下次登录时重设置密码

3. Comandos de historial, cierre de sesión automático

1) Modificar el número de comandos históricos

En el entorno de la terminal bash, el registro de comandos históricos está controlado por la variable HISTSIZE, que por defecto es 1000. Puede cambiar el contenido del archivo / etc / profile para establecer el número de comandos históricos.

[root@localhost ~]# vim /etc/profile //针对新用户
HISTSIZE=500                       //修改为500条历史命令

[root@localhost ~]# export HISTSIZE=200  //针对已有用户,修改为200条

2) Después de salir del entorno bash, los comandos del historial se borran automáticamente

Modifique el archivo ~ / .bash_logout del directorio de host y agregue instrucciones de operación para borrar los comandos del historial

[root@localhost ~]# vim ~/.bash_logout
history -c
clear
[root@localhost ~]# source .bash_logout //刷新

3) Establecer el período de tiempo de espera

El tiempo de espera de inactividad está controlado por la variable TMOUT, la unidad predeterminada es segundo (s), cambie la configuración del archivo / etc / profile

[root@localhost ~]# vim /etc/profile    //针对新用户
export TMOUT=600                      //600秒无人操作自动注销终端
[root@localhost ~]# export TMOUT=600 //针对已有用户

4. Cambio de usuario

1) su usuario de cambio de comando

[root@localhost ~]# su zhangsan
[zhangsan@localhost root]$ su root
密码:

2) Configure usuarios individuales para usar el comando su

Con el módulo de autenticación pam-wheel, solo los usuarios individuales pueden usar el comando su, y puede modificar /etc/pam.d/su para habilitar pam-wheel

[root@localhost ~]# gpasswd -a zhangsan wheel   //添加用户到wheel组里面
正在将用户“zhangsan”加入到“wheel”组中
[root@localhost ~]# grep wheel /etc/group        //验证是否是wheel组成员
wheel:x:10:zhangsan

[root@localhost ~]# vim /etc/pam.d/su           
auth            required        pam_wheel.so use_uid    
//去#号,去掉以后表示只有wheel组成员才能使用su命令

[lisi@localhost root]$ su root  //测试
密码:
su: 拒绝权限

5. Eleve el comando de autoridad de ejecución-sudo

1) Permisos de configuración de usuario

En el archivo de configuración / etc / sudoers , el formato de autorización es

COMANDOS DE LA MÁQUINA del usuario

La autorización incluye principalmente tres partes: usuario, host y comando

Usuario (usuario): autoriza directamente el nombre de usuario especificado, o usa la forma de "% nombre de grupo" (autoriza a todos los usuarios del grupo)

Host (MACHINE): use el nombre de host de este archivo de configuración, que es principalmente conveniente para que varios hosts compartan un archivo sudoers, generalmente establezca localhost o el nombre de host real

Comando (COMANDOS): complete la ruta completa del programa de comando, separada por "," comas

[root@localhost ~]# vim /etc/sudoers
zhangsan localhost.localdomain=/sbin/ifconfig    //设置zhangsan有使用ifcfing命令的权限
%wheel ALL=NOPASSWD:ALL    //设置wheel组里面成员不用使用密码,zhangsan没加组里,所以下面需要密码

[root@localhost ~]# su zhangsan
[zhangsan@localhost root]$ sudo ifconfig ens33 192.168.1.1 //使用命令前加sudo

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.

[sudo] password for zhangsan:  //zhangsan密码

Nota: 

Debe agregar sudo antes de usar el comando sudo

El comando sudo permite el uso de comodines "*" y negación "!"

2) Verifique qué permisos de sudo ha obtenido el usuario

[root@localhost ~]#  sudo -l

 Si habilita el registro, puede ver el registro de la operación sudo desde el archivo / var / log / sudo /

[root@localhost ~]# tail /var/log/sudo

 Dos, control de inicio de sesión y arranque del sistema

1. Prohibir el reinicio de las teclas de método abreviado

[root@localhost ~]# ll /usr/lib/systemd/system/ctrl-alt-del.target //查看是链接文件
lrwxrwxrwx. 1 root root 13 5月   7 2018 /usr/lib/systemd/system/ctrl-alt-del.target -> reboot.target
[root@localhost ~]# systemctl mask ctrl-alt-del.target  //注销ctrl-alt-del.target
Created symlink from /etc/systemd/system/ctrl-alt-del.target to /dev/null.
[root@localhost ~]# systemctl daemon-reload  //重新加载system配置

2. Establecer la contraseña de GRUB

Establezca la contraseña a utilizar, se genera el comando grub2-mkpasswd-pbkdf2 y la contraseña generada se almacena en el archivo de configuración /etc/grub.d/00_header.

[root@localhost ~]# grub2-mkpasswd-pbkdf2 
输入口令:    //设置密码
Reenter password: 
PBKDF2 hash of your password is grub.pbkdf2.sha512.10000.37B241BE7B9B7AA1FE3631633F2B9FACF0C68133C8D53DF1BCDFA029A5E75B6031D99736281F45EDE65737D4145719C4A18D4F26948C9B85F1C3EE1F6DDECA5C.21F50377A7E3D5BD8C60C5FD580C48A3518AEF747E21A7D0449C9F0B5EC589FB50B8EA0D531279B7C78A15C1867D70F68E1A7BA1B8E59BACDE77CDC1F96B465A
[root@localhost ~]# cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.bak   //备份
[root@localhost ~]# cp /etc/grub.d/00_header /etc/grub.d/00_header.bak  //备份
[root@localhost ~]# vim /etc/grub.d/00_header  //把经加密后的字符串添加至文件末尾
cat << EOF
set superusers="root"    //用户设置为root
password_pbkdf2 root  grub.pbkdf2.sha512.10000.37B241BE7B9B7AA1FE3631633F2B9FACF0C68133C8D53DF1BCDFA029A5E75B6031D99736281F45EDE65737D4145719C4A18D4F26948C9B85F1C3EE1F6DDECA5C.21F50377A7E3D5BD8C60C5FD580C48A3518AEF747E21A7D0449C9F0B5EC589FB50B8EA0D531279B7C78A15C1867D70F68E1A7BA1B8E59BACDE77CDC1F96B465A
EOF
[root@localhost ~]# grub2-mkconfig -o /boot/grub2/grub.cfg  //生成新grub.cf的文件

3. Control de inicio de sesión en la terminal

1) Prohibir que el usuario root inicie sesión en el terminal

[root@localhost ~]# vim /etc/securetty 
#tty5   //禁止root在5,6终端登录
#tty6

2) Prohibir que los usuarios comunes inicien sesión

Para prohibir que los nuevos usuarios inicien sesión en el sistema, el programa de inicio de sesión verificará si el archivo / etc / noloin existe y, si existe, prohibirá que los nuevos usuarios inicien sesión en el sistema.

[root@localhost ~]# touch /etc/noloin

Tres, detección de contraseña débil, escaneo de puertos

1. Detección de contraseña débil: john the ripper

Instalación del paquete fuente: enlace: https://pan.baidu.com/s/1Sxyr1Vt4Y8WyBhEv6bQk7w 
Código de extracción: a2gt

John the ripper es una herramienta de descifrado de contraseñas de software de código abierto que puede analizar la cadena de contraseña de texto sin formato en el texto cifrado conocido y admite múltiples algoritmos de cifrado.

1) Descarga y compila john the ripper

Después de la descompresión, puede ver que los tres archivos son doc (documento manual), ejecutar (ejecutar programa), src (archivo fuente)

[root@localhost mnt]# tar zxf john-1.8.0.tar.gz -C /usr/src/
[root@localhost mnt]# cd /usr/src/john-1.8.0/
[root@localhost john-1.8.0]# cd src/
[root@localhost src]# make clean linux-x86-64   //编译安装
[root@localhost src]# ls ../run/john      //确认生成可执行john文件
../run/john

2) Detectar contraseñas débiles

Romper el texto sin formato para el archivo de texto cifrado / etc / shadow

[root@localhost src]# cp /etc/shadow /root/shadow.txt   //准备待破解文件
[root@localhost src]# cd .. /run/
[root@localhost john-1.8.0]# cd run/            //执行暴力破解
[root@localhost run]# ./john /root/shadow.txt 
Loaded 3 password hashes with 3 different salts (crypt, generic crypt(3) [?/64])
Press 'q' or Ctrl-C to abort, almost any other key for stat
123456           (root)     //结果
123              (lisi)    //结果


[root@localhost run]# ./john --show /root/shadow.txt   //查看已破解账户列表
root:123456::0:99999:7::: 
lisi:123::0:99999:7:::

2 password hashes cracked, 1 left

3) Utilice un archivo de diccionario de contraseñas

El diccionario de contraseñas es muy importante para el descifrado de contraseñas por fuerza bruta. El archivo de diccionario proporcionado por john the ripper por defecto es password.lst, que enumera 3000 contraseñas débiles comunes. Los usuarios pueden agregar más combinaciones de contraseñas (cumpleaños, cumpleaños, etc.) para descifrar la contraseña. Por supuesto, también puede escribir el diccionario usted mismo. La siguiente demostración es escribir el diccionario usted mismo como aaa.txt

[root@localhost run]# :> john.pot   //清空已破解账户列表
[root@localhost run]# vim aaa.txt   //新建词典
qinziteng
qinziteng666
[root@localhost run]# ./john --wordlist=/aaa.txt /root/shadow.txt 

Nota: --wordlist = seguido del nombre del diccionario, puede usar su propio diccionario o puede escribir su propio diccionario

 2. Escaneo en red - nmap

1) Instalar nmap

[root@localhost yum.repos.d]# yum -y install nmap  //安装nmap

2) Gramática y tipo

El escaneo de Nmap se encuentra en / usr / bin / nmap , el formato de comando es el siguiente

 

nmap [tipo de escaneo] [opciones] <objetivo de escaneo>

Las opciones comunes son

Caso de estudio

Escanear puertos tcp comunes
 

[root@localhost ~]# nmap 127.0.0.1      //扫描常用tcp端口

Starting Nmap 6.40 ( http://nmap.org ) at 2019-12-07 21:41 CST
mass_dns: warning: Unable to determine any DNS servers. Reverse DNS is disabled. Try using --system-dns or specify valid servers with --dns-servers
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000016s latency).
Not shown: 996 closed ports
PORT    STATE SERVICE
22/tcp  open  ssh
25/tcp  open  smtp
111/tcp open  rpcbind
631/tcp open  ipp

Nmap done: 1 IP address (1 host up) scanned in 0.16 seconds

 Escanear puertos udp comunes

[root@localhost ~]# nmap -sU 127.0.0.1   //扫描常用udp端口

Starting Nmap 6.40 ( http://nmap.org ) at 2019-12-07 21:44 CST
mass_dns: warning: Unable to determine any DNS servers. Reverse DNS is disabled. Try using --system-dns or specify valid servers with --dns-servers
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000016s latency).
Not shown: 999 closed ports
PORT     STATE         SERVICE
5353/udp open|filtered zeroconf

Nmap done: 1 IP address (1 host up) scanned in 1.28 seconds

Marque aquellos en el segmento de red 192.168.1.0/24 que brindan servicios ftp -p puertos designados

[root@localhost ~]# nmap -p 21 192.168.1.0/24

Starting Nmap 6.40 ( http://nmap.org ) at 2019-12-07 21:46 CST
setup_target: failed to determine route to 192.168.1.0
setup_target: failed to determine route to 192.168.1.1
setup_target: failed to determine route to 192.168.1.2
setup_target: failed to determine route to 192.168.1.3
setup_target: failed to determine route to 192.168.1.4

Compruebe los hosts supervivientes en el segmento de red 192.168.1.0/24

[root@localhost ~]# nmap -n -sP 192.168.1.0/24192.168.1.0/24

Compruebe qué servicios para compartir archivos están habilitados en 192.168.1.100-200 

[root@localhost ~]# nmap -p 139,445 192.168.1.100-200

 

Supongo que te gusta

Origin blog.csdn.net/weixin_45310323/article/details/103438861
Recomendado
Clasificación