Linux基础_sshd服务认证及审计

sshd= secure shell,sshd远程连接服务可以通过网络连接sshd服务器,本篇文章主要讲解sshd加密管理,希望可以和正在阅读文章的你进行交流。

1.连接方式

格式:

ssh    username@ip    ##文本模式的链接
ssh -X username@ip    ##可以在链接成功后开机图形

  在第一次连接陌生主机是要建立认证文件,所以会询问是否建立,需要输入yes,再次连接此台主机时,因为已经生成~/.ssh/know_hosts文件所以不需要再次输入yes。连接方式请看下图:

  上图是通过172.25.254.161这台主机的root用户连接172.25.254.161这台主机。除了连接主机外,还可以使用scp命令实现文件的传输,如下图,在server这台主机上的westos文件通过scp命令将文件发送到了172.25.254.161这台主机上:

172.25.254.161这台主机上可以进行查看:

server这台主机可以通过scp除了可以将文件上传到client这台主机上,还可以通过scp命令从client这台主机上下载文件,如下图:

 2.sshd的key认证

  将server(172.25.254.160)这台主机看作sshd服务器,client(172.25.254.161)这台主机当作客户端,server主机在没有u加密的情况下,client主机只要知道server主机root用户的密码,就可以连接上server这台主机。一旦我们对server的root用户加密后,客户端如果有钥匙就可以免密连接server这台主机,如果没有钥匙,就需要通过密码连接。

   sshd密钥连接的原理就如同买了一把锁和钥匙,用锁给门上锁,拥有钥匙的人可以直接打开门,没有钥匙的人就需要密码进行认证,如下示例:

  上图是生成key和密钥的过程,完成后会在/root/.ssh/目录下生成id_rsa和id_rsa.pub这两个文件。这种加密方式是非对称加密,我们可以将一个当作锁,一个当作钥匙。我是将id_rsa.pub当作锁,对172.25.254.160的root用户进行加密,id_rsa当作钥匙发送给客户端,下图是加密的过程:

在加密后/root/.ssh/目录下会生成authorized_keys文件,一旦有这个文件,表示已经加密完成。下图将钥匙发送给客户端:

客户可以查看,再次连接server主机时,就不需要通过密码认证:

 3.sshd对密码认证的管理

 为什么sshd可以用密码进行认证?不知道你是否想过这个问题,其实sshd可以密码认证是因为在sshd的配置文件/etc/ssh/sshd_config中进行了说明,如果对文件进行修改,可以禁止sshd的密码认证,如下图修改文件中的参数:

在修改完配置文件之后需要对sshd服务进行重启,或者加载文件,如下图:

此时,client主机去连接server主机时就会被拒,如下图:

4.sshd的登陆描述

在/etc/目录下有一个motd文件,在该文件中写入的内容会在登陆时显示出来,如下图对motd文件进行编辑:

编辑完成后,再次sshd登陆,就会有提示信息,如下图:

5.用户登陆控制

 在上面的操作中,我们都是使用root用户登陆的server主机,root用户可以登陆同密码认证相同都是因为/etc/ssh/sshd_config文件中进行了说明,在文件修改后root用户即使输入正确的密码也会被禁止登陆,而其它用户可以登陆,如下图:

  需要注意的是,使用sshd连接是,用户是sshd服务端的用户,如上图中student用户是server这台主机上的用户。

  除了对root用户进行登陆控制,还可以在/etc/ssh/sshd_config文件中设置黑白名单对用户登陆进行控制,下图为白名单的配置方式:

默认情况下,如果设置了白名单外,除了白名单中的用户可以登陆外,其余的用户是禁止的。所以上图的方式修改后,只允许wetos用户登陆,其余用户禁止,如下图:

除了白名单,还可以设置黑名单,默认情况下,黑名单中的用户会被禁止ssh登陆,其余用户可以登陆。黑名单配置如下图:

此时,westos用户会被禁止登陆,如下图:

6.sshd服务审计

在sshd服务器上,除了可以控制用户登陆,还可以在服务端查看是谁在用sshd连接本机,涉及到以下几个命令。

w -i    命令查看谁正在连接本机,显示的是主机ip地址。如下图,使用node2主机去连接node1主机:

 

在连接之后,在node1端就可以查看到node2主机正在连接本机:

w -i显示的是主机的IP,而 w -f 显示的是主机名,前提是在node1主机上有node2的解析,否则也显现的是IP地址,在node1主机的/etc/hosts文件中添加以下内容:(图中的node1应该是node2)

其中172.25.254.161是node2(图中的node1应该是node2)主机的IP地址,再用 w -f 查看时显示的就是主机名,如下:

如果node1现在不允许node2主机连接自己,可以用ps aux | grep pts/2过滤出node2连接node1主机的进程,并且使用kill -9 pid强制结束雕进程,node2端的连接就会被停止,如下图:

除了查看谁正在连接本机,还可以查看出谁曾经连接过本机,last命令,如下图显示172.25.254.161这台主机曾经连接过node1主机:

last命令显示的是谁连接过本机,lastb显示的是谁连接本机没有成功,如下图,在node2主机上有三次连接没有成功,在node1主机上就可以查看到(第二张图中的node1应该为node2):

以上的三条命令的内容分别记载在三个文件中,只要将文件进行清空,查询的内容就会清空,如下图:

   可以看出 w -i | w -f命令查询的内容记录在/var/run/utmp文件中,last命令查询的内容记录在/var/log/wtmp文件中,lastb命令查询的内容记录在/var/log/btmp文件中。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值