系统安全及应用
一、系统账号清理
1、将非登录用户的shell设为/sbin/nologin;
2、锁定长期不使用的账号;
3、删除无用账号;
4、锁定账号文件passwd,shadow
二、chattr命令的用法
1、“+”:在原有参数设定基础上,追加参数;
2、“-”:在原有参数设定基础上,移除参数;
3、“=”;更新为指定参数设定。
“A”:文件或目录的atime(access time)不可被修改(modified),可以有效预防例如手提电脑,磁盘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=journal,则该参数自动失效;
“s”:保密性地删除文件或者目录,即硬盘空间被全部收回;
“u”:与s相反,当设定为u时,数据内容其实还存在磁盘中,可以用于undeletion。
各参数选项中常用到的是“a”和“i”。“a”选项强制只可添加不可删除,多用于日志系统的安全设定,而“i”是更为严格的安全设定,
只有superuser(root)或具有CAP_Linux_IMMUYABLE处理能力(标识)的进程能够施加该选项。
chattr命令的应用举例:
1、设定文件/etc/passwd /etc/shadow文件不能被修改、删除、创建链接并验证
2、解锁并yanzheng
三、密码安全控制
1、设置密码有效期;
2、要求用户下次登陆修改密码。
vi /etc/login.defs
……
PASS_MAX_DATS 30
(适用于新建用户)
chage –M 30 aaa (适用于已有用户)
chage –d 0 aaa (强制在下次登录时更改密码)
四、命令历史限制
1、减少记录的命令条数;
vi /etc/profile
HISTSIZE=200
2、注销时自动清空历史命令。
vi ~/.bash_logout
history -c
clear
history –c
该命令可以清空本次登入的所有输出命令,但不清空.bash_history文件,所以下次登陆后,旧命令还将出现,
历史命令是存在于当前用户根目录下的./bash_history文件。
echo > $home./bash_history
每个用户根目录下都有一个.bash_history文件用于保存历史命令,当每次注销时,本次登陆所执行的命令将被写入该文件。
所以可以直接清空该文件,下次登录上次保存的命令将消失,清空效果将在下次登陆生效。
五、使用su命令切换用户
1、用途:Substitute User 切换用户;
2、格式:su 目标用户
六、密码验证
1、root——任意用户 不验证密码;
2、普通用户——其他用户 验证目标用户的密码。
七、限制使用su命令的用户
1、将允许使用su命令的用户加入wheel组;
2、启用pam_wheel认证模块。
八:PAM安全认证流程
控制类型也称做Control Flags,用于PAM验证类型的返回结果。
1、required验证失败时仍然继续,但返回Fail;
2、requisite验证失败时立即结束整个验证过程,返回Fail;
3、sufficien验证成功则立即返回,不再继续,否则忽略结果并继续;
4、optional不用于验证,只显示信息(通常用于session类型)
九、PAM验证的构成
1、看某个程序是否支持PAM认证,可以用ls命令
例:查看su是否支持PAM模块认证
2、查看su的PAM配置文件
1、每一行都是一个独立的认证过程;
2、每一行可以区分为三个字段
认证类型,控制类型,PAM模块及其参数
PAM认证类型包括四种:
认证管理(authentication management):接受用户名称和密码,进而对该用户的密码进行认证;
账号管理(account management):检查账户是否被允许登陆系统,账号是否已经过期,账号的登陆是否有时间段的限制等;
密码管理(password management):主要用来修改用户的密码;
会话管理(session management):主要是提供对会话的管理和记账。
十、PAM认证原理
1、一般遵循的顺序:
Service(服务)——PAM(配置文件)——pam_*.so
2、首先要确定哪一项服务,然后加载相应的PAM的配置文件(位于/etc/pam.d下),最后调用认证文件(位于/lib/security下)进行安全认证
3、用户访问服务器时,服务器的某一服务程序把用户的请求发送到PAM模块进行认证
4、不同的应用程序所对应的PAM模块是不同的
十一、su命令的安全隐患
1、默认情况下,任何用户都允许使用su命令,有机会反复尝试其他用户(如root)的登陆密码,带来安全风险;
2、为了加强su命令的使用控制,可借助于PAM认证模块,只允许极个别用户使用su命令进行切换。
十二、PAM可插拔式认证模块
1、是一种高效而且灵活便利的用户级别的认证方式;
2、也是当前Linux服务器普遍使用的认证方式。
十三、使用sudo机制提升权限
1、sudo命令的用途及用法
(1)、以其他身份(如root)执行授权的命令
(2)、用法:sudo 授权命令
2、配置sudo授权
3、4个ALL代表的含义
(1)、从左到右第一个ALL代表的是用户;
(2)、从左到右第二个ALL代表的是机器;
(3)、从左到右第三个ALL代表的是新用户身份(sun_as_user,如root);
(4)、从左到右第四个ALL代表的是命令。
例
sudo –l可以查看结果
4、查看sudo操作记录
(1)、需启用Defaults logfile配置;
(2)、默认日志文件:/var/log/sudo
十四、GRUB限制
1、使用grub2-mkpasswd-pdkdf2生成密钥;
2、修改/etc/grub.d/00_header文件,添加密钥记录;
3、生成新的grub.cfg配置,重启按e查看
十五、限制root只在安全终端登陆
1、安全终端配置:/etc/securetty
十六、禁止普通用户登陆
1、建立/etc/nologin文件
2、删除nologin文件或重启后恢复正常
十七、Joth the Ripper,简称JR
1、一款密码分析工具,,支持字典式的暴力破解;
2、通过对shadow文件的口令分析,可以检测密码强度;
3、官方网站:http://www.openwall.com/john/
操作过程:
十八、网络扫描
rpm -ivh /mnt/Packages/nmap-****.rpm 安装nmap软件包
nmap -sT (tcp连接扫描) 127.0.0.1、192.168.4.0/24\192.168.4.100-200
-sU (UDP扫描) 127.0.0.1、192.168.4.0/24\192.168.4.100-200
-sP (icmp连接扫描) 127.0.0.1、192.168.4.0/24\192.168.4.100-200
-sS (tcp syn连接扫描) 127.0.0.1、192.168.4.0/24\192.168.4.100-200
-p (指定端口扫描) 127.0.0.1、192.168.4.0/24\192.168.4.100-200