sshd及其安全应用

1.sshd简介
sshd=secure shell ##可以通过网络在主机中开机shell的服务
客户端软件:sshd
连接方式:

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

注:第一次链接陌生主机要建立认证文件,会询问是否建立,输入yes。
第二次建立已经生成了~/.ssh/know_hosts文件所以不需要再次建立。
在这里插入图片描述
远程复制:

scp    file   root@ip:dir                   ##上传
scp    root@ip:file dir                     ##下载

在这里插入图片描述
1.虚拟机与远程主机的连接

 真机:]
      打开shell,输入命令:ip addr show br0(在虚拟机里应为eth0) ##查看真机ip
      可以通过命令:ping 虚拟机地址 观察是否连接成功。成功会出现数据在虚拟机真机之间往返所需时间。否则为连接失败。
  虚拟机:
         输入命令:`nm-connection-editor`,出现选框,删除后增加,选择创建,出现选框创建,出现Ethernet在Device MAC address:选择默认选项 .IPv4设置,先选择方法为Manual,输入虚拟机IP号(虚拟机前3个段,最后一位为0-254,由于255号为广播地址,被占用所以不能使用),NETmask 设置为24 保存。
    连接:
       在虚拟机查看虚拟机ip,然后在真机上输入命令:ssh 虚拟机用户名@虚拟机ip,询问是否连接,连接后输入虚拟机中该用户的登陆密码,确定登陆,可以直接通过真机使用虚拟机。
      在此例中虚拟机为服务器端为sshd软件,远程主机为客户端使用ssh软件。

在这里插入图片描述
2. 连接其他主机(由于实现环境下,只是使用了一台电脑,就用两台虚拟机模拟两台主机的互联):
其实方式与虚拟机与主机的链接类似。
在这里插入图片描述
在这里插入图片描述
证明主机172.25.71.111与主机172.25.71.222已经链接起来。
3.连接其他主机,生成RSA加密

        由于如果有人知道了一个主机的ip地址,又恰好知道了其用户密码,那就可以任意的登陆到主机上,这是十分的不安全的。
        所以可以通过加入RSA密码认证,更安全一些。至于链接方式:是先在服务器端生成一个RSA秘钥。
        将生成的id-rsa.pub复制到生成主机上,在将生成的id-rsa密钥发送到另一台主机上。
        这是另一台主机会直接链接本机,并且第一次需要输入密码,第二次链接就可以免密通信。
主机命令:
                 ssh-keygen                                                                 ##生成密钥流
                 ssh-copy-id -i  /root/.ssh/id_rsa.pub     用户名@本机主机地址                ##给本机加锁
                 scp  /root/.ssh/id_rsa  用户名@另一主机地址:/root/.ssh/                      ##分配密钥       

在这里插入图片描述
在这里插入图片描述
注:此时若为第一次链接,是需要输入密码的,但第二次就可以实现免密通信。
4.修改配置文件,锁定用户权限。
如果这样把密钥分配给另一个主机,但只要另一个主机想要访问本机那么就一定可以访问,这也不符合本机需求,所以我们 需 要将这个权限放到自己手中可以将放到本机里的锁删除,所以即使有密钥也不能登陆也同时也限制密钥登陆将/etc/ssh/sshd_config的第78行下,将密码登陆的权限由yes改成了no,限制密码登陆。如果有需要的话,在加入锁,使有密钥的人免密登陆,或者直接修改配置文件权限,密码登陆。
在这里插入图片描述
在这里插入图片描述
但加上锁之后,就可以用密钥免密登陆。在这里插入图片描述
5.sshd的安全设定
可以通过修改配置文件,来控制登陆服务器的用户以及登陆方式。来使服务更加安全。

命令如下:
       vim  /etc/ssh/sshd_config   ,修改以下行数:
        78   PasswordAuthentication  yes/no      ##是否允许用户通过登陆系统密码做登陆
        48   PermitRoolLogin  yes/no             ##是否允许超级用户通过sshd服务认证登陆
        52   AllowUsers student westos           ##设置用户白名单,不在白名单用户不可登陆
        53   DenyUsers student westos            ##设置用户黑名单,在黑名单用户不可登陆

注:登陆时所用的用户名时被连接主机的用户名,要分清楚使用的到底是哪一台主机的用户和密码。并且一旦设置了白名单/黑名单,超级用户若不在也不可登陆。
实现方法:vim修改配置文件,将配置文件进行修改。通过一台客户端机链接服务端(ssh 用户名@ip地址),但是需要注意链接语句中的用户时服务机上的用户。
修改是否允许用户登陆系统密码登陆将第78行中的no修改到yes:
在这里插入图片描述
在这里插入图片描述
设置用户白名单,westos在白名单student用户不可登陆:
在这里插入图片描述
在这里插入图片描述
6.添加sshd登陆信息
vim /etc/motd ##文件内容就是登陆后显示内容
在这里插入图片描述
7.用户登陆审计

  w      ##查看正在使用当前系统的用户
         -f  ##查看使用来源
         -i  ##显示ip
             等同于查看 /var/run/utmp    
  last  
             等同于查看 /var/log/wtmp
             ##查看使用并退出的用户信息
  lastb 
             等同于查看 /var/log/btmp
             ##查看试图登陆却没成功的用户信息

在这里插入图片描述
在这里插入图片描述

系统权限控制:

systemctl           ##服务器控制命令
systemctl status sshd(服务器名)   ##查看服务器状态 
systemctl start sshd     ##开启服务
systemctl stop sshd  ##关闭服务
systemctl restart sshd ##重启服务器
systemctl reload sshd  ##重载服务器(相当于信号1,在不关闭服务器情况下,对进程的文件进行重新加载)
systemctl enable sshd  ##设定服务器在开机时自启
systemctl disable sshd ##设定服务器在开机时不自启
systemctl list-units   ##列出已经开启服务当过前状态
systemctl list-unit-files ##列出所有服务开机启动的状态(disable enable static表示静态不会更改)
systemctl list-dependencies ##列出服务的依赖(在使用该服务前必须存在并开启的进程)
systemctl set-default multi-user.target  ##设定系统启动级别为多用户模式(无图形)
systemctl set-default graphical.target   ##设定系统启动级别为图形模式
实验方法:前几条命令类似于虚拟机的启动,在设置重启时可以看

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述可以发现reload与restart的区别,经过reload,进程pid不变,所以证明并没有关闭进程而完成了系统配置文件的加载,但是restart则是将进程关闭,然后重启,进程pid自然发生变化。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值