目录
一、账号安全基本措施
系统安全及应用:从不同角度加强对系统的安全管控,主要方向就是权限。
1、系统账号清理
• 将非登录用户的Shell设为/sbin/nologin
usermod -s /sbin/nologin 用户名
• 锁定长期不使用的账号
usermod -L 用户名 passwd -l 用户名
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、设置密码有效期
2、要求用户下次登录时修改密码
3、命令history(历史)控制
1、命令历史限制
• 减少记录的命令条数
• 登录时自动清空命令历史
2、终端自动注销
• 闲置600秒后自动注销
[root@localhost~]#vi /etc/profile
.......
export TMOUT=600
[root@localhost~]# source /etc/profile
ps:
history:1000行(默认)
soure /etc/profile ##重新加载生效
二、SU命令限制
1、使用su命令切换用户
1.1 用途及用法
• 用途:Substitute User,切换用户
• 格式 su - 目标用户
1.2 密码验证
• root→任意用户,不验证密码
• 普通用户→其他用户,验证目标用户的密码
[cjw@localhost ~]1 su-root 带"-"选项表示将使用目标,用户的登录Shell环境
口令:
[root@localhost ~]# whoami
root
2、限制使用su命令的用户
1、限制使用su命令的用户
• 将允许使用su命令的用户加入wheel组
[root@localhost ~]gpasswd -a cjw wheel
cjw
正在将用户"cjw"加入到wheel组中
• 启用pam_wheel认证模块
[root@localhost~]#vi /etc/pam.d/su
#%PAM-1.0
auth sufficient pam_rootok.so
auth required pam_wheel.so use_uid
3、查看su操作记录
安全日志文件:/var/log/secure
示例 有dn和ky32两个用户,要求设置dn可以使用su命令切换用户,ky27用户不允许使用
vim /etc/pam.d/su ##编辑/etc/pam.d/su配置文件
auth required pam_wheel.so use_uid ##将第六行的注释取消即可
gpasswd -a dn wheel ##将希望可以使用su命令的用户加入到wheel组中
[root@localhostdn]#passwd -S dn ##查询密码状态
dn PS 1969-12-31 0 99999 7-1(密码已设置,使用SHA512算法。)
dn:指定用户的用户名。
PS:用户密码的状态标识符。这里的P表示密码已经设置,且可用。
三、Linux中的PAM安全认证
1、su命令的安全隐
• 默认情况下,任何用户都允许使用su命令,有机会反复尝试其他用户 (女root) 的登录密码,带来安全风险。
• 为了加强su命令的使用控制,可借助于PAM认证模块只允许极个别用户使用su命令进行切换。
2、PAM(PluggableAuthenticationModules)可插拔式认证模块
• 是一种高效而且灵活便利的用户级别的认证方式。
• 也是当前Linux服务器普遍使用的认证方式。
1、PAM认证原理
• 一般遵循的顺序
Service(服务)——》PAM (配置文件)——》pam*.so
• 首先要确定哪一项服务,然后加载相应的PAM的配置文件(位于/etc/pam.d下),最后调用认证文件(位于/lib64/security下)进行安全认证
• 用户访问服务器时,服务器的某一个服务程序把用户的请求发送到PAM模块进行认证
• 不同的应用程序所对应的PAM模块是不同的
2、PAM认证的构成
1、查看某个程序是否支持PAM认证,可以用Is命令
• 示例:查看su是否支持PAM模块认证
ls /etc/pam.d l grep su
2、查看Su的PAM配置文件:cat/etc/pam.d/su
• 每一行都是一个独立的认证过程
• 每一行可以区分为三个字段
• 认证类型
• 控制类型
• PAM模块及其参数
ps:auth:权限 account:计数 password:密码 session:会话
3、PAM安全认证流程
• 控制类型也称做ControlFlags,用于PAM验证类型的返回结果
1.required验证失败时仍然继续,返回Fail。
2.requisite验证失败则立即结束整个验证过程,返回Fail。
3.sufficien验证成功则立即返回,不再继续,否则忽略结果并继续。
4.optional不用于验证,只显示信息。
(通常用于session类型)
四、使用sudo机制提升权限
1、配置sudo授权
配置sudo授权
• visudo或者vi/etc/sudoers
• 记录格式
用户 主机名=命令程序列表
[root@localhost ~]#visudo
.......
%wheel ALL=NOPASSWD:ALL
jerry localhost=/sbin/ifconfig
Syrianer localhost=/sbin/*,/sbin/ifconfig/sbin/route
Cmnd Alias PKGTOOLS=/bin/rpm./usr/bin/yum
mike ocalhost=PKGTOOLS
2、查看sudo操作记录
• 需启用Defaults logfile配置
• 默认日志文件:/var/log/sudo
[root@localhost~]#visudo
Defaults logfile ="/var/log/sudo"
root@localhost~]#tail /var/log/sudo
3、查询授权的sudo
• sudo -l ##查看当前用户获得哪些sudo授权
五、开关机安全控制
1、调整BIOS引导设置
• 将第一引导设备设为当前系统所在硬盘。
• 禁止从其他设备(光盘、U盘、网络)引导系统。
• 将安全级别设为setup,并设置管理员密码。
2、GRUB限制
• 使用grub2-mkpasswd-pbkdf2生成密钥。
• 修改/etc/grub.d/ooheader文件中,添加密码记录。
• 生成新的grub.cfg配置文件。
六、终端登录安全控制
1、限制root只在安全终端登陆
• 安全终端配置:/etc/securetty
[root@localhost~]#vi /etc/securetty
.......
#tty5 ##禁止roo用户从终端tty5、tty6登录(在行首加"#"号表示注释)
#tty6
2、禁止普通用户登录
• 建立/etc/nologin文件
• 删除nologin文件或重启后即恢复正常
[root@localhost ~]# touch /etc/nologin ##禁止普通用户登录
]root@localhost ~]# rm-rf /etc/nologin ##取消上述登录限制
七、系统弱口令检测
Joth the Ripper,简称为JR
• 一款密码分析工具,支持字典式的暴力破解。
• 通过对shadow文件的口令分析,可以检测密码强度。
• 官方网站:http://www.openwall.com/john/
八、网络端口扫描
1、NMAP概述
• 一款强大的网络扫描 安全检测工具。
• 官方网站:http://nmap.org。
• Centos7.3光盘中安装包nmap-6.40-7.el7.×86_64.rpm。
2、NMAP常用选项
nmap命令常用的选项和扫描类型
-p:指定扫描的端口。
-n:禁用反向DNS解析(以加快扫描速度)。
-sS:TCP的SYN扫描(半开扫描),只向目标发出SYN数据包,如果收到SYN/ACK响应包就认为目标端口正在监听,并立即断开连接;否则认为自标端口并未开放。
-sT:TCP连接扫描,这是完整的TCP扫描方式(默认扫描类型),用来建立一个TCP连接,如果成功则认为目标端口正在监听服务,否则认为自标端口并未开放。
-sF:TCP的FIN扫描,开放的端口会忽略这种数据包,关闭的端口会回应RST数据包。许多防火墙只对SYN数据包进行简单过滤,而忽略了其他形式的TCP攻击包。这种类型的扫描可间接检测防火墙的健壮性。
-sU:UDP扫描,探测目标主机提供哪些UDP服务,UDP扫描的速度会比较慢。
-sP:ICMP扫描,类似于ping检测,快速判断目标主机是否存活,不做其他扫描。
-PO:跳过ping检测,这种方式认为所有的目标主机是存活的,当对方不响应ICMP请求时,使用这种方式可以避免因无法ping通而放弃扫描。
3、实例
netstat -natp ##查看正在运行的使用TCP协议的网络状态信息
netstat -naup ##查看正在运行的使用UDP协议的网络状态信息示例:
#分别查看本机开放的TCP端口、UDP端口:
nmap -sT 127.0.0.11
nmap -sU 127.0.0.1
#检测192.168.4.0/24网段有哪些主机提供HTTP服务:
nmap-p80192.168.4.0/24
#检测192.168.4.0/24网段有哪些存活主机:
nmap-n-sP192.168.4.0/24