账号安全
可以使用chattr:为文件添加特殊权限用的
+i:为文件加锁
-i:解锁
+a:添加一个a的属性
+c:该文件会被自动压缩
+d:dump:系统崩溃的时候导出备份
+s:会从磁盘彻底删除文件(包括数据)
+u:不会删除或磁盘的数据
只有root用户有权限
密码安全控制
pam安全认证
(pluggable authentication modules)给我们提供了密码相关策略(可插拔认证模块,高效、灵活、便利的用户级别的认证方式,仅限于redhat系统里)
pam 认证原理如下所示:
pam 认证一般遵循的顺序:service(服务)→pam(配置文件)→pam_*.so;
pam 认证首先要确定哪一项服务,然后加载相应的 pam 的配置文件(位于/etc/pam.d
下),最后调用认证文件(位于/lib/security 下)进行安全认证;
用户访问服务器的时候,服务器的某一个服务程序把用户的请求发送到 pam 模块进行
认证。不同的应用程序所对应的 pam 模块也是不同的。
如果想查看某个程序是否支持 pam 认证,可以用 ls 命令进行查看
pam 认证类型包括四种:
认证管理(authentication management):接受用户名和密码,进而对该用户的密码进
行认证;
帐户管理(account management):检查帐户是否被允许登录系统,帐号是否已经过
期,帐号的登录是否有时间段的限制等;
密码管理(password management):主要是用来修改用户的密码;
会话管理(session management):主要是提供对会话的管理和记账。
控制类型也可以称做 control flags,用于 pam 验证类型的返回结果。
required 验证失败时仍然继续,但返回 fail
requisite 验证失败则立即结束整个验证过程,返回 fail
sufficient 验证成功则立即返回,不再继续,否则忽略结果并继续
optional 不用于验证,只是显示信息(通常用于 session 类型)
pam_pwquality.so minlen=10不是单纯看数字的,也不是单纯用10来设置的,有自己的一套算法
!@#=6位
命令的历史
profile:全局环境变量文件,是给所有用户使用的,每个用户登录系统的时候内核要为该用户加载该文件中的变量信息
变量定义:
(前面是变量名)histsize=20(后面数字是变量值,数字改小一些是为了让系统少记录一些命令,也是一种安全上的体现)(注:变量声明前后不能有空格)
用户切换
root是超级管理者,权限最大
用su - zhangsan就可以切换到zhangsan的家目录(注:使用 - 更贴切一些)
不允许zhangsan随意切换root里:
执行su命令:针对su命令设置了一个认证机制,对应谁有权限用,谁不能用
想让zhangsan使用:要用gpasswd -a zhangsan wheel命令将zhangsan加入wheel组里
退出时用exit
命令的执行权限
用一个没有权限的账号登录系统没有权限,要对这个账号进行提权
sudo lvs:提权(提升权限):把不能执行的命令提升为可以执行
cat /etc/sudoers:为用户指定权限的文件,能让用户执行哪些命令都是由该文件决定的
用visudo打开文件把用户加进去,如果是几个账号要相同的权限,就要把账号加入到组%wheel就可以提权,但是操作是要输入对应用户的密码
挂载
让用户执行个别的指令:all=/sbin/mount挂载
/sbin/umount取消挂载
开机引导
grub引导密码
想改哪个内核的启动参数就按字母e进入
只对grub引导菜单做加密:
密文:字符加密处理
先用grub2-mkpasswd-pbkdf2(pbkdf2是一个算法)生成密码的密文(利用hash哈希算法)
生成出来的一长段密文一般放在01_users文件里,用vim 01_users打开,把if判断语句删掉,把password_pbkdf2 root后面的删掉,再把密文粘贴到root后面,最后再把fi也删掉,保存退出
用grub2-mkconfig -o grub.cfg命令将01_users载入到grub.cfg里,最后重启系统
明文:不加密
vim /etc/grub.d/01_users进入编辑器,只保留set superusers="root",其它的全部删掉
给root设置密码password root pwd123(明文)
用grub2-mkconfig -o /boot/grub2/grub.cfg命令将01_users载入到grub.cfg里,最后重启系统
linux终端
tty终端:默认6个(真实终端),tty1会有一个桌面
tty终端需要在真实的终端设备上使用的
vim /etc/securetty查看有哪些终端:
tty终端有很多,能用到的就tty1~tty6:这6个有哪个不想用就用“#”注释掉就不能用了,想继续用就把注释撤销就恢复了,reboot重启或者退出重新登录一下
touch /etc/nologin:创建一个空文件,解决多用户同时登录敲命令,管理员维护状态下禁止用户登录,这个操作不影响root
维护完之后用命令rm -rf /etc/nologin:删除该文件
xshell不是真实终端,是虚拟终端
扩展
想访问更多的终端,用命令vim /etc/systemd/logind.conf进入编辑器,把注释撤销,修改文件nautovts=6(默认值6改为12),保存退出
用systemctl restart systemd-logind命令重启服务
弱口令检测、端口扫描
密码破解
密码字典:pass.list(几十g、几百g都有)
工具压缩包:john the ripper
后缀名.c格式的文件里的语句是用c语言编写的原始代码,没有经过编译处理的
网络扫描
安装工具yum -y install nmap
nmap(多用于网络安全方面,扫描网络或者目标服务器,查看该设备所开放的端口)(入侵工具:hping入侵完之后可以伪造原ip)
内核本身是安全的,但是有些系统不安全是因为在内核之外装了好多程序,就需要内核监听、开放端口,内核就会造成漏洞
-ss,tcp syn:半开扫描(是一种特殊的形式)
-st,tcp 连接扫描:这是完整的 tcp 扫描方式
-sf,tcp fin 扫描:开放的端口会忽略这种数据包
-su,udp 扫描:探测目标主机提供哪些 udp 服务,udp 扫描的速度会比较慢
-sp,icmp 扫描:类似于 ping 检测,快速判断目标主机是否存活,不做其他扫描
-p0:跳过 ping 检测:这种方式认为所有的目标主机是存活的,当对方不响应 icmp
请求时,使用这种方式可以避免因无法 ping 通而放弃扫描
ss半开扫描
三步连接
tcp:三次握手会发出报文
syn=1:请求建立连接
ack=1 确认 并且 syn=1
ack=1(回应)
发表评论