系统安全及应用,理论和实验的结合 冲☞

系统安全及应用

前言:

作为一种开放源代码的操作系统,Linux服务器以其安全,高效和稳定的显著优势得以广泛应用

可以从账号安全控制,系统引导和登录控制的角度控制Linux系统的安全优化

还可以使用基于Linux系统环境的弱口令检测,网络扫描等安全工具,查找隐患,及时采取有针对性的防护措施

1.基本安全措施:

1.1系统账号清理

将非登录用户的shell设为/sbin/nologin
锁定长期不使用的账号
删除无用的账号
锁定账号文件passwd shadow

在Linux系统中,除了用户手动创建的各种账号外,还包括随系统或程序安装过程而生成的其他大量账号,除了超级用户root外,其他大量账号只是用来维护系统运作,启动进程。一般不允许登录的,因此称位非登录用户。
在这里插入图片描述
对于Linux服务器中长期不用的用户账号,若无法确定是否该删除,可以暂时将其锁定。例如:锁定,解锁名为tom的用户账号,可以执行以下操作:
在这里插入图片描述
如果服务器中用户账户已经固定,不再进行更改,还可以采用锁定账号配置文件的方法。使用chattr命令,分别结合“+i” “-i” 选项来锁定,解锁文件,使用lsattr命令可以查看文件锁定情况
在这里插入图片描述
当帐号文件被锁定时就无法再添加删除账号,也不能更改用户登陆的密码,登录shell
在这里插入图片描述
注:加了注释就是不能登录的账户
在这里插入图片描述

1.2 密码安全控制

在不安全的网络环境中,为了降低密码被猜出或者被破解的风险,用户应该养成定期更改密码的习惯,这时候管理员可以在服务器端限制用户密码的最大有效天数,对于密码已过期的用户,登陆时被要求重设密码,否则将拒绝登录。
设置密码有效期
要求用户下次登录时修改密码

执行以下操作可将密码的有效期设为30天,适用于新用户
在这里插入图片描述
用于已有的用户在这里插入图片描述
执行以下操作可以强制要求用户tom下次登陆时重设密码
在这里插入图片描述

1.3历史命令限制

Shell环境的历史命令机制为用户提供了很大的便利,但另一方面也给用户带来了潜在风险,假如获得用户的命令历史文件,该用户的命令操作过程就会被泄露。在BASH终端环境中,历史命令记录条数由变量HISTSIZE控制,默认是1000条。通过修改/etc/profile文件中的HISTSIZE变量值,可以影响系统中的所有用户

  • 命令历史限制:
    减少记录的命令条数
    注销时自动清空命令历史
  • 终端自动注销
    闲置600s后自动注销

例如可以设置最多记录200条历史命令
在这里插入图片描述
适用于当前用户
在这里插入图片描述
除此之外,还可以修改用户宿主目录中的~ /.bash_logout文件,添加清空历史命令的操作语句,这样当用户退出已登录的Bash环境以后,所记录的历史命令将自动清空
在这里插入图片描述
注:还需rm -rf .bash history删除文件,登出后再次进入查看命令就消失了
在这里插入图片描述

1.4终端自动注销

Bash终端环境中,还可以设置一个闲置的超长时间,当超过指定时间没有任何输入即自动注销终端,这样可以有效避免当管理员不在时其他人员对服务器的误操作风险。

适用于新用户:
在这里插入图片描述
适用于当前用户:
在这里插入图片描述
注意当正在执行的等耗较长时间的操作时,应该避免设置TMOUT变量。必要时执行
unset TMOUT命令取消TMOUT变量。

2.用户切换与提权:

大多数Linux服务器并不建议用户以root用户进行登录。一方面可以大大减少因操作失误而导致的破坏,另一方面也降低了特权密码在不安全的网络中被泄露的风险。Linux系统提供了su sudo两种命令,其中su命令主要用来切换用户,而sudo命令用来提升执行权限

2.1 su命令

使用su命令可以切换为指定用户,从而具有该用户的所有权限。切换时需要对目标目录进行验证。
su和su -有区别的su只是切换了用户,当前目录不变
在这里插入图片描述
su - 不仅切换了用户,还切换到用户登录的家目录中
在这里插入图片描述
默认情况下,任何用户都允许使用su命令,从而会带来风险。为了加强su命令的使用控制,可以借助于pam_wheel认证模块,只允许极个别用户使用su命令进行切换,未加入到wheel组内的其他用户将无法使用su命令

例如:
1.先创建一个普通用户radmin,设置密码
在这里插入图片描述
2.将用户radmin加入到wheel组中,并且查看wheel组中是否有radmin的用户
在这里插入图片描述
3.修改/etc/pam.d/su 认证配置以启用pam_wheel认证
在这里插入图片描述
4.加入wheel组的用户radmin可以使用su命令,没有加入的使用不了
在这里插入图片描述

2.2sudo命令-提升执行权限

通过su命令可以非常方便的切换为另一个用户,但前提条件是必须知道目标用户的登陆密码,有一种方法,既可以让普通用户拥有一部份权限管理,又不需要将root用户密码告诉他,使用sudo命令可以提升执行权限
配置sudo授权
su命令的缺点
sudo命令的用途及用法
用途:以其他用户身份执行授权的命令
用法:sudo 授权命令

visudo 或者 vi /etc/sudoers :sudo机制的配置文件为/etc/sudoers,文件的默认权限是440,需要使用专门的visudo工具进行编辑。若使用vi编辑,保存时必须执行“:w!”命令强制操作,否则系统将提示为只读文件而拒绝保存
授权配置主要包括用户 主机 命令三部分

sudo配置记录的命令允许使用通配符*,取反符号“!”,当需要授权某个目录下的所有命令或取消取消其中个别命令时特别有用。
例如:若要授权用户tom可以执行/sbin/目录下除ifconfig route以外的其他所有程序
在这里插入图片描述
若要启用sudo日志记录以备管理员查看,应在/etc/sudores文件中增加“Defaults logfile”设置
在这里插入图片描述
2.3sudo实验:允许用户lisi通过sudo方式执行特权命令
1.创建用户lisi,并将其加入到wheel组中
在这里插入图片描述
2.允许lisi用户可以执行特权命令
在这里插入图片描述
3切换到lisi用户中,使用sudo -l命令查看自己的sudo配置
在这里插入图片描述

2.4查看用户获得哪些sudo授权

可以使用sudo - l的命令
查看sudo操作记录
需启用Defaults logfile 配置
默认日志文件:/var/log/sudo

3.PAM安全认证:

Su命令的安全隐患
*默认情况下任何用户都允许使用us命令,有机会反复尝试其他用户的登录密码。带来安全风险
*为了加强su命令的使用控制,可借助于PAM认证模块,只允许极个别用户使用su命令进行切换

PAM可插拔式认证模块
是一种高效且灵活便利的用户级别认证方式
也是当前LINUX服务器普遍使用的认证方式

PAM认证原理
一般遵循的顺序
Service—PAM----pam_*.so
PAM认证首先要确定哪一项服务,然后加载相应的PAM的配置文件(位于/etc/pam.d下),最后调用认证文件(位于/lib/security下)进行安全认证。用户访问服务器的时候,服务器某一个服务程序把用户的请求发送到PAM模块进行认证,不用的应用程序对应的PAM模块也是不同的。

PAM认证的构成
每一行都是一个独立的认证过程

每一行可以区分为三个字段
认证类型 控制类型 PAM模块及参数

PAM认证类型
认证管理 接受用户名和密码,进而对该用户的密码进行认证
账户管理 检查账户是否被允许登录系统,账号是否已经过期,账号的登录是否有时间段的限制等
密码管理 主要是用来修改用户的密码
会话管理 主要是提供对会话的管理和记账

PAM安全认证流程
在这里插入图片描述

4.系统引导和控制登录:

4.1开关机安全控制

1.调整BIOS引导设置
将第一引导设备设为当前系统所在硬盘
禁止从其他设备引导系统
将安全级别设为setup,并设置管理员密码

2.限制更改GRUB引导参数
使用grub2-mkpasswd-pbkdf2生成密钥
修改/etc/grub.d/00_header文件中,添加密码记录
生成新的grub.cfg配置文件

4.2实验:为GRUB引导菜单启用密码设置

1.为grub引导菜单启用密码,生成grub密码,查看是否添加,最后重启电脑认证
在这里插入图片描述
2.重启电脑按e键进入这里,输入刚刚设置的用户名和密码
在这里插入图片描述
默认是先硬盘启动
在这里插入图片描述

5. 终端及登录控制:

5.1减少开放的tty终端个

通过修改/etc/init/start-ttys.conf和/etc/sysconfig/init,可以减少开放的tty终端数量,例如只希望开启tty4 tty5 tty6三个终端,修改操作:
在这里插入图片描述

5.2禁止普通用户登录

当服务器正在进行备份或调试工作,可能不希望再有新的用户登录系统,这时只需简单的建立/etc/nologin文件即可
touch /etc/nologin

5.3禁止root用户登录

若要禁止root用户从tty5 tty6登录,可以修改/etc/securetty 文件,将tty5 6注释掉
在这里插入图片描述

6.弱口令检测:

*Joth the Ripper,简称为 JR*
一款密码分析工具,支持字典式的暴力破解
通过对shadow文件的口令分析,可以检测密码强度

6.1弱口令检测推荐步骤

1.安装JR工具
安装方法 make clean 系统类型
主程序文件为john

2.检测弱口令账号
获得LINUX服务器的shadow文件
执行john程序,将shadow文件作为参数

3.密码文件暴力破解
准备好密码字典文件,默认为passwd.lst
执行John程序,结合–wordlist=字典文件

6.2弱口令检测实验

1.先用xshell软件将jhon软甲引到centos中
在这里插入图片描述
解压安装包,并进入这个目录在这里插入图片描述
3.查看目录中信息
在这里插入图片描述
4.切换到src子目录并执行 make clean linux-x86-64的命令,执行编译过程
在这里插入图片描述
5.准备带破解的密码文件,执行暴力破解
在这里插入图片描述
6.查看已经破解的账户列表
在这里插入图片描述

7.网络扫描–NAMP:

一款强大的网络扫描,安全检测工具

可以探测局域网中那些主机在线,或者某台主机中开了那些端口

NMAP的扫描语法

nmap [扫描类型] [选项] <扫描目标…>

常用的扫描类型

-sS,-sT,-sF,-sU,-sP,-P0

-sT:TCP端口

-sU:UDP端口

-sP:ping

1.先用yum工具安装nmap工具
在这里插入图片描述
2.扫描本机的TCP端口号
在这里插入图片描述
3.扫描常用的UDP端口
在这里插入图片描述
4.扫描常用的TCP端口
在这里插入图片描述

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值