linux运维需求-增加密码保密性

Posted 咸鱼加辣

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux运维需求-增加密码保密性相关的知识,希望对你有一定的参考价值。

需求背景:满足用户对明文密码加密的需求、

准备工作:

os:linux
file in linux:grafana.ini file

众所周知:

In Linux and UNIX, everything is a file

在grafana.ini文件中,保存着用户的登录信息,其中包含重要信息,密码等。
如果不想要密码让人知道,就得进行一次加密改写。
比如,
某六位数密码是:123456
经过base64编码后的密码是:MTIzNDU2
上述操作linux commad为:

[root@ali2-yy ~]# test=$(printf "%s""123456" | base64)
[root@ali2-yy ~]# echo $test

密码有了,就可以手动在配置文件中把123456密码替换成MTIzNDU2
这样即便是打开了grafana.ini文件,看到密码显示MTIzNDU2,一时半会儿也不知道这代表什么意思了。将明文密码通过base64的编码规则保护重要信息的作用。

但是在grafana.ini配置文件启动中,并不识别base64的规则,怎么办?
很简单,在启动grafana.ini之前,我们需要对grafana.ini配置文件密码进行替换,这一步为decode.
请注意,decode步骤运行的前提,是grafana.ini文件中密码配置部分,已经修改成base64的样子了。
如下:

确定了自己要操作的文件对象(grafana.ini)后,编写decode脚本。

#!/bin/bash
#Get the password for the ini file
email_password=$(grep '^password = *' /etc/grafana/grafana.ini)
array=(`echo $email_password | tr '=' ' '`)
email_key=$array[0]
email_value_bak=$array[1]
decode=$(printf "%s" $email_value_bak| base64 -d)   

#decode
sed -i "s/$email_value_bak/$decode/g" /etc/grafana/grafana.ini
#Start up program
systemctl start grafana-server
#replace
sed -i "s/$decode/$email_value_bak/g" /etc/grafana/grafana.ini

其中这个脚本shell 逻辑上分成4步

1、从grafana.ini取出加密的密码和解码密码解码步骤。解码规则是base64
2、将解码后的密码替换掉grafana.ini文件中,方便下一步的执行
3、启动grafana服务。
4、启动服务完成后,将解密的密码部分再用base64的密码替换掉。恢复grafana.ini文件密码的初始版本。

上述脚本并不是完美的,如果实际情况发生变化,编写脚本的逻辑也会变化。

以上是关于linux运维需求-增加密码保密性的主要内容,如果未能解决你的问题,请参考以下文章

Linux学习68 运维安全-openssl原理与实战

Linux运维Ubuntu Server的无密码开机自动登录

Linux运维Ubuntu Server的无密码开机自动登录

老司机一直在用的5类14种运维工具!

创新产品的需求分析:未来的图书会是什么样子?

Linux运维Ubuntu Server的无密码开机自动登录