一.账号安全基本措施 1.系统账号清理 ·将非登录用户的Shell设为/sbin/nologin ·锁定长期不使用的账号 ·删除无用的账号 ·锁定账号文件passwd shadow #chattr +i /etc/passwd /etc/shadow #lsattr /etc/passwd /etc/shadow
2.密码安全控制 ·设置密码有效期 ·要求用户下次登录时修改密码 #vi /etc/login.defs //适用于新建用户 #chage -M 30 lisi //适用于已有用户
3.命令历史限制 ·减少记录的命令条数 ·注销时自动清空命令历史
4.终端自动注销 ·闲置600秒后自动注销 #vi /etc/profile #vi ~/.bash_logout
二.使用su命令切换用户 1.用途及用法 ·用途:Substitute User,切换用户 ·格式: su - 目标用户 2.密码验证 ·root→任意用户,不验证密码 ·普通用户→其他用户,验证目标用户密码 $su - root //带-选项表示将使用目标用户的登录Shell环境 #whoami 3.限制使用su命令的用户 ·将允许使用su命令的用户加入wheel组 ·启用pam_wheel认证模块 #gpasswd -a tsengyia wheel #vi /etc/pam.d/su #echo “SU_WHEEL_ONLY yes” >>/etc/login.defs 加入语句到行末以上操作完毕后,能够再建立一个新的用户,然后用这个新建的用户测试会发现,没有加入到wheel组的用户,运行"su -"命令。即使输入了正确的rootpassword,也无法登录为root 用户 4.查看su操作记录 ·安全日志文件:/var/log/secure
三.Linux中的PAM安全认证 1.su命令的安全隐患 ·默认情况下,任何用户都允许使用su命令,有机会反复尝试其他用户(如root)的登录密码,带来安全风险 ·为了加强su命令的使用控制,可借助于PAM认证模块,只允许极个别用户使用su命令进行切换 2.PAM(Pluggable Authentication Modules)可插拔式认证模块 ·是一种高效而且灵活便利的用户级别的认证方式 ·也是当前Linux服务器普遍使用的认证方式
四.PAM认证原理 1.一般遵循的顺序 ·Service(服务)→PAM(配置文件)→pam_*.so 2.首先要确定哪一项服务,然后加载相应的PAM的配置文件(位于/etc/pam.d下),最后调用认证文件(位于/etc/security下)进行安全认证 3.用户访问服务器时,服务器的某一个服务程序把用户的请求发送到PAM模块进行认证 4.不同的应用程序所对应的PAM模块是不同的
五.PAM认证的构成 1.查看某个程序是否支持PAM认证,可以用ls命令 ·示例:查看su是否支持PAM模块认证 #ls /etc/pam.d |grep su 2.查看su的PAM的配置文件:cat /etc/pam.d/su ·每一行都是一个独立的认证过程 ·每一行可以区分为三个字段 ①认证类型 ②控制类型 ③PAM模块及其参数
六.PAM安全认证流程 1.控制类型也称做Control Flags,用于PAM验证类型的返回结果 ①.required验证失败时仍然继续,但返回Fail ②.requisite验证失败则立即结束整个验证过程 ③.sufficient验证成功则立即返回,不再继续,否则忽略结果并继续 ④.optional不用于验证,只显示信息(通常用于session类型) 认证类型 1.认证管理(authentication management):接受用户名和密码,进行对该用户的密码进行认证 2.账户管理(account management):检查账户是否被允许登录系统,账号是否过期,账号的登录是否有时间限制 3.密码管理(password management):主要是用来修改用户的密码 4.回话管理(session management):主要是提供对回话的管理和记账(accounting)
七.使用sudo机制提升权限 1.sudo命令的用途及用法 ·用途:以其他用户身份(如root)执行授权命令 ·用法:sudo授权命令 2.配置sudo授权 ·visudo或者vi /etc/sudoers ·记录格式:用户 主机名列表=命令程序列表 #visudo 3.查看sudo操作记录 ·需启用Defaults logfile配置 ·默认日志文件:/var/log/sudo 4.查询授权的sudo操作 ·sudo -l
八.开关机安全控制 1.调整BIOS引导设置 ·将第一引导设备设为当前系统所在硬盘 ·禁止从其他设备(光盘,U盘,网络)引导系统 ·将安全几倍设为setup,并设置管理员密码 2.GRUB限制 ·使用grub2-mkpasswd-pbkdf2生成密钥 ·修改/etc/grub.d/oo_header文件中,添加密码记录 ·生成新的grub.cfg配置文件
九.终端登录安全控制 1.限制root只在安全终端登录 ·安全终端配置:/etc/securetty #vi /etc/securetty进入脚本 #tty5和#tty6:禁止root用户从终端tty5,tty6登录 2.禁止普通用户登录 ·建立/etc/nologin文件 ·删除nologin文件或重启后即可恢复正常 #touch /etc/nologin //禁止普通用户登录 #rm -rf /etc/nologin //取消上述登录限制
十.系统弱口令检测 1.Joth the Ripper,简称为JR ·一款密码分析工具,支持字典式的暴力破解 ·通过对shadow文件的口令分析,可以检测密码强度 ·官方网站:http://www.openwall.con/john 2.安装JR工具 ·安装方法:make clean 系统类型 ·主程序文件为john 3.检测弱口令账号 ·获得Linux/Unix服务器的shadow文件 ·执行john程序,将shadow文件作为参数 4.密码文件的暴力破解 ·准备好密码字典文件,默认为password.lst ·执行john程序,结合–wordlist=字典文件
十一.网络端口扫描 1.NAMP ·一款强大的网络扫描,安全检测工具 ·官方网站:http://nmap.org/ ·CentOS 7.3馆光盘中安装包nmap-6.40-7.e17.x86_64.rpm 2.NMAP的扫描 nmap [扫描类型] [选项] <扫描目标…> 3.常用的扫描类型 ①.-sS,TCP SYN扫描(半开扫描):只向目标发出SYN数据包,如果收到SYN/ACK相应包就认为目标端口正在监听,并立即断开连接;否则认为目标端口并未开放。 ②.-sT,TCP连接扫描:这是完整的TCP扫描方式,用来建立一个TCP连接,如果成功则认为目标端口正在监听服务,否则认为目标端口并未开放 ③.-sF,TCP FIN扫描:开放的端口会忽略这种数据包,关闭的端口会回应RST数据包。许多防火墙只对SYN数据包进行简单过滤,而忽略了其他形式的TCP攻击包,这种类型的扫描可间接检测防火墙的健壮性 ④.-sU,UCP扫描:探测目标主机提供哪些UDP服务,UDP扫描的速度会比较慢。 ⑤.-sP,ICMP扫描:类似于ping检测,快速判断目标主机是否存活,不做其他扫描。 ⑥.-P0,跳过ping检测:这种方式认为所有的目标主机是存活的,当对方不响应ICMP请求时,使用这种方式可以避免因无法ping通而放弃扫描
