系统安全及应用

一回顾

建立用户:useradd  mg

账户锁定:   passwd  -l   用户名           usermod  -l   用户名

账户解锁:passwd  -u    用户名        usermod  -u   用户名

删除用户:userdel 用户

查看:cat  /etc/passwd

切换用户:su

非登录用户设置为不能登录

usermod   -s   nologin  用户名

chatter  锁定重要账户文件

-i

-a


lsattr /etc/passwd /etc/shadow                #查看文件的状态
chattr +i /etc/passwd /etc/shadow            #锁定文件
chattr -i /etc/passwd /etc/shadow            #解锁文件

系统安全及应用_第1张图片 

清除历史记录
查看历史输入指令       history 

history记录存放过文件  ~/.bash_history

临时清空               history   -c

永久清空             echo " ">~/.bash_history

退出后清除            vim .bash_logout    

开机后清除            vim .bashrc    

使用su   切换用户

①即 switch user,切换用户身份,并且以指定用户的身份执行命令

su 目标用户:非登录式切换,即不会读取目标用户的配置文件,不改变当前工作目录,即不完全切换
su - 目标用户:登录式切换,会读取目标用户的配置文件,切换至自已的家目录,即完全切换


②密码验证


root ->任意用户,不验证密码
普通用户->其他用户,验证目标用户密码
su 切换新用户后,使用 exit 退回至旧的用户身份,而不要再用 su 切换至旧用户,否则会生成很多的bash子进程,环境可能会混乱。

③限制使用su命令的用户
将允许使用su命令的用户加入wheel组
 

Linux中的PAM安全认证

1、su命令的安全隐患
  • 默认情况下,任何用户都允许使用 su命令,有机会反复尝试其他用户(如root)的登录密码,带来安全风险

  • 为了加强su 命令的使用控制,可借助于PAM认证模块,只允许极个别用户使用su命令进行切换
2 PAM可插拔式认证模块
  • 是一种高效而且灵活的用户级别的认证方式
  • 也是当前Linux服务器普遍使用的认证方式
3 PAM的文件
  • /usr/lib64/security :存放功能模块
  • /etc/pam.d/ :配置文件
  • /etc/security :复杂的配置文件
3 PAM认证原理


当用户来访问某一程序的时候,如果这个程序启用了pam模块,会先去读取配置文件,然后按照配置文件调用模块,进行操作。

PAM认证一般遵循的顺序:Service(服务)–>PAM(配置文件)–>pam_*.so
PAM认证首先要确定哪一项服务,然后加载相应的PAM的配置文件(位于/etc/pam.d下),最后调用认证文件(位于/lib64/security下)进行安全认证
用户访问服务器时,服务器的某一个服务程序把用户的请求发送到PAM模块进行认证
不同的应用程序所对应的PAM模块是不同


4 PAM认证的构成


查看某个程序是否支持PAM认证,可以用ls命令
格式:ls   /etc/pam.d | grep su
查看su的PAM配置文件:cat   /etc/pam.d/su


二 PAM安全认证流程


控制类型用于PAM验证类型的返回结果

required:一票否决,如果失败,最后一定会失败,但是会继续验证
requisite:一票否决,如果失败,会立即结束验证,反馈失败
sufficient:验证成功则立即返回,不再继续,否则忽略结果并继续
optional:不用于验证,只显示信息

6  limit

可打开的文件数量,可运行的进程数量,可用内存空间

7  ulimit

(修改限制的实现方式)
ulimit是linux shell的内置命令,它具有一套参数集,用于对shell进程及其子进程进行资源限制。

ulimit的设定值是 per-process 的,也就是说,每个进程有自己的limits值。使用ulimit进行修改,立即生效。

ab -c1025 -n 2000 http://192.168.10.11/    #使用压力测试工具进行测试  打开的文件数

vim /etc/security/limits.conf   #永久修改不用重启(软硬一起设置可以直接使用-)

1 sudo 命令的特性


①sudo能够授权指定用户在指定主机上运行某些命令。如果未授权用户尝试使用 sudo,会提示联系管理员
②sudo提供了丰富的日志,详细地记录了每个用户干了什么。它能够将日志传到中心主机或者日志服务器
③sudo使用时间戳文件来执行类似的“检票”系统。当用户调用sudo并且输入它的密码时,用户获得了一张存活期为5分钟的票
④sudo的配置文件是sudoers文件,它允许系统管理员集中的管理用户的使用权限和使用的主机。它所存放的位置默认是在/etc/sudoers,属性必须为0440


2、配置sudo授权


visudo或vi /etc/sudoers #此文件的默认权限为440,保存退出时必须执行“wq!”,强制保存退出

3 sudo指令格式

用户

主机名

命令程序列表

可使用通配符“ * ”表示所有,取反符号“!”表示排除

面试题  Jerry localhost=/sbin/*,!/sbin/poweroff

表示jerry用户操作localhost主机可使用sbin目录下的除poweroff以外的所有命令

要点:Jerry仍可使用init、shutdown等命令执行关机操作,因此限制命令需做到全面无漏,否则限制影响十分有限。


设置别名

格式:大写,数字可以使用但是不能使用

使用关键字User_Alias(用户)、Runas_Alias(代表用户)、Host_Alias(登录主机)、Cmds_Alias(命令)来进行设置别名

User_Alias USERS=Tom,Jerry,Mike

Host_Alias HOSTS=localhost,bogon

Cmnd_Alias CMDS=/sbin/ifconfig,/usr/sbin/useradd,/usr/sbin/userdel

USERS HOST=CMDS

root  ALL=(ALL)  ALL
用户   主机名ip=    命令
密码验证


①正常情况下,第一次使用sudo命令需输入密码验证,有效期为五分钟,过期后使用sudo需再次输入密码验证。

②可以设置特定用户无需密码验证

Mike ALL=(ROOT)NOPASSWD:/bin/kill,/usr/bin/killall

③也可设置组用户无需密码验证

%wheel ALL=NOPASSWD:ALL

④以及所有用户无需密码验证

USERS HOSTS=NOPASSWD:CMDS

6、查看sudo操作记录:需启用Defaults logfile配置

/var/log/sudo    #默认日志文件

visudo            #进入sudo配置文件

Defaults logfile="/var/log/sudo"     #启动Defaults logfile

tail /var/log/sudo                    #查看sudo末尾10行记录

三  开/关机安全控制


① 调整BIOS引导设置


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


② GRUB限制


通常情况下,在系统开机进入GRUB菜单时,按e键可以查看并修改GRUB引导参数,也可进入急救模式修改用户密码,这对服务器是一个极大的安全威胁。为此,可以为GRUB菜单设置一个密码,只有提供正确的密码才被允许修改引导参数。


③在/etc/grub.d/00_header文件中添加用户和PBKDF2加密口令的格式如下

使用grub2-mkpasswd-pbkdf2生成密钥

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

生成新的grub.cfg配置文件

grub2-mkpasswd-pbkdf2  #根据提示设置GRUB菜单的密码

PBKDF2 hash of your password is grub.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

cat << EOF

set superusers="root"                   #设置登录用户为 root

password_pbkdf2 root grub.pbkdf2……      # 设置密码,省略部分内容为经过加密生成的密码字符串

EOF

grub2-mkconfig -o /boot/grub2/grub.cfg        # 生成新的grub.cfg配置文件

完成配置修改工作,重启后进入GRUB菜单时,按e键将需要输入账号密码才能修改引导参数。

grub2-setpassword            #直接设置密码

1  限制root只在安全终端登录:


①安全终端配置      /etc/securetty         vi /etc/securetty

②将tty5,tty6前加 “#” 将其注释,表示禁止root用户从终端tty5,tty6登录

 2  禁止普通用户登录

①touch /etc/nologin

②删除nologin文件或重启后即恢复正常(rm -rf /etc/nologin)

五 弱口令检测


1 暴力破解工具-JR
John the Ripper是一款开源的密码破解工具,可使用密码字典(包含各种密码组合的列表文件)来进行暴力破解。通过对shadow文件的口令分析,可以检测密码强度。
官方网站:http://www.openwall.com/john/
2 安装JR工具
安装方法:make clean 系统类型
主程序文件为john
3 检测弱口令账号
获得Linux/Unix服务器的shadow文件
执行john程序,将shadow文件作为参数
4 密码文件的暴力破解
准备好密码子弹文件,默认为password.lst
执行john程序,结合–wordlist=字典文件
5 模拟暴破步骤

cd /opt
tar zxf john-1.8.0.tar.gz    #解压工具包

yum install -y gcc gcc-c++ make    #安装软件编译工具

cd /opt/john-1.8.0/src             #切换到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.list /opt/shadow.txt #使用指定的字典文件进行破解
网络扫描工具-NMAP
  • NMAP是一个强大的端口扫描类安全评测工具,支持ping扫描、多端口检测等多种技术。
安装NMAP软件包
rpm -qa | grep nmap   #检查是否已安装

yum install -y namp   #若未安装,进行yum安装

你可能感兴趣的:(系统安全,安全)