超详细教学 Linux系统安全及应用

账号安全控制

1.锁定账户文件

//锁定账户文件
[root@localhost ~]#chattr +i /etc/passwd /etc/shadow
 
//查看文件锁定情况(有i代表已被锁定)
[root@localhost ~]#lsattr /etc/passwd /etc/shadow
----i----------- /etc/passwd
----i----------- /etc/shadow
 
//锁定后无法对账户进行操作
[root@localhost ~]#userdel hx
userdel:无法打开 /etc/passwd
[root@localhost ~]#passwd
更改用户 root 的密码 。
新的 密码:
重新输入新的 密码:
passwd: 鉴定令牌操作错误
 
//解锁账户文件
[root@localhost ~]#chattr -i /etc/passwd /etc/shadow
[root@localhost ~]#lsattr /etc/passwd /etc/shadow
---------------- /etc/passwd
---------------- /etc/shadow

校验文件是否被改动

[root@localhost ~]#md5sum 文件名 //会使用md5算法为文件生成一个序列号

//用md5算法为shadow文件生成序列号
[root@localhost1 ~]#md5sum /etc/shadow
7d7e45d6ec658911d65911b6e4036144  /etc/shadow
 
//修改某个用户的密码
[root@localhost1 ~]#passwd zhangsan
更改用户 zhangsan 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
 
//文件序列号发生改变,说明已被修改过
[root@localhost1 ~]#md5sum /etc/shadow
374b88c4efcdc89e3611c979ba86638c  /etc/shadow

密码安全控制

对于新创建用户

//更改账户登录配置
[root@localhost ~]#vim /etc/login.defs
 
# 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   99999      --这里是密码有效期(99999代表永久 可以自行更改天数)
PASS_MIN_DAYS   0
PASS_MIN_LEN    5
PASS_WARN_AGE   7

对于已有用户

[root@localhost ~]# chage -M 天数 用户名 //将已有用户的密码有效期改为指定天数

[root@localhost ~]#chage -M 30 zhangsan
[root@localhost ~]#cat /etc/shadow |grep zhangsan
zhangsan:!!:19213:0:30:7:::

强制用户下次登录需要修改密码

[root@localhost ~]# chage -d 0 用户名

[root@localhost ~]#chage -d 0 zhangsan
[root@localhost ~]#cat /etc/shadow |grep zhangsan
zhangsan:!!:0:0:30:7:::
            ^
这个字段代表最后一次更改密码的时间(从1970年1月1日开始到现在的天数)
改为0可以实现每次登录需要修改密码

历史命令设置

//可以查看到历史命令
[root@localhost ~]#history
 
//修改配置文件
[root@localhost ~]#vim /etc/profile
 
# Path manipulation
if [ "$EUID" = "0" ]; then
    pathmunge /usr/sbin
    pathmunge /usr/local/sbin
else
    pathmunge /usr/local/sbin after
    pathmunge /usr/sbin after
fi
 
HOSTNAME=`/usr/bin/hostname 2>/dev/null`
HISTSIZE=100     --这里限制最大历史记录密命令条目(默认为1000)
 
//刷新文件
[root@localhost ~]#source /etc/profile

终端定时注销

//指定闲置600秒后自动注销
[root@localhost ~]#vim /etc/profile
在下方写入:
export TMOUT=600
 
//刷新文件
[root@localhost ~]#source /etc/profile
 
//查看自动注销时间
[root@localhost ~]echo $TMOUT
600

限制用户切换用户

PAM认证模块
是一种高效且灵活便利的用户级别的认证方式,也是当前Linux服务器普遍使用的认证方式。

认证原理
一般遵循的顺序 .Service(服务)→PAM(配置文件)→pam_*.so
首先要确定哪一项服务,然后加载相应的PAM的配置文件(位于letc/pam.d下),最后调用认证文件(位于/lib64/security下)进行安全认证
用户访问服务器时,服务器的某一个服务程序把用户的请求发送到PAM模块进行认证
不同的应用程序所对应的PAM模块是不同的

修改配置文件

//修改su的PAM配置文件
[root@localhost ~]#vim /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    
 
--取消上面这行注释的配置,使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
 
//将允许使用的用户加入到wheel组当中
[root@localhost ~]#usermod -G wheel zhangsan
[root@localhost ~]#id zhangsan
uid=1002(zhangsan) gid=1002(zhangsan)=1002(zhangsan),10(wheel)

使用sudo机制提升权限

sudo命令,默认使用户以root身份执行被授权的命令。

更改sudo配置文件
visudo

vim /etc/sudoers(此文件的默认权限为440,保存退出时必须执行":wq!"命令来强制操作)

语法格式
用户 主机名=命令程序列表
用户 主机名=(用户) 命令程序列表

在这里插入图片描述

设置别名
使用关键字 User_Alias 、Host_Alias、Cmnd_Alias 来设置别名(别名必须为大写)
User_Alias 别名 = User1,User2 …
Host_Alias 别名 = Host1,Host2 …
Cmnd_Alias 别名 = Cmnd1(绝对路径),Cmnd2 …
“,”用于分割,可以使用通配符“ * ”代表任意值和“ !”号进行取反操作

启用sudo操作日志
visudo 或 vim /etc/sudoers
添加字段:Defaults logfile = “/var/log/sudo”

sudo -l //普通用户可以查看自己可以用sudo执行那些命令

//修改sudo配置文件里
[root@localhost ~]# vim /etc/sudoers
ZHANGSAN ALL=/bin/*,!/bin/rm,!/sbin/reboot --为zhangsan用户设置sudo可用命令
 
//zhangsan用户查看自己sudo可用命令
[zhangsan@localhost root]$ sudo -l
匹配 %2$s 上 %1$s 的默认条目:
    !visiblepw, always_set_home, match_group_by_gid, always_query_group_plugin, env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS", env_keep+="MAIL PS1 PS2 QTDIR
    USERNAME LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE",
    env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY", secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin
 
用户 zhangsan 可以在 localhost 上运行以下命令:
    (ALL) ALL
    (root) /bin/*, !/bin/rm, !/sbin/reboot

系统引导和登录控制

1.GRUB菜单限制

[root@localhost ~]# grub2-setpasswd

此界面按e进入GRUB菜单
在这里插入图片描述

设置密码后需要输入密码登入
在这里插入图片描述

2.限制用户在安全终端登录

//更改终端配置文件
[root@localhost ~]#vim /etc/securetty
console
vc/1
vc/2
vc/3
vc/4
vc/5
vc/6
vc/7
vc/8
vc/9
vc/10
vc/11
tty1
tty2
tty3
#tty4     --把需要禁止登录的终端注释或删除
#tty5
tty6
tty7
tty8
tty9
tty10
tty11

测试发现tty4无法登录

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值