Linux—远程访问及控制—ssh服务原理与实操

前言

  • 大多数企业服务器是通过远程登录的方式来进行管理的
  • 当需要从一个工作站管理数以百计的服务器主机时,远程维护的方式将更占优势

一、SSH 远程管理

1.1 配置Open SSH服务端

1.1.1 SSH协议

  • 对数据通信进行加密处理
  • 为客户机提供安全的shell环境,用于远程管理
  • 默认端口:TCP 22

1.1.2 OpenSSH服务

  • 服务名称:sshd
  • 服务端主程序:/usr/sbin/sshd
  • 服务端配置文件:/etc/ssh/sshd_config
  • ssh_config:针对客户端
  • sshd_config:针对服务端
访问形式端口号
SSH:密文访问默认端口TCP:22,一般广域网
Telnet:明文形式的访问TCP 23,一般局域网
远程桌面3389,图形化界面
名称作用
mstsc(cmd命令提示符输入mstsc,根据提示操作)微软中远程桌面的形式,只可一个用户一个终端登录,可复制文件,微软对微软
VNC跨终端远程软件
teanviewer远程访问软件

1.1.3 服务监听选项

  • 端口号,协议版本,监听IP地址
  • 禁用反向解析
[root@localhost ~]# vim /etc/ssh/sshd_config
...
#Port 22		'端口号可以修改'
#AddressFamily any
#ListenAddress 0.0.0.0	'监听地址可修改'
#ListenAddress ::

1.1.4 用户登录控制

  • 禁止root用户,空密码用户
  • 登录时间,重试次数
  • AllowUsers(白名单,仅允许,只有这些可以登录)
  • DenyUsers(黑名单,仅拒绝,只有这些不行)
  • AllowUsers不可与DenyUsers同时使用
[root@localhost ~]# vim /etc/ssh/sshd_config
LoginGraceTime 2m
PermitRootLogin yes
StrictModes yes
MaxAuthTries 6
MaxSessions 10
...
AllowUsers lisi admin@192.168.20.30	'仅允许lisi用户在终端192.168.20.30登录'

1.1.5 登陆验证方式

  • 登录验证对象
    • 服务器中的本地用户账号
  • 登录验证方式
    • 密码验证:核对用户名,密码是否匹配
    • 密钥对验证:核对客户的私钥,服务端公钥是否匹配
  • 密钥对:包含公钥,私钥
    • 公钥:服务器使用
    • 私钥:客户保留
    • 非对称秘钥:RSA
    • 对称秘钥:3DES,AES
[root@localhost ~]# vim /etc/ssh/sshd_config
PasswordAuthentication yes		'是否使用密码'
PermitEmptyPasswords no	'禁止空密码'
PasswordAuthentication yes	'是否需要密码验证'
    
PubkeyAuthentication yes	'开启公钥验证'

AuthorizedKeysFile      .ssh/authorized_keys  '指定公钥库位置'

1.2 SSH客户端程序命令

1.2.1 ssh命令–远程安全登录

  • 命令基本格式
ssh user@host
[root@55~]# ssh root@192.168.197.142		'以root用户登录对方主机'
The authenticity of host '192.168.197.142 (192.168.197.142)' can't be established.
ECDSA key fingerprint is SHA256:Eer6tAEbaZylH0v8F1nr+ShthK1rjZl3eRi7UTw4RX4.
ECDSA key fingerprint is MD5:de:d7:cf:23:bd:8d:a1:02:ff:23:a2:4b:94:fe:e7:02.
Are you sure you want to continue connecting (yes/no)? yes	'输入yes'
Warning: Permanently added '192.168.197.142' (ECDSA) to the list of known hosts.
root@192.168.197.142's password: 	输入对方密码'
Last login: Thu Nov 21 17:37:59 2019 from 192.168.197.1
[root@66~]# 
    还有会开启 /etc/pam.d/su服务模块的情况,需要注意权限

1.2.2 scp命令–远程安全复制

  • 命令基本格式
格式一:scp user@host:file 1 file 2
格式二:scp file 1 user@host:file 2
[root@55 ~]# scp /etc/hosts root@192.168.197.142:/etc/hosts	'将本机文件/etc/hosts以root权限复制到192.168.197.142中'
root@192.168.197.142's password: 
hosts

或者

[root@55 ~]# scp root@192.168.197.142:/etc/hosts /etc/hosts1
root@192.168.197.142's password: 
hosts  

1.2.3 sftp命令–安全FTP上下载

  • 命令基本格式
sftp user@host
    get:下载
    put:上传
[root@55 ~]# sftp root@192.168.197.142
root@192.168.197.142's password: 
Connected to 192.168.197.142.
sftp> ls

1.3 密钥对验证的SSH体系

1.3.1 构建密钥对验证的SSH体系

  • 实现过程
    密钥对
  • 创建密钥对(由客户端的用户lisi在本地创建密钥对)
    • 公钥文件:id_rsa
    • 公钥文件:id_rsa.pub
在客户机中创建密钥对
ssh-keygen命令
可用的加密算法:RSADSA
[root@55 ~]# ssh-keygen -t ecdsa	'生成公共/私有ecdsa密钥对'
Generating public/private ecdsa key pair.
Enter file in which to save the key (/root/.ssh/id_ecdsa): 	'输入保存秘钥的文件'
Enter passphrase (empty for no passphrase): 	'输入密码'
Enter same passphrase again: 
Your identification has been saved in .2
Your public key has been saved in .pub.
The key fingerprint is:
SHA256:R/ubZAgOklPma+jgqYqQdeIsz7xMnJyCMZZEqj2idu8 root@55
The key's randomart image is:
+---[ECDSA 256]---+
| .               |
|o                |
|..    o   .      |
|o..  =   . .     |
|=o= = o S o      |
|+@ * + + o o     |
|B.X.. o . . +    |
|+X.+..     o o   |
|=.O.oE      o    |
+----[SHA256]-----+
  • 上传公钥文件 id_rsa.pub
    • 任何方式均可(共享,FTP,Email,SCP,…)
例如
[root@55 ~]# scp ~/.ssh/id_ecdsa.pub root@172.16.16.22:/tmp
  • 导入公钥信息(导入到服务端用户66的公钥数据库)
    • 将公钥文本添加到目标用户的公钥库
    • 默认公钥库文件:~/.ssh/authorized_keys
  • 使用密钥对验证方式(以服务端用户66的身份进行登录)
    • 客户端使用秘钥对验证登录
    • 验证用户:服务端用户66
    • 验证密码:客户端的用户55的私钥短语
  • 第二步和第三步可以采用另外一种方法
ssh-copy-id -i 公钥文件 user@host

验证密码后,会将公钥自动添加到目标主机user宿主目录下的.ssh/quthorized_keys文件结尾

[root@55 ~]#ssh-copy-id -i ~/.ssh/id_rsa.pub 66@172.16.16.22

二、TCP Wrappers控制

2.1 TCP Wrappers概述

2.1.1 原理

原理

2.1.2 保护机制的实现方式

  • 方式一
    • 通过tcpd主程序对其他服务程序进行包装
  • 方式二
    • 由凄然服务程序调用libwrap.so.*链接库

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

ldd `which sshd` 查看模块
  • /etc/hosts.allow
  • /etc/hosts.deny

2.2 TCP Wrappers访问策略

2.2.1:设置访问控制策略

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

2.2.2 策略的应用程序

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

2.2.3 策略应用实例

  • 仅允许从以下地址访问sshd服务
  • 主机192.168.100.100
  • 网段192.168.200.0/24
  • 禁止其他所有地址访问受保护的服务
[root@55 ~]# vim /etc/hosts.allow
sshd:192.168.100.100,192.168.200.*
[root@55 ~]# vim /etc/hosts.deny
sshd:ALL
    
    '优先读取allow,然后再读取deny'
    '如果做黑名单,name白名单就不用写'
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值