目录
2、PAM(Pluggable Authentication Modules)可插拔式认证模块
一、账号安全基本措施
1、系统账号清理
●将非登录用户的Shell设为/sbin/nologin
●锁定长期不使用的账号
●删除无用的账号
●锁定账号文件passwd、shadow
----将非登录用户的Shell设为/sbin/nologin(禁止用户登录)-----
usermod -s /sbin/nologin 用户名
------锁定和解锁长期不使用的账号-----
[root@localhost ~]# usermod -L user 锁定用户账号方法一
[root@localhost ~]# passwd -l user 锁定用户账号方法二
[root@localhost ~]# usermod -U user 解锁用户账号方法一
[root@localhost ~]# passwd -u user 解锁用户账号方法二
passwd -S 用户名 //查看用户锁定状态
-----删除无用的账号-----
userdel [-r] 用户名
----锁定账号文件passwd、shadow----
锁定文件并查看状态
chattr +i /etc/passwd /etc/shadow
lsattr /etc/passwd /etc/shadow
解锁文件
chattr -i /etc/passwd /etc/shadow
2、密码安全控制
●设置密码有效期
●要求用户下次登录时修改密码
1.这种方法适合修改已经存在的用户
[root@localhost ~]# chage -M 30 user
默认99999天
2.这种适合以后添加新用户
[root@localhost ~]# vim /etc/login.defs
PASS_MAX_DAYS 30
3.强制在下次登录时更改密码
[root@localhost ~]# chage -d 0 zhangsan ##强制在下次登录时更改密码
3、命令历史限制
●减少记录的命令条数
●注销时自动清空命令历史
1、适用于新用户
[root@localhost ~]# vi /etc/profile ## 进入配置文件修改限制命令条数。适合新用户
export HISTSIZE=200 ##修改限制命令为200条,系统默认是1000条profile
[root@localhost ~]# source /etc/profile ## 刷新配置文件,使文件立即生效
2、适用于当前用户
[root@localhost ~]# export HISTSIZE=200 适用于当前用户
[root@localhost ~]# source /etc/profile
[root@localhost ~]# source /etc/profile 刷新配置文件,使文件立即生效
3、登录时自动清空历史命令(永久)
[root@localhost ~]# echo"" > ~/.bash_history
4、登录时自动清空历史命令(临时)
[root@localhost ~]#vim ~/.bash_logout
history -c
clear
4、终端自动注销
●闲置600秒后自动注销
二、使用su命令切换用户
1 、用途及用法
- 用途:Substitute User,切换用户
- 格式:su - 目标用户
2 、密码验证
root->任意用户,不验证密码
普通用户->其他用户,验证目标用户的密码
[jerry@localhost ~]$ su - root ##带-选项表示将使用目标用户的登录Shell环境
口令:
[root@localhost ~]# whoami
root
3、限制使用su命令的用户
- 将允许使用su命令的用户加入wheel组
- 启用pam_wheel认证模块
[root@localhost ~]# gpasswd -a tsengyia wheeltsengyia
正在将用户“tsengyia”加入到“wheel"组中
[root@localhost ~]# vi /etc/pam.d/su
#%PAM-1.O
auth sufficient pam_rootok.so
auth required pam_wheel.so use_uid
以上两行是默认状态(即开启第一行,注释第二行),这种状态下是允许所有用户间使用su命令进行切换的。
两行都注释也是运行所有用户都能使用su命令,但root下使用su切换到其他普通用户需要输入密码:
如果第–行不注释,则root 使用su切换普通用户就不需要输入密码( pam_ rootok. so模块的主要作用是使uid为0的用户,即root用户能够直接通过认证而不用输入密码。)
如果开启第二行,表示只有root用户和wheel1组内的用户才可以使用su命令。
如果注释第一行,开启第二行,表示只有whee1组内的用户才能使用su命令,root用户也被禁用su命令。
三、Linux中的PAM安全认证
1、su命令的安全隐患
●默认情况下,任何用户都允许使用su命令,有机会反复尝试其他用户(如root)的登录密码,带来安全风险
●为了加强su命令的使用控制,可借助于PAM认证模块,只允许极个别用户使用su命令进行切换
2、PAM(Pluggable Authentication Modules)可插拔式认证模块
●是一种高效而且灵活便利的用户级别的认证方式
也是当前Linux服务器普遍使用的认证方式
3、PAM认证原理
●PAM认证一般遵循的顺序: Service (服务) --> PAM (配置文件) --> pam_*.so
●PAM认证首先要确定哪一项应用服务,然后加载相应的PAM的配置文件(位于/etc/pam.d下),最后调用认模块(位于/lib64/security/下)进行安全认证。
●用户访问服务器的时候,服务器的某一个服务程序把用户的请求发送到PAM模块进行认证。不同的应用程序所对应的PAM模块也是不同的
●如果想查看某个程序是否支持PAM认证,可以用ls命令进行查看/etc/pam.d/
ls /etc/pam.d/ | grep su
●PAM的配置文件中的每一行都是一个独立的认证过程,它们按从上往下的顺序依次由PAM模块调用
4、PAM安全认证流程
1.required验证失败时仍然继续,但返回Fail
2.requisite验证失败则立即结束整个验证过程,返回Fail
3.sufficient验证成功则立即返回,不再继续,否则忽略结果并继续
4.optional不用于验证,只显示信息
(通常用于session类型)
四、使用sudo机制提升权限
1、su命令的缺点
通过su命令可以非常方便切换到另一个用户,但前提条件是必须知道用户登录密码。对于生产环境中的Linux服务器,每多一个人知道特权密码,安全风险就多一分。
2、sudo命令的用途及用法
●用途:以其他用户身份(如root)执行授权的命令)
●用法
sudo 授权命令
3、配置sudo授权
●visudo或者vi letc/sudoers
●记录格式
用户 主机名列表=命令程序列表
visudo单个授权
visudo 或者 vim /etc/sudoers
记录格式:
user MACHINE=COMMANDS
可以使用通配符“ * ”号任意值和“ !”号进行取反操作。
%组名代表一整个组
权限生效后,输入密码后5分钟可以不用重新输入密码。
例如:visudo命令下
user kiro=(root)NOPASSWD:/usr/sbin/useradd,PASSWD:/usr/sbin/usermod
##代表 kiro主机里的user用户,可以无密码使用useradd命令,有密码使用usermod
/etc/sudoers多个授权
Host_Alias MYHOST= localhost 主机名
User_Alias MYUSER = yxp,zhangsan,lisi,%组 需要授权的用户 自动添加用户到组
Cmnd_Alias MYCMD = /sbin/*,/usr/bin/passwd 授权
MYUSER MYHOST = NOPASSWD : MYCMD 授权格式
sudo -l ##查询目前sudo操作
查看sudo操作记录
需启用Defaults logfile
配置默认日志文件: /var/log/sudo
五、开关机安全控制
1、调整BIOS引导设置
●将第一引导设备设为当前系统所在硬盘
●禁止从其他设备(光盘、U盘、网络)引导系统
●将安全级别设为setup,并设置管理员密码
2、GRUB限制
●使用grub2-mkpasswd-pbkdf2生成密钥
●修改letc/grub.d/00_header文件中,添加密码记录
●生成新的grub.cfg配置文件
六、终端登录安全控制
1、限制root只在安全终端登录
●安全终端配置:/etc/securetty
[root@localhost ~]# vi letclsecuretty
......
#tty5
#tty6
禁止root用户从终端tty5、tty6登录
2、禁止普通用户登录
●建立/etc/nologin文件
●删除nologin文件或重启后即恢复正常
[root@localhost ~]# touch letc/nologin
禁止普通用户登录
[root@localhost ~]# rm -rf letc/nologin
取消上述登录限制
七、系统弱口令检测
1、John the Ripper,简称为JR
●一款密码分析工具,支持字典式的暴力破解
●通过对shadow文件的口令分析,可以检测密码强度
●官方网站: http://www.openwall.com/john/
2、安装JR工具
●安装方法
make clean系统类型
●主程序文件为john
3、检测弱口令账号
●获得Linux/Unix服务器的shadow文件
●执行john程序,将shadow文件作为参数
4、密码文件的暴力破解
●准备好密码字典文件,默认为password.lst
●执行john程序,结合--wordlist=字典文件
八、网络端口扫描
1、NMAP
●—款强大的网络扫描、安全检测工具
●官方网站: http://nmap.orgl
●CentOS 7.7光盘中安装包nmap-6.4O-7.el7.x86_64.rpm
2、NMAP的扫描
nmap [扫描类型] [选项] <扫描目标...>
3、常用的扫描类型
-sS、-sT、-sF、-sU、-sP、-P0
九、总结
以上就是系统安全及应用,希望对大家有所帮助。