Linux基础知识------系统安全及应用(教你如何删除历史记录,暴力破解密码)

目录

一、账号安全控制

(一)系统账号清理

1、将非登录用户的Shell设为/sbin/nologin

usermod -s /sbin/nologin用户名 

2、锁定长期不使用的账号

usermod -L用户名 passwd-l 用户名 --------------锁定账号

passwd-S用户名 ----------------------------查看用户状态 passwd -u 用户名 ------------------------------------解锁账号 

3、删除无用的账号

userdel -r 用户名

4、锁定账号文件passwd、shadow

chattr +i /etc/passwd /etc/shadow --------------锁定文件 Isattr /etc/passwd /etc/shadow-----------------------查看状态 chattr -i /etc/passwd /etc/shadow-----------------解锁文件 
Linux基础知识------系统安全及应用(教你如何删除历史记录,暴力破解密码)

(二)密码安全控制

1、设置密码有效期

[root@localhost ~]# vi /etc/login.defs----------------修改密码配置文件,适用于新建用户 PASS_ MAX_ DAYS 30  [root@localhost ~]# chage -M 30 zhangsan-----------适用于已有用户 
Linux基础知识------系统安全及应用(教你如何删除历史记录,暴力破解密码)
Linux基础知识------系统安全及应用(教你如何删除历史记录,暴力破解密码)

2、要求用户下次登录时修改密码

[root@localhost ~]# chage -d 0 zhangsan-------------强制在下次登录时更改密码 [root@localhost ~]# cat /etc/shadow | grep zhangsan--------------shadow文件中的第三个字段被修改为 
Linux基础知识------系统安全及应用(教你如何删除历史记录,暴力破解密码)

(三)命令历史限制

1、减少记录的命令条数

[root@localhost ~]# vi /etc/profile----------------系统环境变量配置文件(所有用户登录都会执行) export HISTSIZE=200 
Linux基础知识------系统安全及应用(教你如何删除历史记录,暴力破解密码)
Linux基础知识------系统安全及应用(教你如何删除历史记录,暴力破解密码)

2、登录时自动清空命令历史

[root@localhost ~]# vi ~/.bashrc echo “” > ~/.bash_ history 
Linux基础知识------系统安全及应用(教你如何删除历史记录,暴力破解密码) Linux基础知识------系统安全及应用(教你如何删除历史记录,暴力破解密码)

(四)终端自动注销

1、闲置600秒后自动注销

[root@localhost ~]# vi letc/profile export TMQUT=600 [root@localhost ~]# source /etc/profile 
Linux基础知识------系统安全及应用(教你如何删除历史记录,暴力破解密码) Linux基础知识------系统安全及应用(教你如何删除历史记录,暴力破解密码)

二、使用su命令切换用户

(一)用途用法及密码验证

▶作用:切换用户
▶格式:su [-] 目标用户 #带“-”表示使用目标用户的登录shell环境,不加环境变量不变。
▶可登录的用户一般分两种种,超级用户root、普通用户。
▶当root切换到任意的用户时,不需要密码。但当普通用户切换其他用户的时候,需要输入目标用户的密码进行验证。
Linux基础知识------系统安全及应用(教你如何删除历史记录,暴力破解密码)

(二)限制使用su命令的用户

1、将允许使用su命令的用户加入wheel组

gpasswd -a 用户 wheel    #添加用户到wheel组中 grep wheel /etc/group    #确定wheel组成员 
Linux基础知识------系统安全及应用(教你如何删除历史记录,暴力破解密码)

2、修改/etc/pam.d/su认证配置启用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命令。  
Linux基础知识------系统安全及应用(教你如何删除历史记录,暴力破解密码)
修改文档将命令前面的注释符“#”删除,并“wq”保存。
Linux基础知识------系统安全及应用(教你如何删除历史记录,暴力破解密码)

(三)查看su操作记录

1、安全日志文件—/var/log/secure

Linux基础知识------系统安全及应用(教你如何删除历史记录,暴力破解密码)

三、Linux中的PAM安全认证

(一)PAM安全认证流程

Linux基础知识------系统安全及应用(教你如何删除历史记录,暴力破解密码)

(二)PAM认证原理

▶PAM认证顺序:Service(服务)—>PAM(配置文件)—>pam_*.so
▶PAM首先确定服务,然后加载相应的PAM配置文件,最后调用PAM认证模块进行安全认证。
用户访问服务器的时候,服务器的某一个服务程序把用户的请求发送到PAM模块进行认证。不同的应用程序所对应的PAM 模块也是不同的。

四、使用sudo机制提升权限

(一)sudo命令的用途及用法

▶作用:提升执行权限(使用其他用户的身份执行)
▶用法:sudo 授权命令

(二)配置sudo授权

1、visudo或vi /etc/sudoers

vi /etc/sudoers----此文件默认权限为440,保存退出时必须执行wq!强制操作

2、记录格式

用户 主机名=命令程序列表

3、语法格式

用户 主机名=命令程序列表
用户 主机名=(用户)命令程序列表

用户:直接授权指定的用户名,或采用“%组名"的形式(授权一个组的所有用户)
主机名:使用此规则的主机名。没配置过主机名时可用localhost,有配过主机名则用实际的主机名,ALL则代表所有主机
(用户): 用户能够以何种身份来执行命令。此项可 省略,缺省时以root用户的身份来运行命令
命令程序列表:允许授权的用户通过sudo方式执行的特权命令,需填写命令程序的完整路径,多个命令之间以逗号“,"进行分隔。ALL则代表系统所有命令
Linux基础知识------系统安全及应用(教你如何删除历史记录,暴力破解密码)
Linux基础知识------系统安全及应用(教你如何删除历史记录,暴力破解密码)
Linux基础知识------系统安全及应用(教你如何删除历史记录,暴力破解密码)

Linux基础知识------系统安全及应用(教你如何删除历史记录,暴力破解密码)

4、设置别名

输入时,有时候有些用户、主机名或命令字符比较长或复杂,可以设置一个别名,方便省力。

使用关键字 User_Alias、Host_Alias、Cmnd_Alias 来进行设置别名(别名必须为大写) 多个信息需要用“,”隔开。 User_Alias USERS=用户名1,用户名2,用户名3        #用户别名,USERS代表后面三个用户 Host_Alias HOSTS=localhost,bogon              #主机别名 Cmnd_Alias CMNDS=/sbin/ifconfig,/usr/sbin/useradd,/usr/sbin/userdel  #命令别名 USERS HOSTS=CMNDS   #使用别名编写授权 
Linux基础知识------系统安全及应用(教你如何删除历史记录,暴力破解密码)

(三)查看sudo操作记录

1、需要启动Defaults logfile配置

Linux基础知识------系统安全及应用(教你如何删除历史记录,暴力破解密码)
Linux基础知识------系统安全及应用(教你如何删除历史记录,暴力破解密码)

2、默认日志文件在"/var/log/sudo"

Linux基础知识------系统安全及应用(教你如何删除历史记录,暴力破解密码)
Linux基础知识------系统安全及应用(教你如何删除历史记录,暴力破解密码)

(四)查询授权的sudo操作

Linux基础知识------系统安全及应用(教你如何删除历史记录,暴力破解密码)

五、开关机安全控制

(一)调整BIOS引导设置

▶将第一引导设备设为当前系统所在硬盘
▶禁止从其他设备(光盘、U盘、网络)引导系统
▶将安全级别设为setup,并设置管理员密码

(二)GRUB限制

▶使用grub2-mkpasswd-pbkdf2生成密钥
▶修改/etc/grub.d/00_ header文件中, 添加密码记录
▶生成新的grub.cfg配置文件

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、使用grub2-mkpasswd-pbkdf2生成密钥

Linux基础知识------系统安全及应用(教你如何删除历史记录,暴力破解密码)

2、修改/etc/grub.d/00_header文件,添加密码记录

修改文件前备份文件,防止出现问题好恢复。这里将第三步的grup.cfg一起备份了
Linux基础知识------系统安全及应用(教你如何删除历史记录,暴力破解密码)

Linux基础知识------系统安全及应用(教你如何删除历史记录,暴力破解密码)

3、生成新的grub.cfg配置文件

Linux基础知识------系统安全及应用(教你如何删除历史记录,暴力破解密码)
重启系统init 6,在相应界面按“e”,会跳出下图界面,按照提示输入用户名和密码才可以进入grub菜单。
Linux基础知识------系统安全及应用(教你如何删除历史记录,暴力破解密码) Linux基础知识------系统安全及应用(教你如何删除历史记录,暴力破解密码)

六、终端登录安全控制

(一)限制root只在安全端登录

1、安全终端配置:/etc/securetty

vi /etc/securetty ..... #tty5 #tty6   #禁止root用户从终端tty5、tty6登录 

(二)禁止普通用户登录

1、建立 /etc/nologin文件

2、删除 nologin 文件或重启后即恢复正常

[root@localhost ~]# touch  /etc/nologin     #禁止普通用户登录 [root@localhost ~]#  rm  -f  /etc/nologin    #取消上述登录限制 
Linux基础知识------系统安全及应用(教你如何删除历史记录,暴力破解密码)

七、系统弱口令检测

一款密码分析工具,支持字典式的暴力破解。通过对shadow文件的口令分析,可以检测密码强度。

---解压工具包---- cd  /opt tar  zxf  john-1.8.0.tar.gz ---安装软件编译工具--- yum  install  -y  gcc  gcc-c++  make ---切换到src子目录--- cd  /opt/john-1.8.0/src ---进行编译安装--- make  clean  linux-x86-64 ---准备待破解的密码文件--- cp   /etc/shadow   /opt/shadow. txt ---执行暴力破解--- cd  /opt/john-1.8.0/run ./john  /opt/shadow.txt ---查看已破解出的账户列表--- ./john  --show  /opt/shadow. txt   ---使用密码字典文件--- > john.pot         #清空已破解出的账户列表,以便重新分析 ./john  --wordlist=./password.lst  /opt/shadow.txt       #使用指定的字典文件进行破解  

1、解压工具包到opt目录下

Linux基础知识------系统安全及应用(教你如何删除历史记录,暴力破解密码)

2、将本地磁盘挂载到/mnt目录下,然后安装安装软件编译工具

Linux基础知识------系统安全及应用(教你如何删除历史记录,暴力破解密码)

3、切换到scr子目录进行编译安装

Linux基础知识------系统安全及应用(教你如何删除历史记录,暴力破解密码)

4、准备待破解的密码文件,然后去到 /opt/john-1.9.0/run子目录下执行强制破解,/john --show /opt/shadow.txt查询已破解出的账号列表

Linux基础知识------系统安全及应用(教你如何删除历史记录,暴力破解密码)
Linux基础知识------系统安全及应用(教你如何删除历史记录,暴力破解密码)

5、若字典中没有此密码,则添加

Linux基础知识------系统安全及应用(教你如何删除历史记录,暴力破解密码) Linux基础知识------系统安全及应用(教你如何删除历史记录,暴力破解密码)
Linux基础知识------系统安全及应用(教你如何删除历史记录,暴力破解密码) Linux基础知识------系统安全及应用(教你如何删除历史记录,暴力破解密码)

八、网络端口扫描------NMAP

(一)安装 NMAP 软件包

mount /dev/sr0 /mnt       #先进行本地磁盘挂载 yum install -y nmap       #然后安装nmap软件包 
Linux基础知识------系统安全及应用(教你如何删除历史记录,暴力破解密码)

(二)nmap命令常用选项与对应扫描类型

选项 说明
-p 指定扫描的端口
-n 禁用反向 DNS 解析(以加快扫描速度)
-sS SYN数据包,如果收到SYN/ACK响应包就认为目标端口正在监听,并立即断开连接;否则认为目标端口并未开放
-sT TCP连接扫描,这是完整的TCP扫描方式(默认扫描类型),用来建立一个TCP连接,如果成功则认为目标端口正在监听服务,否则认为目标端口并未开放
-sF TCP的FIN扫描,开放的端口会忽略这种数据包,关闭的端口会回应RST数据包。许多防火墙只对SYN数据包进行简单过滤,而忽略了其他形式的 TCP 攻击包这种类型的扫描可间接检测防火墙的健壮性
-sU UDP 服务,UDP 扫描的速度会比较慢
-s ICMP 扫描,类似于 ping 检测,快速判断目标主机是否存活,不做其他扫描
-P0 跳过ping检测,这种方式认为所有的目标主机是存活的,当对方不响应ICMP请求时,使用这种方式可以避免因无法 ping 通而放弃扫描
Linux基础知识------系统安全及应用(教你如何删除历史记录,暴力破解密码)
Linux基础知识------系统安全及应用(教你如何删除历史记录,暴力破解密码)
Linux基础知识------系统安全及应用(教你如何删除历史记录,暴力破解密码)