赞
踩
linux系统是以安全、高效稳定得以广泛的应用,linux系统中提供了多种机制来确保账号的安全使用。
chattr +i /etc/passwd ###锁定文件
lsattr /etc/passwd ###查看状态
chattr -i /etc/passwd ###解锁文件
举例:
1、锁定文件并查看状态
2、锁定/etc/passwd之后还能修改密码,因为密码由/etc/shadow管理
3、把/etc/shadow锁上之后,就不能修改密码了
举例:
1、新建用户libai,进入vi /etc/login.defs,修改密码有效期,查看两个用户修改密码的最大间隔。
进入vi /etc/login.defs,修改密码有效期
2、修改用户密码的最大间隔
3、强制在下次登录时更改密码
source /etc/profile ###刷新
./etc/profile ###另一种刷新方式
vim ~/.bash_history ###历史命令记录存储在.bash_history里
echo " " > .bash_history ###清空历史命令记录 .bash_history
history -c ###临时删除
环境变量的读取:
用户登录-》加载~/.bash_profile --》bash_profile中的配置首先是使 ~/.bashrc生效
用户登出–》.bash_logout 运行logout配置文件
举例:
1、进入vi /etc/profile,修改histsize,后面的数字表示保留的条数
2、用户登出时清除命令
plan1:
plan 2:
vi /etc/profile
###进入写入 export TMOUT=600
wq保存退出
source /.bash_logout 刷新
或者
. /etc/profile ###刷新
默认情况下,任何用户都允许使用su命令,从而有机会反复尝试其他用户(如root)的登录密码,这样带来了安全风险。为了加强su命令的使用控制,可以借助于pam_wheel认证模块,只允许极个别用户使用su命令进行切换。实现过程如下:将授权使用su命令的用户添加到 wheel组,修改/etc/pam.d/su认证配置以启用 pam_wheel 认证。
在/etc/ pam.d/su文件里设置禁止用户使用su命令
vim /etc/pam.d/ su
2 # auth sufficient pam_ rootok.so
6 #auth required pam_ wheel.so use__uid
举例:
1、把zhangbin添加到wheel组中,然后确认wheel组成员
2、启用pam认证,加入组的可以使用,未加入组的无法使用
3、启用pam_wheel认证以后,未加入到wheel组内的其他用户将无法使用su命令,尝试进行切换时将提示“拒绝权限”,从而将切换用户的权限控制在最小范围内。
4、普通用户切换登录测试验证,使用su命令切换到用户的操作将会记录到安全日志/var/log/secure文件中,可以根据需要查看。
控制类型也称做Control Flags,用于PAM验证类型的返回结果
数据流向
用户登录su—》su服务-----》调用PAM模块中su-----》读取模块中的配置文件
PAM的配置文件中的每一行都是一个独立的认证过程,它们按从上到下的顺序一次由PAM模块调用
第一列代表PAM认证模块类型
第二列代表PAM控制标记
第三列代表PAM模块,默认是在/lib64/security/目录下,如果不在此默认路径下,要填写绝对路径。
第四列代表PAM模块的参数,这个需要根据所使用的模块来添加。传递给模块的参数,参数可以有多个,之间用空格分隔开。
sudo [参数选项] 命令
-l:列出用户在主机上可用的和被禁止的命令;一般配置好/etc/sudoers后,要用这个命令来查看和测试是不是配置正确的;
-v:验证用户的时间戳;如果用户运行sudo后,输入用户的密码后,在短时间内可以不用输入口令来直接进行sudo操作
-v:可以跟踪最新的时间戳;
-u:指定以以某个用户执行特定操作
-k删除时间戳,下一个sudo命令要求用求提供密码;
visudo
或
vi /etc/sudoers (此文件的默认权限为440,保存退出时必须执行:"wq!" 命令来强制操作)
记录格式
用户 主机名=命令程序表
用户 主机名=(用户)命令程序表
用户:直接授权指定的用户名,或采用”组名”的形式(授权一个组的所有用户)。
主机名:使用此规则的主机名。没配置过主机名时可用localhost,有配过主机名则用实际的主机名,ALL则代表所有主机
(用户):用户能够以何种身份来执行命令。此项可省略,缺省时以root用户的身份来运行命
命令程序列表:允许授权的用户通过sudo方式执行的特权命令,需填写命令程序的完整路径多个命令之间以逗号""进行分隔。ALL则代表系统中的所有命令
示例:
zhangsan ALL=/sbin/ifconfig
lisi localhost=/sbin/*,!/sbin/reboot,!/sbin/poweroff #通配符"*"表示所有、取反符号"!"表示排除
wheel ALL=NOPASSWD:ALL
#表示wheel组成员无需验证密码即可使用sudo执行任何命令
Mike ALL=(root)NOPASSWD:/bin/kill,/usr/bin/killall
gpasswd-M lisi wheel##李四加入wheel组
启用sudo操作日志
visudo
Defaults logfile="/var/log/sudg"
sudo日志记录以备管理员查看,应在/etc/sudoers文件中增加"Defaults logfile"设置如果已经启用sudo日志,则可以从/var/log/sudo文件中看到用户的sudo操作记录。
注:启用日志:Defaults loqfile=/var/log/sudo
另外一个方法是/var/log/secure日志可查看到sudo操作用户步骤
sudo-l#查看当前用户获得哪些sudo授权
例1:需求:在张三用户里创建李四用户
创建张三用户----》进入张三用户-----》在张三用户里创建李四用户------》权限不够
进入visudo,给张三用户提升权限(可以在所有主机中添加用户,修改用户账号的属性)
给张三提升权限后,进入张三用户,用sudo命令创建李四用户,查看id看是否创建成功
例2:
创建用户不用密码,修改要密码
例3:用户可以临时创建网卡
设置Z组里的人不需要密码查看ifconfig
王五不在Z组里,所以无法查看ifconfig
、
用户别名的语法格式:
1、User_Alias
用户别名:包含用户、用户组(%组名(使用%引导))、还可以包含其他其他已经用户的别名User_Alias OPERATORS=zhangsan,tom, lisi
2、Host_Alias
主机别名:主机名、IP、网络地址、其他主机别名!取反Host_Alias MAILSVRS=smtp, pop
3、Cmnd_Alias
命令路劲、目录(此目录内的所有命令)、其他事先定义过的命令别名cmnd_Alias PKGTOOLS=/ bin/ rpm,/ usr/bin/yum
用户 改成 别名用户 目的为了可以操作多个用户和组
主机名 改成 别名主机 目的为了可以操作设置主机的多个名称或者主机取反
命令操作列表 改成 别名命令列表 目的是所有命令可以做操作也就是所有命令集合
示例
例1:
进入visudo编辑,设置张三,李四用户可以使用安装命令
王五不在sudo里,没有权限使用安装命令
例2:
进入visudo编辑,设置只有李四和Z组里的人能添加用户,不能更改用户命令
调整BIOS引导设置
GRUB限制
使用grub2-mkpasswd-pbkdf2生成密钥
修改/etc/grubd/00header文件中,添加密码记录
生成新的grubcfg配置文件
通常情况下在系统开机进入GRUB菜单时,按e键可以查看并修改GRUB引导参数,这对服务器是一个极大的威胁。可以为GRUB菜单设置一个密码,只有提供正确的密码才被允许修改引导参数。
plan1: grub2-mkpasswd-pbkdf2 #根据提示设置GRUB菜单的密码 PBKDF2 hash of your password is grub . pbkd.. . ..#省略部分内容为经过加密生成的密码字符串 #备份配置文件 cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.bak cp letc/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. pbkd2. . . . #设置密码,省略部分内容为经过加密生成的密码字符串 EOF #生成行grub.cfg grub2-mkconfig -o /boot/grub2/grub.cfg #生成新的grub.cfg文件 重启系统进入GRtB菜单时,按e键将需要输入账号密码才能修改引导参数。 plan2:一步到位 grub2-setpassword
举例:
限制更改GRUB引导参数
重启之后按e键
限制root只在安全终端登录
禁止普通用户登录
John the Ripper,简称为JR
检测弱口令账号
密码文件的暴力破解
弱口令检测 -John the Ripper. JohntheRipper是一-款开源的密码破解工具,可使用密码字典(包含各种密码组合的列表文件)来进行暴力破解) 解压工具包 cd /opt tar zxf john-1.8.0.tar.gz 安装软件编译工具 yum install_-y gcc gcc-c++ make 换到src子自录 cd /opt/john-1.8.0/ 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.1st / opt/ shadow.txt #使用指定的字典文件进行破解
SYN 建立连接位
ACK 确认位
FIN 结束断开位
PSH 急迫位 传送0 数据缓存 上层应用协议
RST 重置位
URG 紧急位
rpm -qa |grep nmap 查看nmap
yum install -y nmap 安装nmap
举例:
1、安装nmap
2、当yum.pid被锁定时无法安装软件,先删除yum.pid,再安装软件
-p:指定扫描的端口。
n:禁用反向DNS解析(以加快扫描速度)
S:TCP的SYN扫描(半开扫描),只向目标发出SYN数据包,如果收到SYN/ACK响应包就认为目标端口正在监听,并立即断开连接;否则认为目标端口并未开放。
-sT:TCP连接扫描,这是完整的TCP扫描方式(默认扫描类型)用来建立一个TCP连接,如果成功则认为目标端口正在监听服务。否则认为目标端口并未开放。
-sF:TCP的FIN扫描,开放的端口会忽略这种数据包,关闭的端口会回应RST数据包。许多防火墙只对sYN数据包进行简单过。而忽略了其他形式的TCP攻击包。这种类型的扫描可间接检测防火墙的健壮性。
-sU:UDP扫描,探测目标主机提供哪此UDP服务,UDP扫描的速度会比较慢。
-sP:ICMP扫描,类似于pina检测,快速判断目标主机是否存活,不做其他扫描。
-P0:跳过ping检测,这种方式认为所有的目标主机是存活的,当对方不响应ICMP请求时,使用这种方式可以避免因无法 ping通而放弃扫描。
举例:
1、查看UDP端口
2、查看TCP端口
3、查看是否有80端口
4、扫描端口
今天我学会了账号的四种基本安全措施,分别是系统账号清理、密码安全控制、命令历史清理、自动注销。知道如何使用su命令切换用户,以及如何使用sudo机制提升权限。当使用相同授权的用户较多时,可以采用集中定义用户别名。大致了解了开关机的安全控制,可以限制更改GRUB引导参数,为GRUB菜单设置一个密码,只有提供正确的密码才被允许修改引导参数。使用系统弱口令检测暴力破解密码文件,使用端口扫描NMAP来检测端口。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。