linux系统安全和应用!

本文详述了Linux系统的账号安全控制措施,包括设置非登录用户shell为/sbin/nologin,锁定和删除无用账号,使用chattr保护passwd和shadow文件,密码有效期管理,命令历史清除等。此外,还介绍了用户切换su和sudo的使用,以及PAM安全认证。最后,讨论了系统引导的安全控制,如BIOS和GRUB设置,以及远程登录的安全配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.账号安全控制

1.基本安全措施

(1)系统账号清理

1)将非登录用户的shell设置为/sbin/nologin
2)锁定长期不适用的账号
3)删除无用的账号
4)锁定账号文件passwd,shadow
chattr命令

chatter命令对文件操作

+i 锁定文件 root也写不了

-i 解锁文件

+a 加上可追加内容的权限

不能编辑的情况可以用echo进行追加

lsattr 查看底层的文件权限 ll查不了

i 仅可读
a 可读可追加内容,其他都不可以

[root@localhost ~]# chattr +i /etc/shadow
[root@localhost ~]# lsattr /etc/shadow
----i----------- /etc/shadow
[root@localhost ~]# ll /etc/shadow
----------. 1 root root 1560 516 21:23 /etc/shadow
[root@localhost ~]# chattr -i /etc/shadow
[root@localhost ~]# lsattr /etc/shadow
---------------- /etc/shadow

[root@localhost ~]# touch 252
[root@localhost ~]# chattr +a 252
[root@localhost ~]# lsattr 252
-----a---------- 252
[root@localhost ~]# vim 252//+a无法编辑,只能追加


[root@localhost ~]# echo 123123 >>252
[root@localhost ~]# cat 252
123123

(2)密码安全控制

1)设置密码有效期
2)要求用户下次登录时需要登录密码

配置文件/etc/login.defs
决定shadow的密码配置信息,针对新用户
vim /etc/login.defs
打开查看
在这里插入图片描述
参数信息说明
PASS_ MAX_DAYS 99999:#密码最大有效期
PASS_ MIN_DAYS 0:#两次修改密码的最小间隔时间
PASS_ MIN_LEN 5:#密码最小长度>对于root无效
PASS_WARN_AGE 7:#密码过期前多少天开始提示
UID_ MIN 1000:#用户ID的最小值
UID_MAX 60000:#用户ID的最大值
GID_MIN 1000 :#组ID的最小值
GID_ MAX 60000:#组ID的最大值
#USERDEL_CMD /usr/sbin/userdel_local:#当删除用户的时候执行的脚本
CREATE_ HOME yes:#使用useradd的时候是够创建用户目录
USERGROUPS_ ENAB yes:#指定删除用户的时候是否同时删除用户组,准备地说,这里指的是删除用户的初始组
UMASK 077:用户主目录的权限默认设置为077 (文件目录默认为022,注释里面有这方面介绍)
MAIL_DIR /var/spool/mail:#创建用户时,要在目录/var/spoo/mail中创建一 个用户mail文件
ENCRYPT_ METHOD SHA512:#指定用户密码采用的加密规则,默认采用SHA512,这是新的密码加密模式,原先的Linux只能用DES或MD5加密
su_ WHEEL_ONLY yes:只允许wheel组用户可以使用su

chage命令

选项说明
-l 用户名:当前系统中用户的密码有效期
-h:chage命令的帮助信息
-d 日期 用户名:将最近一次密码设置时间设为最近日期
-d 0 用户名:设置用户下次登录必须更改密码
-E 日期 用户名:指定账号过期的时间
-M 天数 用户:多少天之后必须更改密码
-m:将两次改变密码之间相距的最小天数设为“最小天数”
-I:过期INACTIVE天数后,设定密码为失效状态
-R:chroot到的目录
-W:将过期警告天数设为“警告天数”

[root@localhost ~]# chage -l
用法:chage [选项] 登录

选项:
  -d, --lastday 最近日期        将最近一次密码设置时间设为“最近日期”
  -E, --expiredate 过期日期     将帐户过期时间设为“过期日期”
  -h, --help                    显示此帮助信息并推出
  -I, --inactive INACITVE       过期 INACTIVE 天数后,设定密码为失效状态
  -l, --list                    显示帐户年龄信息
  -m, --mindays 最小天数        将两次改变密码之间相距的最小天数设为“最小天数”
  -M, --maxdays 最大天数        将两次改变密码之间相距的最大天数设为“最大天数”
  -R, --root CHROOT_DIR         chroot 到的目录
  -W, --warndays 警告天数       将过期警告天数设为“警告天数”
  

[root@localhost ~]# chage -l lc
最近一次密码修改时间					:506, 2021
密码过期时间					:从不
密码失效时间					:从不
帐户过期时间						:从不
两次改变密码之间相距的最小天数		:0
两次改变密码之间相距的最大天数		:99999
在密码过期之前警告的天数	:7


[root@localhost ~]# chage -d 0 lc
[root@localhost ~]# chage -l lc
最近一次密码修改时间					:密码必须更改
密码过期时间					:密码必须更改
密码失效时间					:密码必须更改
帐户过期时间						:从不
两次改变密码之间相距的最小天数		:0
两次改变密码之间相距的最大天数		:99999
在密码过期之前警告的天数	:7

(3)命令历史注销清除

1)命令历史限制

减少记录的命令历史条数

注销时自动清空历史命令

2)终端自动注销
3)history命令

history查看历史命令,默认缓存1000条

[root@localhost ~]# ls -a
.   123  22        33  anaconda-ks.cfg  .bash_logout   bb       .cshrc     .ICEauthority         .local   tom           .xauthj7f0LU  .xauthz8KrPF  视频  下载
..  145  252       a   b                .bash_profile  .cache   .dbus      initial-setup-ks.cfg  qq       .viminfo      .xauthkVBbmK  公共          图片  音乐
11  195  .252.swp  aa  .bash_history    .bashrc        .config  .esd_auth  .lesshst              .tcshrc  .xauth3IOfDf  .Xauthority   模板          文档  桌面

history -c 清楚历史命令

source 立即执行

vim .bash_profile
设置限制多少秒后自动注销
在这里插入图片描述

root登录系统,history把命令记录在缓存中

执行logout登出之后,产生隐藏文件.bash_history
把history所有命令写入.bash_history,以便于下一次的查看
若删除.bash_history隐藏文件,因为history存的命令在缓存内,所有仍可以查看所有写出的命令

如果要彻底删除
先删除隐藏文件.bash_history
再history -c:清除命令

2.用户切换与提取su和sudo

su

su - 用户名
切换用户

root用户切换到其他用户不需要验证密码

普通用户切换到其他用户需要验证密码

查看当前系统变量

[root@localhost ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

su lc 表面是lc 实际还是root

[root@localhost ~]# su lc
[lc@localhost root]$ pwd
/root
[lc@localhost root]$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

su 直接进入root
在这里插入图片描述

sudo

sudo
在这里插入图片描述

配置文件 /etc/sudoers
vim 进入 配置
写入允许用户tom执行useradd命令
在这里插入图片描述
在这里插入图片描述
正常是使用visudo进行配置
visudo
在这里插入图片描述
说明:多个命令用逗号分隔

将用户加入wheel组也可以获得root权限
在这里插入图片描述

sudo -l 查看用户获得root的哪些权限

在这里插入图片描述

3.PAM安全认证

PAM是一种高效而且灵活便利的用户级别的认证方式,
也是linux系统普遍的使用的认证方式。

ls /etc/pam.d
在这里插入图片描述
查看su是否支持pam认证
ls /etc/pam.d | grep su

设置用户不能su 到root
需要配合2个文件

su的pam配置文件 /etc/pam.d/su
①vim /tec/pam.d/su在这里插入图片描述

第一列 认证类型
第二列 控制类型
第三列 pam的认证模块
如果有第四列 是参数

操作方法
第五行启用 不要注释
在这里插入图片描述

②vim /etc/login.defs
自定义最后一行加入表示开启
不在wheel组的用户不能用su登录切换到root

在这里插入图片描述

设置后验证不能切换到root
在这里插入图片描述

修改root不能远程登录

vim /etc/ssh/sshd_config

去掉注释 修改端口号

在这里插入图片描述
去掉注释 修改yes为no

查看有没有远程服务

[root@localhost ~]# systemctl status sshd
● sshd.service - OpenSSH server daemon
   Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
   Active: active (running) since 日 2021-05-16 22:24:37 CST; 17h ago
     Docs: man:sshd(8)
           man:sshd_config(5)
 Main PID: 7000 (sshd)
    Tasks: 1
   CGroup: /system.slice/sshd.service
           └─7000 /usr/sbin/sshd -D

516 22:24:37 localhost.localdomain systemd[1]: Starting OpenSSH server daemon...
516 22:24:37 localhost.localdomain sshd[7000]: Server listening on 0.0.0.0 port 22.
516 22:24:37 localhost.localdomain sshd[7000]: Server listening on :: port 22.
516 22:24:37 localhost.localdomain systemd[1]: Started OpenSSH server daemon.
516 22:25:09 localhost.localdomain sshd[16849]: Accepted password for root from 192.168.206.1 port 51650 ssh2
517 14:02:10 localhost.localdomain sshd[20973]: Accepted password for root from 192.168.206.1 port 52882 ssh2
517 14:13:45 localhost.localdomain sshd[21228]: Accepted password for root from 192.168.206.1 port 52960 ssh2

重启远程服务

[root@localhost ~]# systemctl restart sshd

PAM安全认证流程

四个过程

程序开始
验证开始
验证结束
程序后续动作

认证流程的四个状态
required:验证失败也继续下一步,走完四个流程–>验证结束
requisite:验证失败直接–>验证结束
sufficient:验证失败也继续下一步,走完流程
optional:不论失败成功,已经是最后一个流程,–>验证结束

二.系统引导和安全控制

1.开关机安全控制

调整BIOS引导设置

将第一引导设备设为当前系统所在硬盘
禁止从其他设备(光盘、U盘、网络)引导系统·
将安全级别设为setup,并设置管理员密码

GRUB限制

使用grub2-mkpasswd-pbkdf2生成密钥
修改/etc/grub.d/00_header文件中,添加密码记录
生成新的grub.cfg配置文件

2.终端及登录控制

安全终端配置文件
/etc/securetty

终端tty1-6,终端切换

禁止终端tty2登录root

vim /etc/securetty

tty2前面加注释#或者dd删除

登录用户使用tty2的终端就无法登录用户了

在这里插入图片描述
登录后显示内容,删除后恢复
在这里插入图片描述

三.端口扫描工具NMAP

namp端口扫描工具
在这里插入图片描述

扫描查看主机存活 -P
P只做ping的操作

在这里插入图片描述
-n 不进行域名解析 扫描速度相对快点

-P0 三次握手之前不进行ping的操作

在这里插入图片描述

-A 详细全面

在这里插入图片描述
-T完整的3次握手 tcp

-U udp

-p 指定端口扫描
在这里插入图片描述

评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值