sshd及其安全应用

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

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

注:第一次链接陌生主机要建立认证文件,会询问是否建立,输入yes。
第二次建立已经生成了~/.ssh/know_hosts文件所以不需要再次建立。
sshd及其安全应用
远程复制:

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

sshd及其安全应用
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软件。

sshd及其安全应用
2. 连接其他主机(由于实现环境下,只是使用了一台电脑,就用两台虚拟机模拟两台主机的互联):
其实方式与虚拟机与主机的链接类似。
sshd及其安全应用
sshd及其安全应用
证明主机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/           ##分配密钥    

sshd及其安全应用
sshd及其安全应用
注:此时若为第一次链接,是需要输入密码的,但第二次就可以实现免密通信。
4.修改配置文件,锁定用户权限。
如果这样把密钥分配给另一个主机,但只要另一个主机想要访问本机那么就一定可以访问,这也不符合本机需求,所以我们 需 要将这个权限放到自己手中可以将放到本机里的锁删除,所以即使有密钥也不能登陆也同时也限制密钥登陆将/etc/ssh/sshd_config的第78行下,将密码登陆的权限由yes改成了no,限制密码登陆。如果有需要的话,在加入锁,使有密钥的人免密登陆,或者直接修改配置文件权限,密码登陆。
sshd及其安全应用
sshd及其安全应用
但加上锁之后,就可以用密钥免密登陆。sshd及其安全应用
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:
sshd及其安全应用
sshd及其安全应用
设置用户白名单,westos在白名单student用户不可登陆:
sshd及其安全应用
sshd及其安全应用
6.添加sshd登陆信息
vim /etc/motd ##文件内容就是登陆后显示内容
sshd及其安全应用
7.用户登陆审计

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

sshd及其安全应用
sshd及其安全应用

系统权限控制:

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  ##设定系统启动级别为图形模式
实验方法:前几条命令类似于虚拟机的启动,在设置重启时可以看

sshd及其安全应用

sshd及其安全应用
sshd及其安全应用可以发现reload与restart的区别,经过reload,进程pid不变,所以证明并没有关闭进程而完成了系统配置文件的加载,但是restart则是将进程关闭,然后重启,进程pid自然发生变化。