远程访问及控制——ssh系列

@TOC

一、SSH远程管理

1.1、OpenSSH服务器

■SSH (Secure Shell)协议

  • 是一种安全通道协议
  • 对通信数据进行了加密处理,用于远程管理

■OpenSSH

  • 服务名称: sshd
  • 服务端主程序: /usr/sbin/sshd
  • 服务端配置文件: /etc/ssh/sshd_ _config

■服务监听选项

  • 端口号、协议版本、监听IP地址
  • 禁用反向解析
[root@localhost ~]# vi /etc/ssh/sshd_ config
......
Port 22
ListenAddress 172.16.16.22   ###监听端口要填管理平面IP地址;分为管理平面,数据平面
Protocol 2
UseDNS no

实例:
进入 vi /etc/ssh/sshd_config

服务监听选项

Port 22            ########端口打开
#AddressFamily any
ListenAddress 20.0.0.27						######配监听地址
#ListenAddress ::

禁用DNS反向解析
在这里插入图片描述

■用户登录控制

  • 禁用root用户、空密码用户
  • 限制登录验证时间、重试次数
  • AllowUsers、DenyUsers
[root@localhost ~]# vi /etc/ssh/sshd_ config
LoginGrace Time 1m          ########登陆验证时间为2分钟         
PermitRootL ogin no		     ####禁止root用户登录
MaxAuthTries 2				##最大重试次数为2
PermitEmptyPasswords no    ###AllowUsers不要与DenyUsers同时用
.......
AllowUsers jerry admin@61 .23.24.25

用户登录控制

在这里插入图片描述
在这里插入图片描述
①这里验证最大重试登录次数,如果连续两次登录密码失败就会出现如下情况。这就是登录不了。

在这里插入图片描述

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

②验证禁止root用户登录

在这里插入图片描述
在这里插入图片描述
③验证登录验证时间,1分钟到了,自动退出了

在这里插入图片描述
④验证禁止空密码用户登录

新建一个用户tom,然后不设置密码

进入远程登录界面,输入用户名tom,直接登录

无法登陆

每次改完配置文件之后,要重启服务生效
方法一:
systemctl restart sshd
方法二:
service sshd reload

■登录验证方式

  • 密码验证:核对用户名、密码是否匹配
  • 密钥对验证:核对客户的私钥、服务端公钥是否匹配
[root@localhost ~]# vi /etc/ssh/sshd_ config
......
PasswordAuthentication yes
PubkeyAuthentication yes     
AuthorizedKeysFile .ssh/authorized_ keys
启用密码验证、密钥对验证、指定公钥库位置

1.2、使用SSH客户端程序

■ssh命令——远程安全登录

  • ssh user@host

■scp命令——远程安全复制

  • 格式1: scp user@host:file1 file2
  • 格式2: scp file1 user@host:file2

■sftp命令——安全FTP上下载

  • sftp user@host

不指定路径就在对方家目录

1.3、密钥对验证的SSH体系

1.3.1、整体实现过程

  1. 由客户端的用户zhangsan本地创建密钥对
    私钥文件:id_rsa
    公钥文件:id_rsa.pub
  2. 上传公钥文件id_rsa.pub
  3. 导入到服务器用户lisi的公钥数据库
    公钥数据库文件:~/.ssh/authorized_keys
  4. 以服务端的用户lisi的身份进行登录,使用秘钥对验证

1.3.2、在客户机中创建密钥对

■在客户机中创建密钥对

  • ssh-keygen命令
  • 可用的加密算法: RSA、ECDSA或DSA

[zhangsan@localhost ~]$ ssh-keygen -t ecdsa
Generating public/private ecdsa key pair.
Enter file in which to save the key (/home/zhangsan/ .ssh/id_ ecdsa):
Created directory '/home/zhangsan/ .ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:    ###设置密钥短语
Your identification has been saved in /home/zhangsan/.ssh/id_ ecdsa.       ###私钥文件位置
Your public key has been saved in /home/zhangsan/ .ssh/id_ ecdsa.pub.      ###公钥文件位置

1.3.3、将公钥文件上传至服务器

■将公钥文件上传至服务器

  • 任何方式均可(FTP、 Email、 SCP、 HTTP…)
[zhangsan@localhost ~]$ scp ~/.ssh/id_ ecdsa.pub root@172.16.16.22:/tmp

1.3.4、在服务器中导入公钥文本

■在服务器中导入公钥文本

  • 将公钥文本添加至目标用户的公钥库
  • 默认公钥库位置: ~/.ssh/authorized keys
[root@localhost ~]# mkdir /home/lisi/.ssh/
[root@localhost ~]# cat /tmp/id_ _ecdsa.pub >> /home/lisi/.ssh/authorized_ _keys
[root@localhost ~]# tail -1 /home/lisi/.ssh/authorized_ keys
ecdsa-sha2-nistp256
AAAAE2VjZHNhLXNoY TItbmlzdHAyNT YAAAAIbmlzdHAyNTYAAABBBLJSnBhscY
BfnnHxSYAJEBD4sNkTLMF7itcFGM33RdeXU89QNQkMnCrCJHzAIZURrzpXG6M
p62mz9gRXUnARk8s=zhangsan@localhost

1.3.5、客户端使用密钥对验证登录

■客户端使用密钥对验证登录

  • 验证用户:服务端的用户lisi
  • 验证密码:客户端的用户zhangsan的私钥短语
[zhangsan@localhost ~]$ ssh lisi@172.16.16.22
[lisi@localhost ~]$ whoami
lisi

1.3.6、第2步和第3步可以采用另外一种方法

■第2步和第3步可以采用另外一种方法

    ssh-copy-id -i 公钥文件user@host
  • 验证密码后,会将公钥自动添加到目标主机user宿主目录,下的. ssh/authorized_ keys文件结尾
	   [zhangsan@localhost ~]$ ssh-copy-id -i ~/.ssh/id_ _rsa.pub lisi@172.16.16.22

二、TCP Wrappers访问控制

2.1、TCP Wrappers概述

在这里插入图片描述

2.1.1、保护机制的实现方式

■保护机制的实现方式

  • 方式1:通过tcpd程序对其他服务程序进行包装
  • 方式2:由其他服务程序调用libwrap.so.*链接库

2.1.2、访问控制策略的配置文件

■访问控制策略的配置文件

  • /etc/hosts.allow
  • /etc/hosts.deny

2.2、TCP Wrappers访问策略

2.2.1、设置访问控制策略

■设置访问控制策略

  • 策略格式:服务程序列表:客户端地址
  • 服务程序列表
    ◆多个服务以逗号分隔,ALL表示所有服务列表
  • 客户端地址列表
    ◆多个地址以逗号分隔,ALL表示所有地址
    ◆允许使用通配符?和*
    ◆网段地址,如192.168.4.或者192.168.4.0/255.255.255.0
    ◆区域地址,如.benet.com

2.2.2、策略的应用顺序

■策略的应用顺序

  1. 检查hosts. allow,找到匹配则允许访问
  2. 再检查hosts.deny,找到则拒绝访问
  3. 若两个文件中均无匹配策略, 则默认允许访问

2.2.3、策略应用示例

■策略应用示例

  • 仅允许从以下地址访问sshd服务
    ◆主机61.63.65.67
    ◆网段192.168.2.0/24
  • 禁止其他所有地址访问受保护的服务
[root@localhost ~]# vi /etc/hosts.allow
sshd:61.63.65.67,192.168.2.*
[root@localhost ~]# vi /etc/hosts.deny
sshd:ALL

访问策略应用顺序实验:

1、测试的IP地址为 20.0.0.5

2、输入的是20.0.0.2的IP,找不到20.0.0.5的IP,
所以 20.0.0.5 不允许访问
在这里插入图片描述

3、输入的ALL,代表所有IP,找到则拒绝访问,因为代表所有,所以可以找到20.0.0.5,也拒绝访问。

在这里插入图片描述
所以 20.0.0.5登录不上

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值