账号安全基本措施
系统账号清理
将非登录用户的shell设为/sbin/nologin
锁定长期不使用的账户
删除无用的账号
锁定账号文件/etc/passwd /etc/shadow
chattr命令的用法 chattr命令不能保护/、 /dev /tmp /var
+:在原有参数基础上,追加参数
-:在原有参数基础上,移除参数
=:更新为指定参数设定
A:文件或者目录的atime(acess time)不可被修改,可以有效预防磁盘I/O错误
S:硬盘I/O同步选项,功能类似sync
a:即append,设定该参数后,只能向文件中添加数据,不能删除,多用于服务器日志安全,只有root才能设置这个属性
c:即compresse,设定文件是否经压缩后在存储。读取时须经过自动解压操作
d:即no dump,设定文件不能成为dump程序的备份目标
i:设定文件不能被删除,改名,设定链接关系,同时不能写入或新增内容。i参数对于文件,系统的安全设置大有帮助。
j:即journal,设定此参数使得通过mount当参数:data=ordered 或者 data=writeback挂载的文件系统,文件在写入时会先被记录在journal中,如果filesystem被设定参数为data=yournal,则该参数自动失效
s:保密性的删除文件或者目录,即硬盘空间被全部收回
u:与s相反,当设定为u时,数据内容其实还存在磁盘中,可以用于undeletion各参数选项中常用到的是a和i。a选项强制只可添加不可删除,多用于日志系统的安全设定。而i是更为严格的安全设定,只有superuser(root)或具有CAP_LINUX、IMMUTABLE处理能力(标识)的进程能够施加该选项。
chattr + i /etc/passwd /etc/shadow 设定文件不能被修改,删除创建链接
lsattr /etc/passwd /etc/shadow 查看效果
验证权限
useradd lisi 报无权限
cat /etc/passwd
passwd lisi 报无效用户
cat /etc/shadow
chattr -i /etc/passwd /etc/shadow 解锁
lsattr /etc/passwd /etc/shadow 查看文件保护效果
账号安全基本措施
密码安全控制
设置密码有效器
要求用户下次登录时修改密码
vi /etc/login.defs 适用于新建账户
chage -M 30 lisi 适用于已有账户
chage -d 0 zhangsan 强制在下次登录时,更改密码
命令历史限制
减少记录的命令条数
注销时自动清空命令历史‘
终端自动注销
闲置600秒后自动注销
vi /etc/profile
vi ~ /.bash_logout
history -c 清空历史记录
clear 清屏
echo > home./bash_history
每个用户根目录下都有一个.bash_history文件用于保存历史命令,当每次注销时,本次所执行的命令将被写入该文件。所以可以清空该文件,下次登录后上次保存的命令将消失,清空效果将在下次登陆时生效。
export TMOUT =600 全局变量
unset TMOUT 注销变量
PAM安全认证流程
控制类型也称作Control Flags。用于PAM验证类型的返回结果
1.required验证失败时任然继续,但返回Fail
2.required验证失败则立即结束整个验证过程,返回fail
3.sufficient验证成功则立即返回,不在继续,否则忽略量表则继续
4.optional不用于验证,只显示信息(通常用于session类型)
vi /etc/pam.d/su 查看pam模块
限制使用su命令的用户
将允许使用su命令的用户加入wheel组
启用pam_wheel认证模块1
每一行都是一个独立的认证过程
每一行可区分为三个字段
认证类型
控制类型
PAM模块及其参数
PAM认证类型可包括4种
认证管理:接受用户名和密码,进而对该用户的密码进行认证
账户管理:检查账户是否被允许登录系统,账号是否已经过期,账号的登录是否有时间限制等
密码管理:主要是用来修改用户的密码
会话管理:主要是提供对话的管理与记账
控制类型也称为Control Flags,用于PAM验证类型的返回结果
su命令的安全隐患
默认情况下,任何用户都允许使用su命令,有机会反复尝试其他用户,如(root)的登录密码,带来安全风险
为了加强su命令的使用控制,可借助于PAM认证模块,只允许极个别用户使用su命令进行切换
PAM可插拔式认证模块
是一种高效而且是灵活便利的用户级别的认证方式
也是当linux服务器普遍使用的认证方式
PAM认证原理
一般遵循的顺序
Service(服务)——PAM(配置文件)——pam_*.so
首先要确定哪一项服务,然后加载相应的PAM配置文件(位于/etc/pam.d下)
最后调用认证文件(位于/lib/security下)进行安全认证
用户访问服务器时,服务器某一服务程序把用户的请求发送到PAM模块进行验证
不同的应用程序所对应的PAM模块是不同的
使用sudo机制提升权限
sudo命令的用途与用法
用途:以其他用户身份(如root)执行授权的命令
用法:sudo授权命令
配置sudo授权
visodu或者vi /etc/sudoers
记录格式 用户 主机名列表=命令程序列表
NOPASSWD:wheel组 用户不用再输入密码进行认证
Linux的visudo中4个all分别代表
从左到右第一个all是用户
从左到右第二个all是机器
从左到右第三个all是新用户身份(run_as_user,如root,oracle)
从左到右第四个all 是命令
tail -f /var/log/secure 查看安全隐患
查看sudo操作记录
需启动Defaults logfile 配置
默认配置文件:/var/log/sudo
visudo
Defaults logfile=“/var/log/sudo”
查询授权的sudo权限
sudo -l
开关机安全控制
调整bios引导设置
将第一引导设备设为当前系统所在硬盘
禁止从其他设备(光盘、U盘、网络)引导系统
将安全级别设为setup,并设置管理员密码
GRUB限制
使用grub2-mkpasswd-pbkdf2生成密钥
修改/etc/grub.d/00_header文件中,添加密码记录
生成新的grub.cfg配置文件
在我们使用cat <<EOF时,我们输入完成后,需要在一个新的一行输入EOF结束stdin的输入。EOF必须顶行写,前面不能用制表符或者空格。
grub2-mkpasswd-pbkdf2//根据提示指定密码
cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.bak
cp /etc/grub.d/00_header /etc/grub.d/00_header.bak
vim /etc/grub.d/00_header//将下面内容添加到文章最后
cat <<EOF
EOF
使用grub2-mkconfig 命令生成新的grub.cfg配置文件中
终端登录安全控制
限制root只在安全终端登录
安全终端配置:/etc/security
vi /etc/security
……
#tty5
#tty6 禁止root用户从终端tty5,tty6登录
禁止普通用户登录
建立/etc/nologin文件
删除nologin文件或重启后即恢复正常
touch /etc/nologin 禁止普通用户登录
rm -rf /etc/nologin 取消上述登录限制
弱密码检测
Joth the Ripper(JR)
密码分析工具,支持字典式的暴力破解
通过对shadow文件的口令分析,可以检测密码强度
安装JR工具 make clean 系统类型
主程序文件为john
检测弱口令账号
获得Linux/Unix服务器的shadow文件
执行john程序,将shadow文件作为参数
密码文件的暴力破解
准备好密码字典文件,默认为paaword.lst
执行john程序,结合wordlist=字典文件
弱命令检测过程
tar zxvf john.tar.gz
cd john-1.8.0
cd src
make clean linux-x86-64 执行编译文件
ls…/run/john 查看是否生成john程序
cp /etc/shadow /root/shadow.txt 复制密码文件 cd…/run
./john /root/shadow.txt 破译账户弱密码./john–show /root/shadow.txt 查看已破译的账户列表
网络端口扫描
NMAP
一款强大的网络扫描安全检测工具
官网:http://nmap.org//
光盘安装包:nmap-6.40-7el.x86-64.rpm
网络扫描
rpm -ivh /mnt/Packages/nmap-xxxx.rpm安装软件包
nmap -sT(TCP连接扫描) 127.0.0.1、 192.168.4.0/24、 192.168.4.100-200
-sU(UDP扫描)
-sP(ICMP扫描)
-sS(TCP syn扫描)
-sF(TCP fin扫描)
p(指定端口扫描) 21,22(扫描多个端口,用逗号进行分隔)