墨菲定律说如果有两种或两种以上的方式去做某件事情,而其中一种选择方式将导致灾难,则必定有人会做出这种选择。所以也告诫我们做任何事都要确保它的正确性和安全性。接下来介绍几种安全的linux小工具。

Aide 数据库监控

配置文件:/etc/aide.conf

Aide的数据库存储在/var/lib/aide/下面,一旦初始化数据库就会自动生成数据库文件,然后检查监控的数据是否发生了改变,如果发生了更改会检查出来,但是这个数据库不保存日志类的经常变动的文件信息。

wKioL1nTkzyAjCW6AACjzXhUnds449.png

第一步:配置想要监控的参数,调用它自己定义的监控参数

例如: fn = p+u+acl+sha256

wKioL1nTkx7gGkKaAABhFqZUmo8858.png

第二步:写入你自己想要监控的文件,不想要监控的文件,删除掉它自己的定义的需要监控的文件。

例如 : /etc fn

!/etc f1

wKioL1nTkx-jdy18AABCbeyi2sY443.png

第三步:初始化数据库  aide --init

如果想要检查数据库,就必须要把数据库aide.db.new.gz 更改成aide.db.gz

wKiom1nTk2fw1AlFAABc_mCP4XA269.png

第四步: 修改监控 的文件的内容或者权限。

wKioL1nTkx_g0sVPAAA49n8_Nzk898.png

第五步:如果不想要对指定的文件监控,可以再次修改配置文件里的监控文件。然后更新数据库,再把数据库的名字修改一就可以了。

wKiom1nTk2fTsGMdAABMDm57U6g001.png

wKioL1nTkx_jr7hYAABrQIpkT-8072.png

编译安装dropbear

dorpbear是一个使用ssh服务的小工具,里面有服务端端里面有dropbear服务,客户端工具有dbclient,scp服务。是一个小型的服务连接的小工具。

1.安装开发包组:

这一步一般只要源码安装过,所以不用安装了。

2.下载源码包dropbear-2017.75.tar.bz2

3.解包tar xvf dropbear-2017.75.tar.bz2

4.进入安装的包的路径下,查看安装的帮助文档INSTALL,README,里面都有详细的介绍。

wKiom1nTk2nRVu9uAADc9AZ3-Lc341.png

5.一般都是自己指定配置文件和安装路径,还有一些自己不想用的功能都可以查看./configure --help.

wKiom1nTk3PAXVQxAAAq285ZehU030.png

6.查看自己的安装的目录,里面的文件是否都齐全。

wKioL1nTkzCBsUeKAABh75wGezE649.png

7.如果想要运行这个服务,还要查看路径有没有被包含,可以自己把路径加入到PATH.

wKiom1nTk3iwHPk2AAA4WP036kI435.png

8.查看配置文件是否生成,在自己的指定目录下,如果没有就查看README。

wKioL1nTlZCCVa9sAABIQ2XjsUM955.png

9.在README中发现如果要启用这个服务必须要激活配置文件

wKiom1nTldChyXN5AACVEVf29f8068.png

10.进入指定的配置文件/etc/dropbear这个目录,激活密钥。

wKiom1nTldGCsVSpAABeZo4MUsk561.png

11.开启服务,首先开启充当服务端的服务。指定端口号,并且-F后台运行,自己还能做其他的事情

wKioL1nTlYmiB0HjAACLav_lg_4836.png12.测试服务是否启动,查看端口号是否开启

wKiom1nTmF2i8978AABN2OHShRQ545.png13.测试链接成功。

wKioL1nTlY-Rgm-5AACJ1tUdK8c393.png

14.查看客户端的工具是否可以使用,dbclient发现连接别人也是可以的。

wKiom1nTldeB_uvBAABF0KHlPJs825.png

15.scp工具的使用,需要在指定的路径下,创建一个软链接就可以使用了。

wKioL1nTlY-jMkfcAAB76Oi3Er4782.png

创建CA和证书

第一步:查看openssl的配置文件 cat /etc/pki/tls/openssl.cnf

wKiom1nTldejO7hFAAC-3sccXvQ189.png

wKioL1nTlZDw0t7IAAD8hBxTBHE690.png

第二步:首先需要找两个主机一个充当颁发证书的机构,一个是申请证书的机构。注意颁发的机构首先需要给自己认证就是自签名。

第三步:CA自签证书

生成私钥

cd /etc/pki/CA/

(umask 066; openssl genrsa -out /etc/pki/CA/private/cakey.pem  -des 2048 )

wKioL1nTmabiy3v4AACQDiPGpDQ902.png

第四步:生成自签名证书

openssl req -new -x509 key /etc/pki/CA/private/cakey.pem -days 7300 -out /etc/pki/CA/cacert.pem

wKiom1nTmeXwFcDCAAEv2fRNmdE451.png

第五步:颁发证书

1.在请求证书的主机上生成私钥,可以不用加密。

wKiom1nTmeXQkTRVAABo1khJoXk816.png

2.生成证书申请文件,日期可写可不写,因为CA决定期限

openssl req -new -key /etc/pki/tls/private/test.key  -days 365 -out etc/pki/tls/test.csr

wKioL1nTmZ7RtXRnAAEI6xs9kcY177.png3.将证书请求文件传输给CA

wKiom1nTmeewby1kAAA62bkkaGU177.png

4.CA签署证书,并将证书颁发给请求者,证书的名字可以自己指定。

wKioL1nTmZ-guRw9AACh7eLgIGU040.png5.创建所需要的文件

touch /etc/pki/CA/index.txt 生成证书索引数据库文件

echo 01 > /etc/pki/CA/serial 指定第一个颁发证书的序列号

wKioL1nTmaTjt-hzAADCe8WtJYQ370.png

6.生成两个一样的证书文件。

wKiom1nTme2gxu-NAABC_Te998k678.png

第六步:查看证书中的信息:

openssl x509 -in /PATH/FROM/CERT_FILE(证书所在路径) -noout  -text|issuer|subject|serial|dates

wKiom1nTme2x362UAABxBg7XNcg713.png

wKioL1nTmaWBl6D8AAAwnPCzf4U000.png

第七步:CA把颁发的证书传送回去。

wKiom1nTme7BKylsAAA2SGqnovQ180.png

第八步:如果想要一个申请颁发两个证书,就要改数据库文件。

wKioL1nTmaXzPCdIAACSKN2y8zk534.png

第九步:吊销证书,首先查看吊销的的证书编号,然后吊销,再对外发布吊销的证书。

wKiom1nTme6Qes5tAABmrOzZlIo286.png

ssh客户端的X协议

wKioL1nTmabgAqE3AACF8ZhaMSg576.jpg

图形解析:上图可以看出当centos7连接6的时候走的是ssh协议,并且充当的是客户端,并且是X协议的服务端。

验证说明:xclock

wKioL1nTnPWB3lDkAAD8CGOUMmc606.png

wKioL1nTnOeSUmA9AACV0YpVxms473.png


解析:因为7上并没有这个小程序,xclock这个程序是X协议的图形化程序,7打开这个程序的时候就是充当X协议的服务端,通过划图形,连接显卡来显示6上的程序,而6是X协议的客户端。

基于key认证

实验准备:准备三台主机,一台客户端,一台服务端,一台盗取客户端私钥的主机

第一步:在客户端上生成密钥对

ssh-keygen -t rsa [-p ''] [-f "~/.ssh/id_rsa"]

wKioL1nTnO3ztvy0AACcuoYvoJI063.png

第二步:把公钥文件传输给远程服务器

ssh-copy-id [-i [identity_file]] [user@]host

wKiom1nTnTWTl3IFAABiygtEM9I373.png

wKioL1nTnO3g6aWJAACYPQI13W8127.png

第三步:测试登陆服务器

wKiom1nTnTbDmRf6AABGzOr7K3I747.png

第四步:把密钥传输给其他的主机也可以,不用验证。

wKiom1nTnTaRyPK4AABxmzSVJyc040.png

第五步:当客户端私钥被其他的主机盗走。

wKioL1nTnO7R5vdZAABCW1b_mN8993.png

第六步:就会出现盗走私钥的主机通过客户端的主机登陆服务器不需要验证。

wKiom1nTnTbSAG4nAABCJBG-cUw774.png

第七步:为了安全对私钥加密一下比较好,生成私钥的时候没加密,可以后来加密(当然在没有被盗走之前)

wKioL1nTnO6igG6LAABLtV1kojY067.png

第八步:为了方便不想记住加密的密钥密码,可以交给代理记住密钥的密码。

wKioL1nTnO6xEAZRAACPSWFP-BY400.png

交给代理挺安全,如果你断开连接,再次登录需要密码验证,也就是再次重复第八步的动作。


sudo授权管理

配置文件/etc/sudoers,自己的配置可以写在/etc/sudoers.d/下面,通过visudo命令编辑配置文件,具有语法检查功能,所以建议用visudo编辑配置文件

visudo -f /etc/sudoers.d/test

visudo c 检查语法

时间戳文件: /var/db/sudo

日志文件: /var/log/secure

授权的规则格式:

授权规则格式:

用户 登入主机=(代表用户,有权限的用户) 命令

示例:

root ALL=(ALL) ALL可以写上路径

示例:

wKiom1nTnTyQemiBAACrd1Ja1Rg709.png

sudo的小命令

sudo [-u user] COMMAND

-V 显示版本信息等配置信息

-u user 默认为root

wKiom1nTnTzAtx_aAAByTY2rDH8428.png

-l,ll 列出用户在主机上可用的和被禁止的命令

-v 再延长密码有效期限5分钟,更新时间戳

-k 清除时间戳(1970-01-01),下次需要重新输密码

-K 与-k类似,还要删除时间戳文件

-b 在后台执行指令

-p 改变询问密码的提示符号

示例: -p ”password on %h for user %p:"

别名的定义和使用:

别名有四种类型: User_Alias, Runas_Alias, Host_Alias, Cmnd_Alias

别名格式: [A-Z]([A-Z][0-9]_)*

别名定义:

Alias_Type NAME1 = item1, item2, item3 : NAME2 =item4, item5

例子:

wKioL1nTnPTRvQIoAABZy47GwGk910.png

例子2;NOPASSWD可以实现使用sudo的时候不用输入用户的口令

wKiom1nTnT2TY7jtAAANsERBkgc039.png

例3.User_Alias ADMINUSER = adminuser1,adminuser2

Cmnd_Alias ADMINCMD = /usr/sbin/useradd,

/usr/sbin/usermod, /usr/bin/passwd [a-zA-Z]*,!/usr/bin/passwd root

ADMINUSER ALL=(root) NOPASSWD:ADMINCMD,PASSWD:/usr/sbin/userdel

wKioL1nTnPXQouETAABU3DrMFaM169.png

例4.Defaults:wang runas_default=tom

wang ALL=(tom,jerry) ALL

wKiom1nTnT3Blik7AABiENqME_E376.png

关于linux安全验证问题就分享这么多了,在linux系统中安全和加密是很重要的一环,所以在平时的工作学习中切记不能忽视!