SSH远程管理与TCP Wrappers的访问策略

本文详细介绍了SSH的远程管理,包括其优点、常见协议及OpenSSH服务。深入探讨了SSH的公钥传输和加密通讯原理,展示了远程登录过程。此外,还讲解了SSH服务配置,如常用配置项、秘钥对验证以及如何实现免交互登录。同时提到了TCPWrappers和轻量级自动化运维工具pssh的使用,强调了SSH服务的安全控制策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、SSH远程管理

1、SSH远程管理的优点

2、常见的ssh协议

二、ssh原理

1、公钥传输原理

2、ssh加密通讯原理

3、远程登录

三、服务单配置

1、常用配置项:

 2、使用秘钥对及免交互验证登录

四、ssh客户端

五、TCP Wrappers

1、轻量级自动化运维工具pssh

六、总结


 

一、SSH远程管理

SSH(Secuer Shell)是一种安全通道协议,主要用来实现字符界面的远程登录、远程复制等功能。SSH协议对通信双方的数据传输进行加密处理,其中包括登录时输入的口令,SSH协议提供了更好的安全性。

1、SSH远程管理的优点

数据传输是加密的,可以防止信息泄露

数据传输是压缩的,可以提高传输速度

2、常见的ssh协议

客户端:
Linux Client: ssh, scp, sftp,slogin
Windows Client:xshell, MobaXterm,putty, securecrt, sshsecureshellclient

OpenSSH 是实现SSH协议的开源软件项目,适用于各种UNIX、 Linux 操作系统。

Centos 7系统默认已安装openssh相关软件包,并将sshd 服务添加为开机自启动。

执行"systemctl start sshd"命令即可启动sshd 服务

sshd 服务默认使用的是TCP的22端口,安全协议版本sshv2,出来2之外还有1(有漏洞)

sshd服务的默认配置文件是/etc/ssh/sshd_config
ssh_config和sshd_config都是ssh服务器的配置文件,二者区别在于前者是针对客户端的配置文件,后者则是针对服务端的配置文件。

3、ssh服务端主要服务功能

ssh远程链接和sftp服务

作用:SSHD 服务使用 SSH 协议可以用来进行远程控制,或在计算机之间传送文件。 相比较之前用 Telnet 方式来传输文件要安全很多,因为 Telnet 使用明文传输,SSH 是加密传输。

服务名称:sshd
服务端主程序:/usr/sbin/sshd  
服务端配置文件:/etc/ssh/sshd_config 
客户端配置文件:/etc/ssh/ssh_config

二、ssh原理

1、公钥传输原理

 客户端发起链接请求

服务端返回自己的公钥,以及一个会话ID(这一步客户端得到服务端公钥)

客户端生成密钥对

客户端用自己的公钥异或会话ID,计算出一个值Res,并用服务端的公钥加密

客户端发送加密后的值到服务端,服务端用私钥解密,得到Res

服务端用解密后的值Res异或会话ID,计算出客户端的公钥(这一步服务端得到客户端公钥)

最终:双方各自持有三个秘钥,分别为自己的一对公、私钥,以及对方的公钥,之后的所有通讯都会被加密

2、ssh加密通讯原理

1、概念 采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,由于其速度快,对称性加密通常在消息发送方需要加密大量数据时使用

2、常用算法 在对称加密算法中常用的算法有:DES、3DES、TDEA、Blowfish、RC2、RC4、RC5、IDEA、SKIPJACK等。

3、特点 1、加密方和解密方使用同一个密钥; 2、加密解密的速度比较快,适合数据比较长时的使用; 3、密钥传输的过程不安全,且容易被破解,密钥管理也比较麻烦;

4、优缺点 对称加密算法的优点是算法公开、计算量小、加密速度快、加密效率高。 对称加密算法的缺点是在数据传送前,发送方和接收方必须商定好秘钥,然后使双方都能保存好秘钥。其次如果一方的秘钥被泄露,那么加密信息也就不安全了。另外,每对用户每次使用对称加密算法时,都需要使用其他人不知道的独一秘钥,这会使得收、发双方所拥有的钥匙数量巨大,密钥管理成为双方的负担

(2)非对称加密 1、概念 非对称加密算法需要两个密钥:公开密钥(publickey:简称公钥)和私有密钥(privatekey:简称私钥)。公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。

2、常用算法 RSA(RSA algorithm):目前使用最广泛的算法 DSA(Digital Signature Algorithm):数字签名算法,和 RSA 不同的是 DSA 仅能用于数字签名,不能进行数据加密解密,其安全性和RSA相当,但其性能要比RSA快 ECC(Elliptic curve cryptography,椭圆曲线加密算法) ECDSA:Elliptic Curve Digital Signature Algorithm,椭圆曲线签名算法,是ECC和 DSA 的结合,相比于RSA算法,ECC 可以使用更小的秘钥,更高的效率,提供更高的安全保障

3、原理 首先ssh通过加密算法在客户端产生密钥对(公钥和私钥),公钥发送给服务器端,自己保留私钥,如果要想连接到带有公钥的SSH服务器,客户端SSH软件就会向SSH服务器发出请求,请求用联机的用户密钥进行安全验证。SSH服务器收到请求之后,会先在该SSH服务器上连接的用户的家目录下

5、优缺点 相比于对称加密技术,非对称加密技术安全性更好,但性能更慢。

此本次实验中,我们用非对称加密算法ECDSA进行加密,为了方便用root用户,也可给其他普通用户配置

3、远程登录

客户机一:

[root@localhost ~]#systemctl stop firewalld.service 
[root@localhost ~]#setenforce 0
[root@localhost ~]#ssh root@192.168.184.129
The authenticity of host '192.168.184.129 (192.168.184.129)' can't be established.
ECDSA key fingerprint is SHA256:DxVeNw6SEGT/OYEgsL3ig59RIXzKsBI782AGKAiWkG8.
ECDSA key fingerprint is MD5:20:c4:6a:94:20:8d:14:2c:6b:20:5b:bd:9f:da:20:61.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.184.129' (ECDSA) to the list of known hosts.
root@192.168.184.129's password:      #输入root@192.168.184.129登录密码
Last login: Wed Sep 29 14:59:50 2021 from 192.168.184.1
[root@localhost ~]# 

 已经登录上去了

三、服务单配置

1、常用配置项:

[root@ky15-1 ~]# vim /etc/ssh/sshd_config 
Port    22    #生产建议修改
ListenAddress ip
LoginGraceTime 2m
PermitRootLogin yes #默认ubuntu不允许root远程ssh登录
StrictModes yes   #检查.ssh/文件的所有者,权限等
MaxAuthTries   6  #pecifies the maximum number of authentication 
                  # ssh -o NumberOfPasswordPrompts=8root@192.168.91.100需要配合这个选                     项一起使用
attempts permitted per connection. Once the number of failures reaches half this 
value, additional failures are logged. The default is 6.
MaxSessions  10         #同一个连接最大会话
PubkeyAuthentication yes     #基于key验证
PermitEmptyPasswords no      #空密码连接
PasswordAuthentication yes   #基于用户名和密码连接
GatewayPorts no
ClientAliveInterval 10 #单位:秒
ClientAliveCountMax 3 #默认3
UseDNS yes #提高速度可改为no
GSSAPIAuthentication yes #提高速度可改为no
MaxStartups    #未认证连接最大值,默认值10
Banner /path/file
#以下可以限制可登录用户的办法:白名单  黑名单
AllowUsers user1 user2 user3@ip(限制主机)
DenyUsers user1 user2 user3
AllowGroups g1 g2
DenyGroups g1 g2

 2、使用秘钥对及免交互验证登录

1.用户/密码

  1. 客户端发起ssh请求,服务器会把自己的公钥发送给用户

  2. 用户会根据服务器发来的公钥对密码进行加密

  3. 加密后的信息回传给服务器,服务器用自己的私钥解密,如果密码正确,则用户登录成功

基于密钥的登录方式

 

  1. 首先在客户端生成一对密钥(ssh-keygen)

  2. 并将客户端的公钥ssh-copy-id 拷贝到服务端

  3. 当客户端再次发送一个连接请求,包括ip、用户名

  4. 服务端得到客户端的请求后,会到authorized_keys()中查找,如果有响应的IP和用户,就会随机生

成一个字符串,例如:kgc

  1. 服务端将使用客户端拷贝过来的公钥进行加密,然后发送给客户端

  2. 得到服务端发来的消息后,客户端会使用私钥进行解密,然后将解密后的字符串发送给服务端

  3. 服务端接受到客户端发来的字符串后,跟之前的字符串进行对比,如果一致,就允许免密码登录

 服务器一

[root@localhost ~]#ssh-keygen -t 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 /root/.ssh/id_ecdsa.
Your public key has been saved in /root/.ssh/id_ecdsa.pub.
The key fingerprint is:
SHA256:9/fC7qA0gs6D4rFsxp2GSdtvZpWrb1D5L2K/uzowED8 root@localhost.localdomain
The key's randomart image is:
+---[ECDSA 256]---+
|                 |
|    .            |
|     o   .       |
|    . E o        |
|     . oSo.      |
|  .   +.o...     |
| o.* o.=..o.o..  |
| .Oo*o= *o.o.oo. |
| ++o ==*o=*= oo..|
+----[SHA256]-----+
[root@localhost ~]#cd ~
[root@localhost ~]#ssh-copy-id -i id_ecdsa.pud root@192.168.184.129

服务器二

[root@ky15 home]#cd zhangsan/
[root@ky15 zhangsan]#ls -a
.   .bash_history  .bash_profile  .cache   .mozilla
..  .bash_logout   .bashrc        .config  .ssh
[root@ky15 zhangsan]#cd .ssh/
[root@ky15 .ssh]#ls
authorized_keys
[root@ky15 .ssh]#cat authorized_keys 
ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBKQSA9IyCq51N+pngvuFSwoBsWBlzBPn1/pI73wSB+onDfd9i81aTl+QBysQFrDfWUcxlCKniUOP0BewP5rxD+o= lisi@ky15-1

免交互登录
[lisi@ky15-1 .ssh]$ ssh-add 
Enter passphrase for /home/lisi/.ssh/id_ecdsa: 
Identity added: /home/lisi/.ssh/id_ecdsa (/home/lisi/.ssh/id_ecdsa)
#此处输入此前的密码
[lisi@ky15-1 .ssh]$ ssh zhangsan@192.168.91.100
Last login: Wed Sep 29 00:24:26 2021 from 192.168.91.101
[zhangsan@ky15 ~]$ 
免交互登录
[lisi@ky15-1 .ssh]$ ssh-add 
Enter passphrase for /home/lisi/.ssh/id_ecdsa: 
Identity added: /home/lisi/.ssh/id_ecdsa (/home/lisi/.ssh/id_ecdsa)
#此处输入此前的密码
[lisi@ky15-1 .ssh]$ ssh zhangsan@192.168.91.100
Last login: Wed Sep 29 00:24:26 2021 from 192.168.91.101
[zhangsan@ky15 ~]$ 

四、ssh客户端

scp命令 —— 远程安全复制

sftp命令 —— 安全FTP上下载

格式:sftp user@host

[root@localhost ~]#
[root@localhost ~]#sftp root@192.168.184.129
root@192.168.184.129's password: 
Connected to 192.168.184.129.
sftp> 

五、TCP Wrappers

TCP Wrappers 将 TCP 服务程序“包裹”起来,代为监听 TCP 服务程序的端口,增加了

一个安全检测过程,外来的连接请求必须先通过这层安全检测,获得许可后才能访问真正

的服务程序

1、轻量级自动化运维工具pssh

  • pssh:基于python编写,可在多台服务器上执行命令的工具,也可实现文件复制,提供了基于ssh

    和scp的多个并行工具,项目:http://code.google.com/p/parallel-ssh/

[root@localhost ~]#cd /etc/yum.repos.d/
[root@localhost yum.repos.d]#vim CentOS-Base.repo
#最后一行添加
[epel]
name=epel
baseurl=https://mirrors.aliyun.com/epel/$releasever/x86_64
        https://mirrors.cloud.tencent.com/epel/$releasever/x86_64
        https://mirrors.huaweicloud.com/epel/$releasever/x86_64
        https://mirrors.tuna.tsinghua.edu.cn/epel/$releasever/x86_64
gpgcheck=0
:wq
[root@localhost yum.repos.d]#yum clean all 
已加载插件:fastestmirror, langpacks
正在清理软件源: base epel extras updates
Cleaning up everything
Maybe you want: rm -rf /var/cache/yum, to also free up space taken by orphaned data from disabled or removed repos
[root@localhost yum.repos.d]#yum install pssh -y
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.ustc.edu.cn
 * epel: mirrors.huaweicloud.com
 * extras: mirrors.bfsu.edu.cn
 * updates: mirrors.huaweicloud.com
正在解决依赖关系
--> 正在检查事务
---> 软件包 pssh.noarch.0.2.3.1-5.el7 将被 安装
--> 解决依赖关系完成

依赖关系解决

============================================================================
 Package        架构             版本                  源              大小
============================================================================
正在安装:
 pssh           noarch           2.3.1-5.el7           epel            49 k

事务概要
============================================================================
安装  1 软件包

总下载量:49 k
安装大小:115 k
Downloading packages:
pssh-2.3.1-5.el7.noarch.rpm                            |  49 kB   00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在安装    : pssh-2.3.1-5.el7.noarch                                 1/1 
  验证中      : pssh-2.3.1-5.el7.noarch                                 1/1 

已安装:
  pssh.noarch 0:2.3.1-5.el7                                                 

完毕!
[root@localhost yum.repos.d]#

六、总结

SSH 服务支持两种登录验证方式:密码验证、密钥对验证

SSH服务的安全控制包括修改监听端口、禁止root用户或空口令用户登录、仅允许个别用户、采用密钥对验证等

构建 SSH密钥对验证体系时,需要将客户端的公钥发送给服务器,并将其导入目标用户的authorized keys文件

TCP Wrappers机制可以为网络服务提供额外安全保护,访问策略配置文件为/etc/hosts.allowv、/etc/hosts.deny。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值