ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

系统安全与应用

2021-09-15 23:31:29  阅读:158  来源: 互联网

标签:系统安全 su etc 123 应用 root pam localhost


一、账号安全基本措施

1.系统账号清理

(1)将非登录用户的Shell设为/sbin/nologin

          usermod -S /sbin/nologin

(2)锁定长期不使用的账号

         usermod-L用户名

         passwd -|用户名

         passwd -S用户名

(3)删除无用的账号

         userdel [-r]将家目录一起删掉

(4)锁定账号文件passwd、shadow

        chattr +i /etc/passwd /etc/shadow(锁定文件并查看状态)

        Isattr /etc/passwd /etc/shadow(解锁文件并查看状态)

        chattr -i /etc/passwd /etc/shadow(解锁文件并查看状态)

[root@localhost ~]# chattr +i /etc/passwd /etc/shadow
[root@localhost ~]# lsattr /etc/passwd /etc/shadow
----i----------- /etc/passwd
----i----------- /etc/shadow
此刻阻止添加修改密码
[root@localhost ~]# chattr -i /etc/passwd /etc/shadow
[root@localhost ~]# lsattr /etc/passwd /etc/shadow
---------------- /etc/passwd
---------------- /etc/shadow
此刻解锁定可以添加修改密码

2.密码安全控制

(1)设置密码有效期

(2)要求用户下次登录时修改密码

适用于新用户
[root@localhost ~]# vim /etc/login.defs

#
# Please note that the parameters in this configuration file control the
# behavior of the tools from the shadow-utils component. None of these
# tools uses the PAM mechanism, and the utilities that use PAM (such as the
# passwd command) should therefore be configured elsewhere. Refer to
# /etc/pam.d/system-auth for more information.
#

# *REQUIRED*
#   Directory where mailboxes reside, _or_ name of file, relative to the
#   home directory.  If you _do_ define both, MAIL_DIR takes precedence.
#   QMAIL_DIR is for Qmail
#
#QMAIL_DIR      Maildir
MAIL_DIR        /var/spool/mail
#MAIL_FILE      .mail

# Password aging controls:
#
#       PASS_MAX_DAYS   Maximum number of days a password may be used.
#       PASS_MIN_DAYS   Minimum number of days allowed between password changes.
#       PASS_MIN_LEN    Minimum acceptable password length.
#       PASS_WARN_AGE   Number of days warning given before a password expires.
#
PASS_MAX_DAYS   30
PASS_MIN_DAYS   0
:wq                                                
适用于老用户
[root@localhost ~]# chage -M 30 123
                             天数 用户名
[root@localhost ~]# cat /etc/shadow |grep 123
123:$6$1VOb.Rd.emlYopvT$tclzmGjvX3.y/pLPumnx.L1Ew4s8bCP2Ovc7tjYGO0R3/LljHB/gqlhuyleqjjsv1lJTwDoyTobYAJmLiULkH0::0:30:7:::
              我们可以通过此查看密码有效期

[root@localhost ~]# chage -d 0 123强制每次登陆都需要改密码
[root@localhost ~]# echo “123123” |passwd --stdin 123
                       更改用户123的密码为123123

3.命令历史限制

减少记录的命令条数

注销时自动清空命令历史

(1)产看历史history

[root@localhost ~]# history
    1  vim /etc/sysconfig/network-scripts/ifcfg-ens33 
    2  vim /etc/sysconfig/network-scripts/ifcfg-ens33 
    3  systemctl restart network
   。。。(以下还有好多,此处省略)

(2)临时隐藏历史

[root@localhost ~]# history -c 临时隐藏历史,关机重启后会再次显现
[root@localhost ~]# history
    1  history

(3)减少记录的命令条数

[root@localhost ~]# vim /etc/profile
输入/HIS<回车>
HOSTNAME=`/usr/bin/hostname 2>/dev/null`
HISTSIZE=10(这这里修改)
:wq (保存退出)
[root@localhost ~]# source /etc/profile我们刷新一下
[root@localhost ~]# history
  391  chage -M 30 123
  392  cat /etc/shadow |grep 123
  393  su 123
  394  hitory
  395  history
  396  vim /etc/profile
  397  history
  398  source .bashrc
  399  source /etc/profile
  400  history
(现在我们就只显示最近十条历史)                                                     

(4)清空命令历史

[root@localhost ~]# vim .bashrc

# .bashrc
按o插入,在空白处输入
echo "" > ~/.bash_history                                                    
:wq  保存退出
[root@localhost ~]# source .bashrc 刷新
[root@localhost ~]# cat ./bash_history
(里面的东西空了)
[root@localhost ~]# reboot重启下
[root@localhost ~]# history历史就无了
    1  history

3.终端自动注销

闲置60秒后自动注销

[root@localhost ~]# vim .bash_profile
PATH=$PATH:$HOME/bin

export PATH
G到行尾,输入
export TMOUT=60 
<esc>输入                                                                          
:wq 保存退出
[root@localhost ~]# source .bash_profile  要刷新下
闲置60秒会自动注销

二、切换用户su命令

1.用途及用法

用途:Substitute User,切换用户

格式:su -用户名

2.密码验证

root→任意用户,不需要验证密码

普通用户→其他用户,需要验证目标用户的密码

[root@localhost ~]# su 123
[123@localhost root]$ pwd
/root
[123@localhost root]$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
不加-,保留目前所有的环境

[root@localhost ~]# su - 123
[123@localhost ~]$ pwd
/home/123
[123@localhost ~]$ echo $PATH
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/123/.local/bin:/home/123/bin
加-,使用目标用户的shell环境,目录切换为目标用户的家目录

 查看当前用户名

[123@localhost ~]$ whoami
123
查看当前用户名

3.闲置使用su命令的用户

将允许使用su命令的用户加入wheel组

启用pam_wheel

[root@localhost pam.d]# vim su
将第六行开启,删除#
#%PAM-1.0
auth            sufficient      pam_rootok.so
# Uncomment the following line to implicitly trust users in the "wheel" group.
#auth           sufficient      pam_wheel.so trust use_uid
# Uncomment the following line to require a user to be in the "wheel" group.
auth            required        pam_wheel.so use_uid(开启后只有wheel组里面的用户才能使用su)
auth            substack        system-auth
auth            include         postlogin
account         sufficient      pam_succeed_if.so uid = 0 use_uid quiet
account         include         system-auth
password        include         system-auth
session         include         system-auth
session         include         postlogin
session         optional        pam_xauth.so                                                                                
:wq
[123@localhost pam.d]$ su root
密码:
12^Hsu: 拒绝权限(这里权限被拒绝)

开启第二行,注释(#)第六行与注释第二行与第六行,都是所有用户都可以使用su命令

4. 查看su操作记录

安全日志文件:/var/log/secure

三、Linux中的PAM安全认证

1.su命令的安全隐患

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

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

2.PAM(Pluggable Authentication Modules)可插拔式认证模块

(1)是一种高效而且灵活便利的用户级别的认证方式

(2)是当前Linux服务器普遍使用的认证方式

3.PAM认证原理

(1)一般遵循的顺序

          Service (服务) →PAM (配置文件) →pam_ *.so

(2)首先要确定哪一项服务,然后加载相应的PAM的配置文件(位于/etc/pam.d下),最后调用认证文件(位于/lib64/security'下)进行安全认证

(3)用户访问服务器时,服务器的某一个服务程序把用户的请求发送到PAM模块进行认证

(4)不同的应用程序所对应的PAM模块是不同的

4.PAM认证的构成

(1)查看某个程序是否支持PAM认证,可以用Is命令

         示例:查看su是否支持PAM模块认证

[123@localhost pam.d]$ ls /etc/pam.d | grep su
ksu
su
sudo
sudo-i
su-l

(2)查看su的PAM配置文件: cat /etc/pam.d/su 

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

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

[123@localhost pam.d]$ cat /etc/pam.d/su
#%PAM-1.0
#auth		sufficient	pam_rootok.so
# Uncomment the following line to implicitly trust users in the "wheel" group.
#auth		sufficient	pam_wheel.so trust use_uid
# Uncomment the following line to require a user to be in the "wheel" group.
#auth		required	pam_wheel.so use_uid
auth		substack	system-auth
auth		include		postlogin
account		sufficient	pam_succeed_if.so uid = 0 use_uid quiet
account		include		system-auth
password	include		system-auth
session		include		system-auth
session		include		postlogin
session		optional	pam_xauth.so

 

第一列代表PAM认证模块类型

auth:对用户身份进行识别,如提示输入密码,判断是否为root。 

account:对账号各项属性进行检查,如是否允许登录系统,帐号是否已经过期,是否达到最大用户数等。

password:使用用户信息来更新数据,如修改用户密码。

session:定义登录前以及退出后所要进行的会话操作管理,如登录连接信息,
用户数据的打开和关闭,挂载文件系统。能连接几个终端

第二列代表PAM控制标记

required:表示需要返回一个成功值,如果返回失败,不会立刻将失败结果返回,而是继续进行同类型的下一验证,所有此类型的模块都执行完成后,再返回失败。

requisite:与reguired类似,但如果此模块返回失败,则立刻返回失败并表示此类型失败。

sufficient:如果此模块返回成功,则直接向程序返回成功,表示此类成功,如果失败,也不影响这类型的返回值。

optional:不进行成功与否的返回,一般不用于验证,只是显示信息(通常用于session类型),

include:表示在验证过程中调用其他的PAM配置文件。

比如很多应用通过完整调用/ etc/pam.d/syatem- auth (主要负责用户登录系统的认证工作)
来实现认证而不需要重新逐一去 写配置项。

5.PAM验证流程

四、 使用sudo机制提升权限

1.sudo(super userdo超级用户)命令的用途及用法

用途:以其他用户身份(如root)执行授权命令

用法:sudo 授权命令

2.配置sudo授权

(1)visudo或者vi /etc/sudoers

(2)记录格式

       用户     主机名列表=命令程序列表

[123@localhost root]$ sudo ifconfig ens33:2 192.168.91.202/24

我们信任您已经从系统管理员那里了解了日常注意事项。
总结起来无外乎这三点:

    #1) 尊重别人的隐私。
    #2) 输入前要先考虑(后果和风险)。
    #3) 权力越大,责任越大。

[sudo] 123 的密码:
对不起,用户 123 无权以 root 的身份在 localhost.localdomain 上执行 /sbin/ifconfig ens33:2 192.168.91.202/24。


[root@localhost ~]# visudo

## The COMMANDS section may have other options added to it.
##
## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL

## Allows members of the 'sys' group to run networking, software,
## service management apps and more.
# %sys ALL = NETWORKING, SOFTWARE, SERVICES, STORAGE, DELEGATING, PROCESSES, LOCATE, DRIVERS

## Allows people in group wheel to run all commands
%wheel  ALL=(ALL)       ALL

## Same thing without a password
# %wheel        ALL=(ALL)       NOPASSWD: ALL

## Allows members of the users group to mount and unmount the
## cdrom as root
# %users  ALL=/sbin/mount /mnt/cdrom, /sbin/umount /mnt/cdrom

## Allows members of the users group to shutdown this system
# %users  localhost=/sbin/shutdown -h now

## Read drop-in files from /etc/sudoers.d (the # here does not mean a comment)
#includedir /etc/sudoers.d
123 localhost=(root) /sbin/iconfig
:wq

标签:系统安全,su,etc,123,应用,root,pam,localhost
来源: https://blog.csdn.net/lltyyds/article/details/120301552

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有