linux操作系统的安全配置
账号安全配置
- 基本安全配置
-
系统账号清理锁定
-
超级用户 root
-
程序用户 登录shell--> /sbin/nologin
对于一些长期不用的可以删除userdel 用户名
-
普通用户 登录shell--> /etc/passwd
-
对于一些账号不能删除可以锁定
usermod passwd
usermod -L zhangsan #锁定 passwd -S zhangsan #查看状态 usermod -U zhangsan #解锁 passwd -S zhangsan passwd -l zhangsan #锁定 passwd -u zhangsan #解锁
- +锁 +i 锁 -i 解锁 锁定之后即不可以写东西也不可以删东西
使用lsattr查看文件锁定情况
-
+a锁 -a锁(只适用于日志) 同i 锁定之后只可以写东西,不能删
写东西时用echo "5678" >> 1.txt
-
密码安全控制
为了降低密码暴力破解(穷举)风险,限制用户定期修改密码
vim /etc/login.defs //使用于新建用户 chage -d 0 zhangsan //下次登录必须修改密码
- 命令历史
history #查看
为了保险与安全,设置历史命令自动消除或者保留数量较少source /etc/profile echo $HISTSIZE #查看保留数量 HISTSIZE=5 #设置保留数量
除此之外还可以修改~/.bash_logout文件,添加清空命令的命令
用户退出时自动清除命令- 自动注销
设置锁屏时间
-
- 用户切换与提权
-
su 切换用户
root切换普通用户加‘-’不需要密码,且还是root的虚拟环境
普通用户切换root时需要密码
此时exit不是退出,可以理解成返回 -
安全日志/var/log/secure #记录su验证,和shell的开启
tail /var/log/secure
-
sudo 提权
让普通用户拥有一部分的管理权限,默认的权限类型为440(rr-),在/etc/sudoers 文件中,只能用!强制保存visudo 提权
visudo -c #会提示是否检查出错
vim /etc/sudoers
格式:user MACHINE=COMMANDS
- 用户(user):直接授权用户名,或采用“%组名”的方式授权一个组
- 主机(MACHINE):使用此配置文件的主机名称,一般为localhost
- 命令(COMMANDS):允许授权的用户
# sudo 语法 user MACHINE=COMMANDS ## Syntax: ## ## user MACHINE=COMMANDS ## ## The COMMANDS section may have other options added to it. ## ## Allow root to run any commands anywhere root ALL=(ALL) ALL -1.root: 用户 -2.ALL:代表用户可以在哪台机器上执行指令,通常设置为ALL,如果设置为localhost代表在本机上执行指令。 也可以设置为本机以外的其他IP地址或主机名,此时该/etc/sudoers虽然是在本机上配置的,但用户登录到本机 后仍然是无法执行命令的,如果把/etc/sudoers这个配置文件赋值到指定ip或主机名的那台机器上,就好用了 配置文件中讲到: ## Next comes the main part: which users can run what software on ## which machines (the sudoers file can be shared between multiple ## systems). 即/etc/sudoers文件可以在多个系统之间共享,如果我们设置成ALL的话就省事了,该文件复制到人任 意一台机器 上的完成的权限配置都一样 -3.(All): 表示允许用户以哪个用户的权限做事情 -4.ALL: 所有命令 最终解释:root用户可以在所有主机上以任意用户身份执行所有命令 root ALL=(ALL) ALL bibibi ALL=(ALL) ALL # bibibi用户在任何机器上,可以以任何用户身份执行任何命令等同 于root用户 user10 ALL=(ALL) /bin/cp,/bin/touch # 只允许user10用户以root用户身份执行cp,touch命令 lili ALL=(ALL) NOPASSWD: ALL # 免密 egon01 ALL=(ALL) ALL,!/usr/bin/vim /test/a.txt # !代表取反 egon02 ALL=(ALL) /usr/bin/passwd [a-zA-Z]*,/usr/bin/vim *,!/usr/bin/vim /test/a.txt # 可以编辑所有文件,除了/test/a.txt # 测试 [bibibi@arther-linux ~]$ cat /etc/shadow cat: /etc/shadow: Permission denied [bibibi@arther-linux ~]$ sudo cat /etc/shadow [sudo] password for bibibi: # 输入用户自己的密码 # 执行成功 ps: sudo 执行流程 1.普通用户执行sudo命令, 会检查/var/db/sudo是否存在时间戳缓存 2.如果存在则不需要输入密码, 否则需要输入用户与密码 3.输入密码会检测是否该用户是否拥有该权限 4.如果有则执行,否则报错退出
cat /var/lof/sudo
查看sudo的日志