将非登录用户的Shell设为/sbin/nologin
锁定长期不使用的账号
删除无用的账号
锁定账号文件passwd、shadow
[root@localhost ~]# chattr +i /etc/passwd /etc/shadow ###锁定文件并查看状态 解锁“-i”
[root@localhost ~]# lsattr /etc/passwd /etc/shadow ###查看状态
设置密码有效期
要求用户下次登录时修改密码
[root@localhost ~]# vi /etc/login.defs ###适用于新建用户
…
PASS_MAX_DAYS 30
[root@localhost ~]# chage -M 30 jerry ###适用于已有用户
[root@localhost ~]# chage -d 0 jerry ###强制在下次登录时修改密码
减少记录的命令跳数
注销时自动清空命令历史
闲置600秒后自动注销
[root@localhost ~]# vi /etc/profile
HISTSIZE=200 ###200条信息
[root@localhost ~]# vi ~/.bash_logout
history -c
clear ###退出会清空历史命令
[root@localhost ~]# vi ~/.bash_profile
…
export TMOUT=600 ###闲置600秒后自动注销
用途:Substitute User,切换用户
格式:su - 目标用户
root➡任意用户,不验证密码
普通用户➡其他用户,验证目标用户的密码
[jerry@localhost ~]$ su -root ###带-选项表示将使用目标用户的登录Shell环境
口令
[root@localhost ~]# whoami ###当前账户
root
限制使用su命令的用户
将允许使用su命令的用户加入wheel组
启用pam_wheel认证模块
[root@localhost ~]# gpasswd -a jerry wheel
jerry
正在将用户“jerry”加入到“wheel”组中
将允许使用su命令的用户加入wheel组
启用pam_wheel认证模块
[root@localhost ~]# vi /etc/pam.d/su
#%PAM-1.0
auth sufficent pam_rootok.so
auth required pam_wheel.so use_uid
…
[root@localhost ~]# echo"SU_wheel_ONLY yes">>/etc/login.defs
加入语句到行末以上操作完毕后,能够再建立一个新用户。然后用这个新建的用户测试会发现,没有加入到wheel组的用户,运行“su -”命令。即使输入了正确的rootpassword,也无法登录为root用户
安全日志文件:/var/log/secure
sudo命令的用途及用法
用途:以其他用户身份(如root)执行授权的命令
用法:sudo 授权命令
配置sudo授权
visudo或者vi /etc/sudoers
记录格式 用户 主机名列表=命令程序列表
[root@localhost ~]# visudo
…
%wheel ALL=NOPASSED:ALL
jerry localhost=/sbin/ifconfig
syrianer localhost=/sbin/,!/sbin/ifconfig,!/sbin/route ###可以使用通配符、取反符号!
Cmnd_Alias PKGTOOLS=/bin/rpm,/usr/bin/yum
mike localhost=PKGTOOLS
是一种高效而且灵活便利的用户级别的认证方式
也是当前Linux服务器普遍使用的认证方式
Server(服务)➡PAM(配置文件)➡pam_*.so
示例:查看su是否支持PAM模块认证
ls /etc/pam.d | grep su
每一行都是一个独立的认证过程
每一行可以区分为三个字段
认证类型
控制类型
PAM模块及其参数
账户管理:检查账户是否被允许登录系统,账号是否已经过期,账号的登录是否有时间段的限制等;
密码管理:主要是用来修改用户的密码;
会话管理:主要是提供对会话的管理和记账。
控制类型也称作Control Flags,用于PAM验证类型的返回结果
1、required验证失败时仍然继续,但返回Fail
2、requisite验证失败则立即结束整个验证过程,返回Fail
3、sufficient验证成功则立即返回,不再继续,否则忽略结果并继续
4、optional不用于验证,只显示信息(通常用于session类型)
调整BIOS引导设置
将第一引导设备设为当前系统所在硬盘
禁止从其他设备(光盘、U盘、网络)引导系统
将安全级别设为setup,并设置管理员密码
GRUB限制
设置grub2菜单密码
1、grub2-setpassword ###生成grub2菜单密码 —输入密码
2、cat /boot/frub2/user.cfg ###查看密码是否添加
3、reboot ###重启验证
终端登录安全控制
限制root只在安全终端登录
安全终端配置:/etc/securetty
[root@localhost ~]# vi /etc/securetty
…
#tty5
#tty6
系统弱口令检测
Joth the Ripper,简称为JR
一款密码分析工具,支持字典式的暴力破解
通过对shadow文件的口令分析,可以检测密码强度
官方网站:http://openwall.com/john/
安装JR工具
安装方法 ###make clean 系统类型
主程序文件为john
检测弱口令账号
获得Linux/Unix服务器的shadow文件
执行john程序,将shadow文件作为参数
密码文件的暴力破解
准备号密码字典文件,默认为passwoed.lit
执行john程序,结合–wordlist=字典文件
NMAP是一个强大的端口扫描类安全评测工具
NMAP被设计为检测众多主机数量的巨大网络,支持ping扫描、多端口检测、OS识别等多种技术。使用NMAP定期扫描内部网络,可以找出网络中不可控的应用服务,即使关闭不安全的服务、减少安全风险。
1、安装NMAP软件包
[root@localhost ~]# yum -y install nmap
2、扫描语法及类型
-sS,TCPSYN扫描(半开扫描):只向目标发出SYN数据包,如果收到SYN/ACK响应包就认为目标端口正在监听,并立即断开连接:否则认为目标端口并未开放。
-sT,TCP连接扫描:这是完整的TCP扫描方式,用来建立一个TCP连接,如果成功则认为目标端口正在监听服务。否则认为目标端口并未开放。
-sF,TCPFIN扫描:开放的端口会忽略这种数据包,关闭的端口会响应RST数据包。许多防火墙只对SYN数据包进行简单过滤,而忽略了其他形式的TCP攻击包,这种类型的扫描可间接检测防火墙的健壮性。
-sU,UDP扫描:探测目标主机提供哪些UDP服务,UDP扫面描的速度会比较慢。
-sP,ICMP扫描:类似于ping检测,快速判断目标主机是否存活,不做其他扫描。