Linux系统安全及应用

一、账号安全基本措施

  • 系统账号清理

        将非登录用户的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/sahdow        (查看文件锁定状态)
chattr -i /etc/passwd /etc/shadow    (解锁文件)
  • 密码安全控制

        设置密码有效期

        要求用户下次登录时修改密码

vi /etc/login.defs    (修改密码配置文件适用于新建用户)
PASS_MAX_DAYS 天数


chage -M 天数 用户名    (针对已存在的用户,99999天为永不过期)
chage -d 0 用户名    (强制在下次登录时更改密码)
  • 命令历史限制

        查看历史命令

history

        减少记录的命令条数

vi /etc/profile
export HISTSIZE=XX

source /etc/profile

        临时清空历史命令

history -c

        登录时自动清空命令历史

vim /etc/profile
> ~/.bash_history
  • 终端自动注销

        闲置一段时间后自动注销

vi /etc/profile
export TMOUT=时间

source /etc/profile

二、使用su命令切换用户

  • 用法及用途

        用途:substitute user,切换用户

        格式:su -目标用户

  • 密码验证

        root→任意用户,不验证密码

        普通用户→其他用户,验证目标用户的密码

  • 限制使用su命令的用户

        将允许使用su命令的用户加入wheel组

gpasswd wheel -a 用户名

        修改su的PAM认证配置文件

vim /etc/pam.d/su    开启 auth   required   pam_wheel.so use_uid 的配置 

        启用pam_wheel认证模块

三、Linux中的PAM安全认证

  • su命令的安全隐患

        默认情况下,任何用户都允许使用su命令,有机会反复尝试其他用户(如root)的登录密码,带来安全风险

        为了加强su命令的使用控制,可借助于PAM认证模块,只允许极个别用户使用su命令进行切换

  • PAM(Pluggable authentication modules)可插拔式认证模块

        是一种高效而且灵活便利的用户级别的认证方式

        也是当前Linux服务器普遍使用的认证方式

四、PAM认证原理

一般遵循的顺序

        service(服务)→PAM(配置文件)→pam_*.so

首先要确定哪一项服务,然后加载响应的PAM的配置文件(位于/etc/pam.d下),最后调用认证文件(位于lib64/security下)进行安全认证

用户访问服务器时,服务器的某一个服务程序把用户的请求发送到PAM模块进行认证

不同的应用程序所对应的PAM模块是不同的

五、PAM认证的构成

  • 查看某个程序是否支持PAM认证,可以用ls命令
  • 查看su的PAM配置文件
cat /etc/pam.d/su

        每一行都是独立的认证过程

        每一行可以区分为三个字段

认证类型控制类型PAM模块及其参数
  • 认证模块类型

auth:认证模块接口,如验证用户身份、检查密码是否可以通过,并设置用户凭据
account:账户模块接口,检查指定账户是否满足当前验证条件,如用户是否有权访问所请求的服务,检查账户是否到期
password:密码模块接口,用于更改用户密码,以及强制使用强密码配置
session:会话模块接口,用于管理和配置用户会话。会话在用户成功认证之后启动生效

  • PAM控制标记

required:模块结果必须成功才能继续认证,如果在此处测试失败,则继续测试引用在该模块接口的下一个模块,直到所有的模块测试完成,才将结果通知给用户。
requisite:模块结果必须成功才能继续认证,如果在此处测试失败,则会立即将失败结果通知给用户。
sufficient:模块结果如果测试失败,将被忽略。如果sufficient模块测试成功,并且之前的required模块没有发生故障,PAM会向应用程序返回通过的结果,不会再调用堆栈中其他模块
optional:该模块返回的通过/失败结果被忽略。一般不用于验证,只是显示信息(通常用于 session 类型)
include:与其他控制标志不同,include与模块结果的处理方式无关。该标志用于直接引用其他PAM模块的配置参数

  • PAM模块

默认是在/lib64/security/目录下,如果不在此默认路径下,要填写绝对路径
同一个模块,可以出现在不同的模块类型中,它在不同的类型中所执行的操作都不相同,这是由于每个模块针对不同的模块类型编制了不同的执行函数

  • PAM模块的参数

需要根据所使用的模块来添加,传递给模块的参数。参数可以有多个,之间用空格分隔开


  • 小知识

ssh远程登录输入三次密码错误则锁定用户

vim /etc/pam.d/sshd  
auth       required     pam_tally2.so  deny=3 unlock_time=600 even_deny_root root_unlock_time=600

六、PAM安全认证流程

控制类型也乘坐control flags,用于PAM验证类型的返回结果

  1. required验证失败时忍让继续,但是返回fail
  2. requisite验证失败则立即结束整个验证过程,返回fail
  3. sufficient验证成功立即返回,不再继续,否则忽略结果并继续
  4. optional不用于验证,只显示信息(通常用于session类型)

七、使用sudo机制提升权限

  • su命令的缺点

  • sudo命令的用途及用法

        用途:以其他用户身份(如root)执行授权的命令

        用法:sudo 授权命令

  • 配置sudo授权

visudo
或者vi /etc/sudoers(要用 wq! 强制保存)
  • 记录格式

用户 主机名=命令程序列表(命令要用绝对路径表示,支持使用通配符 * 表示所有, ! 表示取反)

  • 别名设置
用户别名主机别名=命令别名
User_Alias大写别名=用户1, 用户2, ...
Host_Alias大写别名=主机名1, 主机名2, ...
Cmnd_Alias大写别名=命令路径1, 命令路径2, ...
  • 使用sudo操作记录

        需启用defaults logfile配置

        默认日志文件:/var/log/sudo

  • 查询授权的sudo操作

sudo -l

八、开关机安全控制

  • 调整BIOS引导设置

        将第一引导设备设为当前系统所在的硬盘

        禁止从其他设备(U盘、光盘、网络)引导系统

        将安全级别设为setup,并设置管理员密码

  • GRUB限制

        使用grub2-mkpasswd-pbkdf2生成密钥

        修改/etc/grub.d/00_header文件中,添加密码记录

        生层新的grub.cfg配置文件

九、终端登录安全控制

  • 限制root只在安全终端登录

        安全终端配置:/etc/securetty

  • 禁止普通用户登录

        建立/etc/nologin文件

        删除nologin文件或重启后即恢复正常

  • touch /etc/nologin(禁止普通用户登录)
    rm -rf /etc/nologin(取消登录限制)

十、系统弱口令检测

  • joth the ripper,简称JR

        一款密码分析工具,支持字典式的暴力破解

        通过对shadow文件的口令分析,可以检测密码强度

        官方网站:http://www.openwall.com/john/

  • 安装JR工具

        安装方法

make clean 系统类型

        主程序文件为john

  • 检测弱口令账号

        获得Linux/unix服务器的shadow文件

        执行john程序,将shadow文件作为参数

  • 密码文件的暴力破解

        准备好密码字典文件,默认为password.lst

        执行john程序,结合--wordist=字典文件

十一、网络端口扫描

  • NMAP

        一款强大的网络扫描、安全检测工具

        官方网站:http://nmap.org/

        centos7.3光盘中安装包nmap-6.40-7.el7.x86_64.rpm

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值