系统安全及应用

一.账号安全基本措施
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通而放弃扫描