今天讲的是Linux里的账号安全控制
用户账号,是计算机使用者的身份凭证和标识,每一个要访问系统资源的人,必须凭证借其用户账号才能进入计算机。
系统账号清理
在Linux系统中,除了用户手动创建的各种账号之外,还包括随系统或程序安装过程中而生成的其他大量账号。除了超级用户root之外,其他大量账户只是用来维护系统运作、自动或保持服务进程,一般是不允许登录的,因此也称为非登录用户。
1、首先输入grep "bash" /etc/passwd 查看有哪些用户可以登录当前的服务器。
2、创建新用户lisi,输入useadd lisi 敲击回车,接着输入passwd ilsi 设置密码。
3、接下来我们要做的就是如何对我们useradd这个文件进行控制,输入lsatt /etc/passwd /etc/shadow,看看文件是否有锁住。
4、现在需要给文件上锁,输入
chattr +i /etc/passwd /etc/shadow/
5、这时候我们再到文件已经上锁,用useradd看看是否可以创建用户,再输入tail -5 /etc/passwd 看看有没有创建成功。
6、可以看到用户创建失败,接下来进行解锁输入
chattr -i /etc/passwd /etc/shadow
7、可以看到文件属于解锁状态了,接下来我们新建用户试试看是否成功。
密码安全控制
在不同的网络环境中,为了降低密码被猜出或者被暴力破解的风险,用户应养成更改密码的习惯,避免长期使用一个密码。管理员可以在服务器端限制用户密码的最大有效天数,对于密码已过期的用户,登录将被要求重新设密码,否则将拒绝登录。
1、输入vim etc/shadow 查看账户的密码文件。
2、可以看到其中root和一些已存在用户的密码有效期是永久,接下来我们在配置文件里修改已存在用户,输入vim /etc/login.defs,进入可以看到全是密码属性,按"/“输入99999查找到该位置,dw删除,按"a"将密码最长有效期修改为30天,wq保存退出。
3、进入刚才的密码文件看看是否修改成功。
4、这时候新添加个用户,再进入密码文件最长有效期是不是30天。
5、输入chage -M 30 wangwu ,进行以创建的用户修改有效期。
6、接下来就是用chage -d 0指定用户下次登录时修改密码。
7、这时候我们输入一个新密码会发现并不可以登录。
8、我们再输入一个复杂性的密码看看,是否可以。
9、发现还是失败了,因为它的不允许使用连续的字符和连续的阿拉伯数字。
命令历史、自动注销
Shell环境的命令历史机制为用户提供了极大的便利,但另一方面也给用户带来了潜在的风险。只要获得用户的命令历史文件,该用户的命令操作过程将会一览无余,如果曾经在命令行输入明文的密码,则无意之中服务器的安全壁垒又多了一个缺口。
1、输入history查看输入过的历史命令记录。
2、通过修改/etc/profile文件中的环境变量值,可以影响系统中的所有用户。
3、其中历史命令的记录条数默认为1000条,我们按“/”查询,Shift+R进行替换,输入20,wq退出保存,修改命令历史记录为20条。
4、输入history查看是否显示历史命令20条。
5、可以发现修改保存退出之后也没有执行,这时候输入source /etc/profile,再看看是否可以。
当每次修改完环境变量之后,如果不想重启的话一定要输入source /etc/profile 让它生效。
1、在每个用户里都有一个环境变量配置文件,输入cd /home/zhanngsan,可以看到用户环境变量配置文件。
2、输入vim .bash_logout,进入配置文件。
3、在配置文件中输入history -c clear wq保存退出,这样每次注销了之后就会清空历史命令。
自动注销
Bash环境终端中,还可以设置一个闲置超时时间,当超过指定的时间没有任何输入时即自动注销终端。
1、输入vim /etc/profile进入配置文件。
2、闲置超时由变量TMOUT来控制,默认单位为秒,在配置文件中操作TMOUT会发现没有这个指令。
3、按“o"输入export TMOUT=200,wq保存。
4、再输入source /etc/profile 执行。
然后我们之后只要超过200秒系统客户端就会自动注销。
用户切换与提权
大多数Linux服务器并不建议用户直接以root用户直接登录。一方面可以大大减少因失误而导致的破坏,另一方面也降低了特权密码在不安全的网络中被泄露的风险。鉴于这些原因,需要为普通用户体提供一种身份切换或权限提升机制,以便在必要的时候执行权限。
su命令——切换用户
使用su命令,可以切换为指定的另一个用户,从而具有该用户的所有权限。
1、这时候我们用普通用户登录输入su root 切换管理员身份。
2、输入grep "bash$" /etc/passwd查看有可以登录的用户。
3、用su可以在用户间来回切换。
默认情况下,任何用户读允许使用su命令,从而有机会反复尝试其他用户的登录密码,带来安全风险。为了加强su命令的使用控制,可以借助pam_wheel认证模块,只允许极个别用户使用su命令进行切换。
4、可以看出只要是知道root的密码就都可以切换至root输入密码进入,我们接下来讲的就是指定用户切换root。
输入vim /etc/pam.d/su进入配置文件。
移动至#auth处,输入dw删除#开启wheel,输入wq保存并退出。
输入vim /etc/group 查看wheel相对应的用户是什么。
输入id akg查看用户是否被默认添加到wheel里
现在添加用户bose看看bose可不可以切换root用户。
我们可以看到拒绝权限,现在bose就不可以切换用户,接下来输入gpasswd -a bose wheel 添加到wheel里,再进行用户切换。
sudo命令——提升执行权限
通过sudo命令可以让普通用户拥有一部分管理权限,有需要将root的用户密码告诉它,不过需要由管理员预先进行授权,指定允许哪些用户以超级用户的身份来执行哪些命令。
1、输入vim /etc/sudoers就可以进入配置文件。
2、我们之前已经把akg和bose用户都添加到了wheel组里了,进入配置文件看到wheel允许所有用户以超级用户的身份来执行所有命令。
3、新创建用户lisi。
4、输入id lisi 可以看到lisi不属于wheel组。
5、现在我们切换lisi用户登录,登录之后我们使用看看是否可以修改ip地址,右击打开终端,输入ipconfig ens33 192.71.140。
6、发现并不可以修改ip地址,输入which ifconfig查看该命令在哪个目录里。
7、ipconfig的命令在/sbin/里,输入sudo ifconfig 192.168.71.140,就可以修改ip地址,会提示让我们输入用户密码。
8、但是输入密码之后会提示我们不在sudoers当中。
9、刚才我们的bose和akg都在wheel组中,现在点击注销切换用户,现在我们输入sudo ifconfig ens33 192.168.71.140,修改ip地址。
10、如果我们想让lisi用户也可以修改ip地址的话也是有办法的,首先切换用户至root,输入vim /etc/sudoers进入配置文件在Host Aliases这一栏空白处写入:lisi(用户)localhost(主机名)=/sbin/ifconfig(使用sbin里的ifconfig命令),wq保存退出。
11、退出保存之后切换到isi用户,输入sudo ifconfig ens33 192.168.71.139,我们可以看到lisi也可以修改ip地址。
PAM安全认证
PAM是Linux系统中可插拔认证模块,Linux系统使用su命令存在安全隐患,默认情况,任何情况下,任何用户都允许使用su命令,从而有机会反复尝试其他用户的登录密码,带来安全风险。
为了加强su命令的使用控制,可以借助PAM认证模块,只允许极个别用户使用su命令进行切换。
1、PAM及其作用
(1)、PAM是一种高效而且灵活便利的用户级别认证方式,它也是当前Linux服务器普遍使用的认证方法。
(2)、PAM提供了对所有服务进行认证的中央机制,适用于login,远程登录,su等应用程序。
(3)、系统管理员通过PAM配置文件来制定不同应用程序的不同认证策略。
PAM认证原理
(1)、PAM认证一般遵循的顺序:Service(服务)—>PAM(配置文件)—>pam_*.so
(2)、PAM认证首先要确定哪一项服务,然后加载相应的PAM配置文件(/etc/pam.d下),最后调用认证文件进行安全认证。
(3)、用户访问服务器的时候,服务器的某一个服务程序把用户的请求发送到PAM没模块进行认证。不同的应用程序所对应的PAM模块也是不同的。
PAM认证的结构
(1)每一行都是一个独立的认证过程
(2)每一行可以区分为三个字段:
1)认证类型
2)控制类型
3)PAM模块及其参数
原创文章,作者:3628473679,如若转载,请注明出处:https://blog.ytso.com/tech/aiops/182781.html