文章目录
- 系统安全
-
- 系统账号清理
- 密码安全控制
- 命令历史限制
- 终端自动注销
- 使用su命令切换用户
- [PAM(Pluggable Authentication Modules)可插拔式认证模块](#PAM(Pluggable Authentication Modules)可插拔式认证模块)
-
- PAM认证原理
- 查看某个程序是否支持PAM认证,可以用Is命令
- [查看su的PAM配置文件:cat /etc/pam.d/su](#查看su的PAM配置文件:cat /etc/pam.d/su)
- [控制类型也称做Control Flags用于PAM验证类型的返回结果](#控制类型也称做Control Flags用于PAM验证类型的返回结果)
- sudo命令的用途及用法
- 限制root只在安全终端登录
- 网络扫描-----NMAP
系统安全
系统账号清理
将非登录用户的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 #解锁文件
密码安全控制
-
设置密码有效期
-
要求用户下次登录时修改密码
vi /etc/login.defs #修改密码配置文件,适用于新建用户
chage -M 30 lisi #适用于已有用户
cat /etc/shadow grep lisichage -d 0 zhangsan #强制在下次登录时更改密码
cat /etc/shadow | grep zhangsan #shadow文件中的第三个字段被修改为0
命令历史限制
-
减少记录的命令条数
-
登录时自动清空命令历史
vi /etc/profile
export HISTSIZE=200source /etc/profile
vi ~/.bashrc
echo"">~/.bash history #当前用户
终端自动注销
闲置600秒后自动注销
vi /etc/profile
export TMOUT=600
source /etc/profile
如设置时间短的处理方式
另一台虚拟机
scp /etc/profile root@时间过短的虚拟机的IP:/etc/profile
使用su命令切换用户
用途及用法
用途:Substitute User,切换用户
格式:su -目标用户
密码验证
root→任意用户,不验证密码 带-选项表示将使用目标用户的登录Shell环境
普通用户→其他用户,验证目标用户的密码
su - root
whoami
限制使用su命令的用户
- 将允许使用su命令的用户加入wheel组
- 启用pam wheel认证模块
PAM 系统相关的认证权限管理
Linux 系统中较为全面的安全管理的程序
gpasswd -a tsengyia wheel
vi /etc/pam.d/su
#%PAM-1.0
auth sufficient pam rootok.so
auth required pam wheel.so use uid
查看su操作记录
安全日志文件:/var/log/secure
限制使用su命令的用户
将允许使用su命令的用户加入wheel组
启用pam wheel认证模块
查看su操作记录
安全日志文件:/var/log/secure
su命令的安全隐患
- 默认情况下,任何用户都允许使用su命令,有机会反复尝试其他用户(如root)的登录密码,带来安全风险
- 为了加强su命令的使用控制,可借助于PAM认证模块只允许极个别用户使用su命令进行切换
PAM(Pluggable Authentication Modules)可插拔式认证模块
- 是一种高效而且灵活便利的用户级别的认证方式
- 也是当前Linux服务器普遍使用的认证方式
PAM认证原理
-
一般遵循的顺序
Service(服务)→PAM(配置文件)→pam *.so
-
首先要确定哪一项服务,然后加载相应的PAM的配置文件(位于/etc/pam.d下),最后调用认证文件(位于/lib64/security下)进行安全认证
-
用户访问服务器时,服务器的某一个服务程序把用户的请求发送到PAM模块进行认证
-
不同的应用程序所对应的PAM模块是不同的
1、su------》service 服务
2、加载PAM配置文件-------》/etc/pam.d/su
3、/lib64/security------->配置帮助进行安全认证生效应用完成的过程
查看某个程序是否支持PAM认证,可以用Is命令
查看su是否支持PAM模块认证
ls /etc/pam.d | grep su
查看su的PAM配置文件:cat /etc/pam.d/su
每一行都是一个独立的认证过程
每一行可以区分为三个字段
认证类型
控制类型
PAM模块及其参数
控制类型也称做Control Flags用于PAM验证类型的返回结果
- required验证失败时仍然继续,但返回Fail
- requisite验证失败则立即结束整个验证过程,返回Fail
- sufficient验证成功则立即返回,不再继续,否则忽略结果并继续
- optional不用于验证,只显示信息(通常用于session类型)
sudo命令的用途及用法
用途:以其他用户身份(如root)执行授权的命令
用法:sudo 授权命令
配置sudo授权
visudo或者vi /etc/sudoers
记录格式 用户主机名=命令程序列表
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 localhost=PKGTOOLS
查看sudo操作记录
需启用 Defaults logfile配置
默认日志文件:/var/log/sudo
visudo
Defaults logfile = "/var/log/sudo"
查询授权的sudo操作
sudo -l
限制root只在安全终端登录
vi /etc/securetty
#tty5
#tty6
禁止root用户从终端tty5、tty6登录
禁止普通用户登录
建立/etc/nologin文件
删除nologin文件或重启后即恢复正常
touch /etc/nologin 禁止普通用户登录
rm -rf /etc/nologin 取消上述登录限制
网络扫描-----NMAP
NMAP 是一个强大的端口扫描类安全评测工具,支持 ping 扫描、多端口检测等多种技术。
#一台虚拟机安装 NMAP 软件包
rpm -qa | grep nmap
yum install -y nmap
#另一台虚拟机安装 httpd 软件包
yum install -y httpd
systemctl stop firewalld
setenforce 0
systemctl start httpd
systemctl enable httpd
netstat -natp 查看正在运行的使用TCP协议的网络状态信息
netstat -naup 查看正在运行的使用UDP协议的网络状态信息
#分别查看本机开放的TCP端口、UDP端口
nmap -sT 127.0.0.1
nmap -sU 127.0.0.1
#检测192.168.4.0/24网段有哪些主机提供HTTP服务
nmap rp 80 192.168.4.0/24
#检测192.168.4.0/24网段有哪些存活主机
nmap -n -sP 192.168.4.0/24
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 检测,快速判断目标主机是否存活,不做其他扫描。
-P0:跳过ping检测,这种方式认为所有的目标主机是存活的,当对方不响应ICMP请求时,使用这种方式可以避免因无法 ping 通而放弃扫描。