SECURITY 服务安全与监控/su/sudo/

这篇博客介绍了Linux系统的基础防护措施,包括设置用户账号有效期、锁定/解锁账号、定期修改密码以及伪装登录信息。此外,还讲解了如何通过控制服务和启用日志来增强系统安全性,特别是记录普通用户执行的提权命令。

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

Linux基本防护
一.用户账号安全

1.设置帐号有效期
使用change工具

-**d 0,强制修改密码

  • -E yyyy-mm-dd,指定失效日期(-1取消)**

chage命令的语法格式:
chage –l 账户名称 //查看账户信息
chage –E 时间 账户名称 //修改账户有效期

**]# chage -l root**

最近一次密码修改时间 :从不
密码过期时间 :从不
密码失效时间 :从不
帐户过期时间 :从不
两次改变密码之间相距的最小天数 :0
两次改变密码之间相距的最大天数 :99999
在密码过期之前警告的天数 :7

  *]# chage -E  2019-05-31 tom          //指定tom账户失效时间
 **]# chage -l tom                            //查看tom账户信息****
    
    最近一次密码修改时间					:5月 27, 2019
    密码过期时间					:从不
    密码失效时间					:从不
    帐户过期时间						:5月 31, 2019
    两次改变密码之间相距的最小天数		:0
    两次改变密码之间相距的最大天数		:99999
    在密码过期之前警告的天数	:7


 **]# chage -d 0 tom**                      //强制修改tom密码
 
 **]# chage -l tom**           
最近一次密码修改时间					:密码必须更改
密码过期时间					:密码必须更改
密码失效时间					:密码必须更改
帐户过期时间						:5月 31, 2019
两次改变密码之间相距的最小天数		:0
两次改变密码之间相距的最大天数		:99999
在密码过期之前警告的天数	:7

2.帐号的锁定/解锁**
** 使用passwd命令
— -l 锁定、-u 解锁、-S 看状态**

**]# echo 123 | passwd --stdin tom                        //设定tom的密码
**]# passwd -l tom                                              //锁定用户 tom 的密码 。
**]# passwd -S tom                                          //查看tom密码状态
**tom LK 1970-01-01 0 99999 7 -1 (密码已被锁定。)
**]# passwd -u tom                                     //解锁用户 tom 的密码。**********

3.强制定期修改密码
配置文件/etc/login.defs
-对新建的用户有效
主要控制属性

  • PASS_MAX_DAYS

  • PASS_MIN_DAYS

  • PASS_WARN_AGE

    ]# vim /etc/login.defs // 定义默认有效期
    PASS_MAX_DAYS 99999 (用户有效期 $ [99999/365]=273)
    PASS_MIN_DAYS 0
    PASS_MIN_LEN 5
    PASS_WARN_AGE 7

4.伪装登录信息]
配置文件/etc/issue、 /etc/issue.net
–分别适用于本地、远程登录
–默认会提示内核、系统等版本信息

修改tty登录的提示信息,隐藏系统版本
1)账户在登录Linux系统时,默认会显示登陆信息(包括操作系统内核信息)
/etc/issue这个配置文件里保存的就是这些登陆信息,修改该文件防止内核信息泄露。

]# cat /etc/issue                                                                       //确认原始文件
Red Hat Enterprise Linux Server release 6.5 (Santiago)
Kernel \r on an \m

]# cp /etc/issue /etc/issue.origin //备份文件

]# vim /etc/issue //修改文件内核信息
“Windows Server 2012 Enterprise R2”
“NT 6.2 Hybrid”

2)测试版本伪装效果
退出已登录的tty终端,或者重启Linux系统,刷新后的终端提示信息会变成自定义的文本内容,如图-1所示。
在这里插入图片描述
]# ssh root@192.168.4.52 //退出linux,重启系统
]# cat /etc/issue
“Windows Server 2012 Enterprise R2”
“NT 6.2 Hybrid”

文件系统安全
1.程序和服务控制
禁用非必要的系统服务
----使用systemctl、chkconfig工具

]# chkconfig httpd off (RedHat 6)
]# chkconfig httpd on
]# service httpd start
]# service httpd stop

``

]# systemctl enable httpd (RedHat7)
]# systemctl disable httpd
]# systemctl start httpd
]# systemctl stop httpd

*2.锁定/解锁保护文件*

.EXT3/EXT4的文件属性控制
-- chattr 、lsattr
+、-、=控制方式

-----属性 i:不可变    (immutable)
-----属性 a:仅可追加 (append only)

===============
    ]# chattr +i /etc/hosts
    ]# echo "1.2.3.4  wwww.qqq.com" >> /etc/hosts
    -bash: /etc/hosts: 权限不够
    ]# chattr -i /etc/hosts
    ]# echo "1.2.3.4  wwww.qqq.com" >> /etc/hosts

======================
练习:
]# useradd zhangsan                                  //创建用户zhangsan
]# chage  -E  2017-12-31 zhangsan         //使xx用户在2017.12.31日失效
]# passwd -l  zhangsan                           //临时锁定zhangsan用户
]# passwd -S  zhangsan                       //验证效果
]# echo 123 | passwd --stdin zhangsan  
]# passwd -u zhangsan                       //解除对zhangsan用户的锁定

]# chattr +i /etc/resolv.conf                                    //锁定文件
]# chattr +i /etc/hosts                                            //锁定文件
]# cat  /etc/issue                                                 //确认原始文件
]# cp /etc/issue /etc/issue.origin                         //备份文件
]# vim  /etc/issue                                               //修改tty终端提示
"Windows Server 2012 Enterprise R2"    //设置登录前看到的内容,防止版本内核信息泄露
"NT 6.2 Hybrid"

########################################################################
**二.用户切换与提交****
 2.1. Su切换用户身份
 
2.1.1切换与提交的应用场景
.切换用户身份,when?
-SSH远程管理
-运维测试
.提升执行权限,when?
--管理权限细分

2.1.2 Su切换的基本用法
Substiute User,换人
--快速切换为指定的其他用户
-普通用户执行时,需验证目标用户的口令
-root用户执行时,无需验证命令

命令格式
-用法1:su 【-】【目标用户】
-用法2:su 【-】-c “命令”【目标用户】

1)从普通用户切换为root账户身份(如果没有普通账户则需要先创建)
=```
]# useradd lxh
]# echo 123 | passwd  --stdin lxh
]# su  - lxh                                                 //切换到普通用户lxh
]$ whoami                                                //查看当前用户
]$ su -                                                    //默认切换到root用户
]# whoami                                            //确认结果

`2)以普通身份创建文件(如果没有普通账户则需要先创建),以root身份重启服务

=====
    root]# su - lxh -c   "touch /tmp/test.txt"            //管理员切换普通用户创建文件
    root]# ll     /tmp/test.txt 
    root]# su  -   lxh
    lxh]$ ls 
    lxh]$ ls   /tmp/test.txt 
    lxh]$ su - -c   "systemctl restart sshd"
    密码:
    lxh]$ su - root

2.1.3****Su操作示例****
 从普通用户切换为root,并登录新的Shell环境
 --执行su -,或者 -root
 --不指明目标用户时,默认视为root
 
=
     ]$ whoami                              //查看当前用户
     ]$ su -                                    //默认切换到root用户
     ]# whoami                             //确认结果

---root以指定的普通用户身份执行任务
---以用户tom的身份创建目录
--以用户tom的身份执行管理员操作会出错

===
    ]# su - tom -c "mkdir /home/tom/test"
    ]# su - nb -c "systemctl restart sshd"
    Error creating textual authentication agent

**2.1.4 分析su切换的使用情况**
安全日志/var/log/secure
记录su验证、Shell开启与关闭

=
 root]# tail  /var/log/secure
  May 27 12:08:27 52 su: pam_unix(su-l:session): session closed for user nb
  May 27 12:12:26 52 su: pam_unix(su-l:session): session opened for user tom by root(uid=0)

opened ---su切换登入成功
Closed---su会话断开成功


**2.2 Sudo提升执行权限**
  2.2.1.Sudo提权的基本用法
  Super or another Do, 超级执行
--管理员预先为用户设置执行许可
--被授权用户有权执行授权的命令,验证自己的口令
命令格式1 :sudo 特权命令
命令格式2:sudo 【-u 目标用户】 特权命令
查看自己的sudo授权:sudo -l

==
    ]# sudo -l       
    用户 root 可以在 52 上运行以下命令:
    (ALL) ALL
    ]# sudo -u lxh mkdir /tmp/mdir                                //以用户lxh的权限新建一个文件夹   
   
   ]# ls -ld /tmp/mdir/
    drwxr-xr-x. 2 lxh lxh 6 5月  27 12:25 /tmp/mdir/    //查看文件夹的所属权限

=
    52 ]# sudo -u lxh mkdir /tmp/mdir                             //以用户lxh的权限新建一个文件夹   
    52]# ls -ld /tmp/mdir/
    drwxr-xr-x. 2 lxh lxh 6 5月  27 12:25 /tmp/mdir/     //查看文件夹的所属权限

***2.2 .1用户提权作用:配置系统的普通用户可以执行root用户的命令****

2.2.2主配置文件   /etc/sudoers

2.2.3 修改文件 
]# vim  /etc/sudoers 
或
]# visudo

2.2.4 提权配置格式
普通用户名    主机名=命令列表
%用户组名   主机名=命令列表(绝对路径)

2.2.5 普通用户执行sudo提权命令

2.2.6 普通用户查看可以使用提权的命令:sudo -l

2.2.7 提权列子:

=
    ]# vim /etc/sudoers
      dachui localhost,52=/usr/bin/systemctl * httpd, /usr/bin/vim /etc/httpd/conf/httpd.conf
      teichui localhost,52=/usr/bin/systemctl * mysqld, /usr/bin/vim /etc/my.cnf
      nb localhost,52=/usr/bin/systemctl * httpd, /usr/bin/systemctl * mysqld , /usr/bin    \
     /vim /etc/httpd/conf/httpd.conf, /usr/bin/vim /etc/my.cnf

2.2.8别名设置(给多个值,起一个)
命令别名  Cmnd_Alias  名字=命令列表
主机别名  Host_Alias  名字=主机名列表
用户别名  User_Alias  名字=用户名列表

==
cmnd_Alias MGMWEB=/usr/bin/systemctl * httpd , /usr/bin/vim
/etc/httpd/conf/httpd.conf
Cmnd_Alias MGMDB=/usr/bin/systemctl * mysqld , /usr/bin/vim /etc/my.cnf
Cmnd_Alias MGMSOFT=/usr/bin/rpm , /usr/bin/yum

Host_Alias MYSER=localhost,host52
daichui MYSER=MGMWEB , MGMSOFT
tiechui MYSER=MGMDB , MGMSOFT
nb MYSER=MGMWEB , MGMDB , MGMSOFT

2.2.9 启用日志
作用:记录普通用户执行过的提权命令

 ]# vim   /etc/sudoers	     		
Defaults  logfile="/var/log/sudo.log"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值