云计算【第一阶段(23)】Linux系统安全及应用

一、账号安全控制

1.1、账号安全基本措施

1.1.1、系统账号清理

  • 将非登录用户的shell设为/sbin/nologin
  • 锁定长期不使用的账号
  • 删除无用的账号
1.1.1.1、实验1

用于匹配以/sbin/nologin结尾的字符串,$ 表示行的末尾。

(一般是程序用户改为nologin)

grep "/sbin/nologin$" /etc/passwd

usermod -s /sbin/nologin 用户名

改回去

1.1.1.2、实验2

账号锁住

usermod -L wangwu #锁定账号

或passwd -l wangwu锁定用户账户

passwd -S wangwu# 查看账号状态

解锁(需要有密码不然要加p)

usermod -U wangwu

passwd -u wangwu

1.1.1.3、实验3

删除无用账号

1.1.1.4、锁定文件

attr 属性名

如果服务器中的用户账号已经固定,不再进行更改,还可以采取锁定账号配置文件的方法。使用 chattr 命令,分别结合"+i""-i"选项来锁定、解锁文件,使用 lsattr 命令可以查看文件锁定情况

锁 chattr +i /etc/passwd /etc/shadow

测试添加一个用户

查 lsattr /etc/passwd /etc/shadow

解 chattr -i /etc/passwd /etc/shadow

1.1.2、密码安全控制

  • 设置密码有效期
  • 要求用户下次登录时修改密码
1.1.2.1、实验1

vim /etc/login.defs

对新建的用户有效

其中PASS_MIN_LEN:指定密码的最小长度,默认不小于 5 位,但是现在用户登录时验证已经被 PAM 模块取代,所以这个选项并不生效。

企业会把密码有效期改为30 60 90 天这样

1.1.2.1、实验2

密码失效时间M m是需要修改密码的最小间隔,也就是几天可以修改一次密码(0表示随时可以修改)

当使用 -d 0 的时候,下一次登录需要强制修改密码(d本身代表密码最近一次被更改的日期)

1.1.3、命令历史限制

历史命令会翻到诸如密码或其他操作,我们要减少历史记录的数量

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

history -c 临时的清除

1.1.3.1、实验1

用于将来的新登录的用户

在vim /etc/profile

改成10

需要重启后生效

1.1.3.2、实验2

在.bash_history删除

或者

echo " " > .bash_history #清空记录

这个记录不影响然当前 shell 会话中 history 命令的输出,因为 history 命令显示的是当前 shell 会话中存储的历史记录,而不是从 .bash_history 文件中读取的内容。

并且当 shell 会话结束时,这些记录会被追加到 .bash_history 文件中,但是还是要清。

其他办法

如果需要每个用户登出时都清除输入的命令历史记录,可以在/etc/skel/.bash_logout文件中添加下面这行rm -f $HOME/.bash_history 。这样,当用户每次注销时,.bash_history文件都会被删除

1.1.3.3、实验3

或者写在其他.bash_profile或者.bashrc 下

关于环境变量的读取顺序:

/etc/profile --> .bash_profile --> .bashrc --> /bin/bash

修改/etc/profile文件需要管理员权限

1.1.4、终端自动注销

需要注意的是,当正在执行程序代码编译、修改系统配置等耗时较长的操作时,应避免设置 TMOUT 变量。必要时可以执行"unset TMOUT"命令取消 TMOUT 变量设置

1.1.4.1、实验1

将后面新登录用户都有这个设置

vim /etc/profile

G到最后一行补充

1.1.5、权限的限制

限制su命令用户

默认情况下,任何用户都允许使用 su 命令,从而有机会反复尝试其他用户(如 root) 的登录密码,这样带来了安全风险。为了加强 su 命令的使用控制,可以借助于 pam_wheel 认证模块,只允许极个别用户使用 su 命令进行切换。

1.1.5.1、实验1

在/etc/pam.d/su文件里设置禁止用户使用su命令

a、以上两行是默认状态(即开启第一行,注释第二行),这种状态下是允许所有用户间使用su命令进行切换的。

b、两行都注释也是运行所有用户都能使用su命令,但root下使用su切换到其他普通用户需要输入密码;如果第一行不注释,则root使用su切换普通用户就不需要输入密码(pam rootok. so模块的主要作用是使uid为0的用户,即root用户能够直接通过认证而不用输入密码。)

c、如果开启第二行,表示只有root用户和wheel组内的用户才可以使用su命令

d、如果注释第一行,开启第二行,表示只有whee1组内的用户才能使用su命令,root用户也被禁用su命令。

实现过程如下:将授权使用 su 命令 的用户添加到 wheel 组,修改/etc/pam.d/su 认证配置以启用 pam_wheel 认证。

锁定文件

二、系统引导和登录控制

三、弱口令检测

JohntheRipper是一款开源的密码破解工具,可使用密码字典(包含各种密码组合的列表文件)来进行暴力破解。

切换到 /opt目录下

1.解压工具包

2.安装软件编译工具

3.切换到src子目录,进行编译安装

4.准备待破解的密码文件

5.执行暴力破解

6.查看已破解出的账户列表

bash 复制代码
#使用程序前的一些准备
tar -zxvf john-1.8.0.tar.gz
yum install -y gcc gcc-c++ make
cd /opt/john-1.8.0/src
make clean linux-x86-64

#准备文件
cp /etc/shadow /opt/shadow.txt

#运行破解
cd /opt/john-1.8.0/run
./john   /opt/shadow.txt

#查看
./john --show /opt/shadow.txt


#指定的字典
/john --wordlist=./password.lst /opt/shadow.txt 

四、端口扫描

相关推荐
vvw&4 分钟前
如何在 Ubuntu 22.04 上安装 Graylog 开源日志管理平台
linux·运维·服务器·ubuntu·开源·github·graylog
大哥_ZH8 分钟前
Linux umami在国产麒麟系统安装网站统计工具(只能上国内网站的系统)
linux·服务器
o(╥﹏╥)24 分钟前
在 Ubuntu 上安装 VS Code
linux·运维·vscode·ubuntu·vs
AI慧聚堂1 小时前
自动化 + 人工智能:投标行业的未来是什么样的?
运维·人工智能·自动化
不爱学英文的码字机器1 小时前
[Linux] Shell 命令及运行原理
linux·运维·服务器
cdut_suye1 小时前
Linux工具使用指南:从apt管理、gcc编译到makefile构建与gdb调试
java·linux·运维·服务器·c++·人工智能·python
qq_433618441 小时前
shell 编程(三)
linux·运维·服务器
鸭梨山大。1 小时前
Jenkins 任意文件读取(CVE-2024-23897)修复及复现
安全·中间件·jenkins
企业管理8MSaaS1 小时前
如何选择适合Scrum团队的项目管理系统?
云计算·scrum
苹果醋31 小时前
2020重新出发,MySql基础,MySql表数据操作
java·运维·spring boot·mysql·nginx