Linux系统安全及应用

在这里插入图片描述

一、账号安全基本措施

1.1 系统账号清理

1.1.1 将用户设置为无法登录-- 改登录shell

登录shell是用户与计算机系统直接交互的接口,使用户能够通过命令行方式进行各种操作和管理。
所以让用户无法登录,其实就是将登录shell改为 /sbin/nologin,可以用usermod -s 更改。

usermod -s /sbin/nologin 用户名 //使用户不能登录

具体步骤:

cat /etc/passwd | grep 用户 //查看用户基本信息,找到登录shell

在这里插入图片描述

usermod -s /sbin/nologin 用户名  //更改登录shell

cat /etc/passwd | grep 用户名  //查看修改是否成功

在这里插入图片描述

su 用户名  //看看能否切换到目标用户

在这里插入图片描述

1.1.2 删除用户 userdel

userdel [选项] 用户名  //删除用户

在这里插入图片描述

userdel -r 用户名    //删除用户和此用户的家目录

在这里插入图片描述

1.1.3 锁定用户

方式一
usermod -L 用户名   锁定用户
usermod -U 用户名   解锁用户

方式二
passwd -l 用户名    锁定用户
passwd -u 用户名    解锁用户

1.1.4 锁定配置文件 chattr

chattr 命令用于修改文件或目录的属性,设置文件的特殊属性,使其具有更高级的保护或控制

chattr [选项] 文件名

[选项]
+i 将文件设置为“不可修改”,即无法被删除、重命名、修改内容或链接的操作
-i 取消对文件的“不可修改”属性

+a 只能向文件中添加内容,无法修改或删除已有内容

通过锁定配置文件 /etc/passwd 和 /etc/shadow ,可以防止恶意修改或者误修改,保证系统和数据的安全性。

chattr +i  /etc/passwd /etc/shadow

在这里插入图片描述

1.2 密码安全

1.2.1 对新建用户

编辑 /etc/login.defs 文件来设置密码规则

vim /etc/login.defs              
.....
PASS_MAX_DAYS   99999
PASS_MIN_DAYS   0
PASS_MIN_LEN    5
PASS_WARN_AGE   7
....
:wq    保存退出

在这里插入图片描述

PASS_MAX_DAYS:指定用户密码的最长有效天数
PASS_MIN_DAYS:指定在更改密码之间必须等待的最小天数

PASS_MIN_LEN: 指定用户密码的最小长度

PASS_WARN_AGE:指定在密码过期之前的多少天开始向用户发出警告

1.2.2 对已有用户 chage

chage [选项] 用户名
-m:密码可更改的最小天数,m=0 代表任何时候都可以更改密码
-M:密码保持有效的最大天数

-w:用户密码到期前,提前收到警告信息的天数
-E:帐号到期的日期。过了这天,此帐号将不可用
-d:上一次更改的日期
-i:停滞时期。如果一个密码已过期这些天,那么此帐号将不可用。
-l:例出当前的设置。由非特权用户来确定他们的密码或帐号何时过期。
 chage -d  0 用户名  //强制用户下一次登录要修改密码

1.3 自动注销

设置自动注销时间

方式一

vim  .bashrc    对当前用户生效

export TMOUT= ..    // 闲置多久自动关闭当前终端

:wq
. .bashrc

kkiaddld

方式二

vim  /etc/proflie   对所有用户生效

export TMOUT=..
:wq

reboot

1.4 清除命令历史

1.4.1 查看历史命令

history   //查看历史命令

在这里插入图片描述

1.4.2 历史命令限制

方式一、注销时清空历史命令

vim .bash_logout 
.. ..
echo ' ' > /root/.bash_history   //空文件导入
...
:wq

. .bash_logout   //应用修改
方式二、修改全局配置文件

vim /etc/proflie // 修改此文件  全局生效
.....
HISTSIZE =....(自定义数字)    //最大显示
....
:wq  

reboot  //重启应用修改

在这里插入图片描述

在这里插入图片描述

补充知识
. .bashrc = source .bashrc  //刷新文件  应用修改  效果等同于重启刷新

echo $x   //查看设置的变量

如果是自定义的变量 要加export
export ... (全局生效)

echo  xxx  | passwd --stdin 用户名    //非人机交互式改密码

在这里插入图片描述

二、用户切换和用户提权

2.1 用户切换 su命令

su命令即 switch user,命令可以切换用户身份,并且以指定用户的身份执行命令

命令格式
su [options...] [-] [user [args...]

su [选项] 用户名      //不完全切换,上一个用户的部分设置会保留

su -  用户名          //完全切换 ,相当于重新登录,


查看su操作记录
安全日志文件:/var/log/secure
# su 普通用户 //切换到普通用户需要密码

在这里插入图片描述

$ su root //切换到root用户需要输入密码

在这里插入图片描述

whoami 

在这里插入图片描述

2.2 用户提权 sudo命令

sudo命令使用户以超级用户的身份去执行命令

2.2.1 命令格式

sudo [选项] 命令

-V 显示版本编号

-l 显示出自己(执行 sudo 的使用者)的权限

-k 将会强迫使用者在下一次执行 sudo 时问密码(不论有没有超过 N 分钟)

-p 可以更改问密码的提示语,其中 %u 会代换为使用者的帐号名称, %h 会显示主机名称

-u 用户名  以指定用户的权限

-s 执行环境变数中的 SHELL 所指定的 shell

2.2.2 配置文件

/etc/sudoers 配置文件

vim /etc/sudoers   = visudo  //编辑配置文件

在这里插入图片描述

  1. user字段
    用户名或UID
    %组名或者%GID

  2. host字段
    IP地址或主机名
    ALL代表任意主机

  3. 代表用户字段
    用户名或UID
    ALL代表任意用户

  4. 命令字段(绝对路径
    command name (命令)
    directory (文件夹里的命令)
    sudoedit (可以编辑sudoers这个文件,变相变成管理员)
    Cmnd_Alias (命令别名)

在这里插入图片描述

举例 
 1.lucas   ALL=(root)   /usr/bin/ls
 用户lucas通过任何主机登入系统后,可以以root的身份运行ls命令(命令前必须加sudo)

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

2.%gtest    ALL=(ALL)   ALL
gtest组内的成员通过任何主机登入系统后,可以以任何用户的身份运行所有命令,(命令前加sudo)

2.2.3 sudo子目录

将所有提权都放在配置文件/etc/sudoers中,不便于管理。
通过再/etc/sudoers.d/下创建子目录,可以更好地管理sudo的授权规则。

/etc/sudoers.d/test1 test2.....(针对性的创建文件) 
举例
vim /etc/sudoers.d/test        //创建子目录(新配置文件)
...
test1 ALL= (root) sudoedit     //用户test1可以使用 sudoedit 命令
...
:wq


chmod 440 test   //设置权限,加固安全

在这里插入图片描述

2.3 区别

  1. 身份验证方式:
    su命令(切换用户)需要输入目标用户的密码来切换到目标用户的身份。

    sudo命令(以超级用户执行)需要输入当前用户的密码来验证身份。

  2. 执行命令的方式:
    su命令会切换用户的环境,包括当前工作目录和环境变量等。在切换用户后,需要重新设置所需的工作环境。

    sudo命令在当前用户的环境下以超级用户身份执行命令,不会切换用户的环境。这使得在执行完命令后,可以继续以当前用户身份继续工作,而不需要重新设置环境。

  3. 授权:
    su命令切换到目标用户后,拥有目标用户的完整权限

    sudo命令可以按需授予用户对特定命令或特定命令组合的访问权限。

在这里插入图片描述

三、PAM安全认证

3.1 什么是PAM?

PAM:Pluggable Authentication Modules,插件式的验证模块,用于管理和进行用户身份验证的模块化系统。

PAM提供了灵活和可定制的用户身份验证框架,使系统管理员能够根据需要配置和管理身份验证方式。

3.2 为什么要用PAM?

su命令的安全隐患

默认情况下,任何用户都允许使用su命令,有机会反复尝试其他用户(如root) 的登录密码,带来安全风险;

为了加强su命令的使用控制,可借助于PAM认证模块,只允许极个别用户使用su命令进行切换。

3.3 PAM认证原理

请添加图片描述

PAM认证一般遵循的顺序: Service (服务) --> PAM (配置文件) --> pam_*.so

1.用户访问(应用程序需要进行用户身份验证时,会调用PAM库来初始化PAM会话)

2.确定service类型(加载哪些身份验证模块,用户名、密钥、短信验证码等等)

3.PAM根据配置文件确定是否允许访问或者进一步的操作

4.PAM会话结束时,将最终的身份验证结果返回给应用程序

3.4 PAM配置文件

只有功能较强的功能模块才有配置文件,所以配置文件的数量小于功能模块的总数

  1. 配置文件路径

主要配置文件

/ etc / security / ,只有功能强大的pam模块才会有主配置文件

次要配置文件(优先生效

/etc/pam.d/

以 /etc/pam.d/login文件举例
vim /etc/pam.d/login

在这里插入图片描述

第一列:模块类型(module-type)

模块类型功能
Auth账号的认证和授权
Account帐户的有效性,与账号管理相关的非认证类的功能,如:用来限制/允许用户对某个服务的访问时间,限制用户的位置(例如:root用户只能从控制台登录)
Password用户修改密码时密码复杂度检查机制等功能
Session用户会话期间的控制,如:最多打开的文件数,最多的进程数等
-type表示因为缺失而不能加载的模块将不记录到系统日志,对于那些不总是安装在系统上的模块有用

第二列:Control:( 控制位)

  • required :一票否决,表示本模块必须返回成功才能通过认证,但是如果该模块返回失败,失败结果也不会立即通知用户,而是要等到同一type中的所有模块全部执行完毕,再将失败结果返回给应用程序,即为必要条件
  • requisite :一票否决,该模块必须返回成功才能通过认证,但是一旦该模块返回失败,将不再执行同一type内的任何模块,而是直接将控制权返回给应用程序。是一个必要条件
  • sufficient :一票通过,表明本模块返回成功则通过身份认证的要求,不必再执行同一type内的其它模块,但如果本模块返回失败可忽略,即为充分条件,优先于前面的
  • equired和requisiteoptional :表明本模块是可选的,它的成功与否不会对身份认证起关键作用,其返回值一般被忽略include: 调用其他的配置文件中定义的配置
  • optional 可选项

第三列:PAM模块

模块功能
认证管理(authentication management)接受用户名和密码,进而对该用户的密码进行认证
帐户管理(account management)检查帐户是否被允许登录系统,帐号是否已经过 期,帐号的登录是否有时间段的限制等
密码管理(password management)主要是用来修改用户的密码
会话管理(session management)主要是提供对会话的管理和记账
  1. 模块配置文件路径

/usr/lib64/security/

3.5 PAM安全认证流程

请添加图片描述

required  无论验证成功还是失败 会继续往下验证

requisite  验证成功则继续
           验证失败则立即结束整个验证过程

sufficient 验证成功则立即返回,否则忽略结果并继续 

optional   一般不用于验证,只显示信息

3.6 部分PAM功能模块

3.6.1 limits模块(重要)

1)功能

功能:限制用户的资源使用,例如:可打开的文件数量,可运行的进程数量,可用内存空间

2)ulimit 命令

通过ulimit命令可以查看和设置不同类型的资源限制

ulimit [选项]
ulimit -a 显示当前所有资源的限制

ulimit -c 设置core文件的最大大小,单位为blocks

ulimit -n 设置可以打开的最大文件描述符数

ulimit -u 设置用户可创建的最大进程数

ulimit -m 设置单个进程的物理内存限制,单位为KB

ulimit -v 设置单个进程的虚拟内存限制,单位为KB

ulimit -s 设置单个栈的最大大小,单位为blocks

ulimit -f 设置单个文件的最大大小,单位为blocks

在这里插入图片描述

四、端口扫描工具 nmap

4.1 nmap

yum -y install nmap  //安装nmap

在这里插入图片描述

nmap [选项] [扫描方式]

常用选项
-p:指定扫描的端口。
-n:禁用反向DNS解析(以加快扫描速度) ip转换成 域名  12222 2www.baidu.com       

常用扫描方式
-sP: ICMP 扫描,类似于ping检测,快速判断目标主机是否存活,不做其他扫描。
检测192.168.2.0/24网段有哪些存活主机
nmap -n -sP 192.168.2.0/24 

在这里插入图片描述

4.2 服务和端口号

服务端口号
HTTP80
HTTPS443
Telnet23
FTP21
SSH(安全登录)、SCP(文件传输)、端口重定向22
SMTP25
POP3110
WebLogic7001
TOMCAT8080
WIN2003远程登录3389
Oracle数据库1521
MS SQL* SEVER数据库sever1433
MySQL 数据库sever3306
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白幽幽白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值