系统安全及应用
一、账号安全基本措施
1.1系统账号清理
- 将用户设置为无法登录
- 锁定账户
- 删除账户
- 锁定账户密码 本质锁定
补充:/sbin/nologin却比较特殊,所谓“无法登陆”指的仅是这个用户无法使用bash或其他shell来登陆系统而已,并不是说这个账号就无法使用系统资源。
(1)将用户设置为无法登录:
[root@localhost ~]#useradd zhangzijun [root@localhost ~]#passwd zhangzijun [root@localhost ~]#tail -1 /etc/passwd [root@localhost ~]#chsh -s /sbin/nologin zhangzijun #修改shell属性 [root@localhost ~]#tail -1 /etc/passwd
(2)锁定用户
[root@localhost ~]#passwd -l zhangzijun [root@localhost ~]#su FZR [FZR@localhost root]$ su zhangzijun [FZR@localhost root]$ su root [root@localhost ~]#passwd -u zhangzijun [root@localhost ~]#su FZR [FZR@localhost root]$ su zhangzijun [zhangzijun@localhost root]$
(3)删除用户
[root@localhost ~]#userdel -r FZR #-r删除用户时同时删除与用户相关的所有文件 [root@localhost ~]#tail -3 /etc/passwd
(4)锁定配置文件chattr
-a:让文件或目录仅供附加用途,只能追加 -i:不得任意更动文件或目录 [root@localhost ~]#chattr +i /etc/passwd /etc/shadow [root@localhost ~]#useradd FZR [root@localhost ~]#lsattr /etc/passwd /etc/shadow [root@localhost ~]#chattr -i /etc/passwd /etc/shadow [root@localhost ~]#useradd FZR [root@localhost ~]#passwd FZR
(5)将已有用户的shell设为/sbin/nologin
[root@localhost ~]#usermod -s /sbin/nologin FZR
1.2密码安全控制
设置密码规则:
(1)对于新建用户:可以修改 /etc/login.defs 文件里的内容来设置密码规则
(2)对于已有用户:可以使用chage命令
[root@localhost ~]#chage [root@localhost ~]#chage -M 30 zhangzijun [root@localhost ~]#chage -d 0 zhangzijun
1.3历史命令处理
处理方式1:临时处理命令
[root@localhost ~]#history -c [root@localhost ~]#clear
处理方式2:修改/etc/profile 文件中的 HISTSIZE 变量值,默认1000,我们可以改小一点改成200
处理方式3:修改.bash_log 文件
处理方式4:修改.bashrc 文件(建议使用这种方式)
处理方式5:设置超时时间修改/etc/profile配置文件
1.4切换用户
(1)su命令可以切换用户身份,并且以指定用户的身份执行命令
切换用户的方式:
- su 用户名:非登录式切换,即不会读取目标用户的配置文件,不改变当前工作目录,即不完全切换
- su - 用户名:登录式切换,会读取目标用户的配置文件,切换至自已的家目录,即完全切换(建议使用)
注意:su 切换新用户后,使用 exit 退回至旧的用户身份,而不要再用 su 切换至旧用户,否则会生成很多的bash子进程,环境可能会混乱。
(2)限制用户使用su命令
如果su命令使用不了,那么我们就把用户加入到wheel组当中就好了
1.5PAM安全认证
- PAM:插件式的验证模块,1995 年开发的一种与认证相关的通用框架机制。PAM 只关注如何为服务验证用户的 API,通过提供一些动态链接库和一套统一的API接口,将系统提供的服务和该服务的认证方式分开,使得系统管理员可以灵活地根据需要给不同的服务配置不同的认证方式而无需更改服务程序一种认证框架,自身不做认证。
- PAM提供了对所有服务进行认证的中央机制,适用于本地登录,远程登录,如:telnet,rlogin,fsh,ftp,点对点协议PPP,su等应用程序中,系统管理员通过PAM配置文件来制定不同应用程序的不同认证策略;应用程序开发者通过在服务程序中使用PAM API(pam_xxxx( ))来实现对认证方法的调用;而PAM服务模块的开发者则利用PAM SPI来编写模块(主要调用函数pam_sm_xxxx( )供PAM接口库调用,将不同的认证机制加入到系统中;PAM接口库(libpam)则读取配置文件,将应用程序和相应的PAM服务模块联系起来。重复利用别人的开发的功能,不必自己开发,会话,密码验证等功能,已经做好了调用下就可以了未来通用性,所以有了pam框架。
PAM认证工作原理:
- PAM认证一般遵循这样的顺序:Service(服务)→PAM(配置文件)→pam_*.so。
- PAM认证首先要确定那一项服务,然后加载相应的PAM的配置文件(位于/etc/pam.d下),最后调用认证文件(位于/lib64/security下)进行安全认证。
实验1:shell模块,不允许使用/bin/csh的用户本地登录
实验2:pam_securetty.so模块,CentOS7允许root在telnet登录
服务端:
客户端:
1.6sudo
sudo:允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,如halt,reboot,su等等。这样不仅减少了root用户的登录和管理时间,同样也提高了安全性在最早之前,一般用户管理系统的方式是利用su切换为超级用户。但是使用su的缺点之一在于必须要先告知超级用户的密码。sudo于1980年前后推出,sudo使一般用户不需要知道超级用户的密码即可获得权限。首先超级用户将普通用户的名字、可以执行的特定命令、按照哪种用户或用户组的身份执行等信息,登记在特殊的文件中(通常是/etc/sudoers),即完成对该用户的授权(此时该用户称为“sudoer”);在一般用户需要取得特殊权限时,其可在命令前加上“sudo”,此时sudo将会询问该用户自己的密码(以确认终端机前的是该用户本人),回答后系统即会将该命令的进程以超级用户的权限运行。之后的一段时间内(默认为5分钟,可在/etc/sudoers自定义),使用sudo不需要再次输入密码。由于不需要超级用户的密码,部分Unix系统甚至利用sudo使一般用户取代超级用户作为管理帐号,例如Ubuntu、Mac OS X等。
sudo特性:
- sudo能够授权指定用户在指定主机上运行某些命令。如果未授权用户尝试使用 sudo,会提示联系管理员。
- sudo提供了丰富的日志,详细地记录了每个用户干了什么。它能够将日志传到中心主机或者日志服务器。
- sudo使用时间戳文件来执行类似的“检票”系统。当用户调用sudo并且输入它的密码时,用户获得了一张存活期为5分钟的票。
- sudo的配置文件是sudoers文件,它允许系统管理员集中的管理用户的使用权限和使用的主机。它所存放的位置默认是在/etc/sudoers,属性必须为0440。
通配符写法:
!取反:
(1)别名
- sudo别名有四种类型:
- User_Alias:(用户)
- Runas_Alias:(代表用户)
- Host_Alias:(登录主机)
- Cmnd_Alias:(命令)
别名格式:必须大写字母,数字可以使用但是不能放在开头
(2)子目录
(3)实验
1.7grub加密
1.8nmap扫描
1.9常用端口号总结