首页 > 其他分享 >ssh远程登录协议和tcp wappers

ssh远程登录协议和tcp wappers

时间:2022-10-31 09:22:23浏览次数:61  
标签:公钥 加密 tcp wappers SSH ssh 服务端 客户端

 

 

 

SSH服务

SSH是一种安全通道协议,主要用来实现字符界面的远程登录、远程 复制等功能。SSH 协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令,SSH 为建立在应用层和传输层基础上的安全协议。对数据进行压缩,加快传输速度。

优点:

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

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

常见的ssh协议

ssh软件包

ssh协议

字符界面远程连接,
/etc/ssh/
服务端 配置文件 sshd_config
客户端 配置文件 ssh_config ssh:可以远程连接 scp sftp rsync:远程传输文件

客户端:
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(有漏洞)ftp 20 21

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

ssh服务端主要包括两个服务功能 ssh远程链接和sftp服务(文件传输功能)

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

 

SSH原理

1 客户端发起链接请求

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

3 客户端生成密钥对

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

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

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

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

 

SSH加密通讯原理

对称加密 :

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

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

特点

1 加密方和解密方使用同一个密钥;

2 加密解密的速度比较快,适合数据比较长时的使用;

3 密钥传输的过程不安全,且容易被破解,密钥管理也比较麻烦;

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

非对称加密:

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

常用算法

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 可以使用更小的秘钥,更高的效率,提供更高的安全保障

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

优缺点:相比于对称加密技术,非对称加密技术安全性更好,但性能更慢;此本次实验中,我们用非对称加密算法ECDSA进行加密,为了方便用root用户,也可给其他普通用户配置

 

方法一:

ssh [远程主机用户名]@[远程服务器主机名或IP地址] -p port
命令                                                                                  端口号

vim /etc/hosts
192.168.111.6  node2

方法二:

ssh -l [远程主机用户名] [远程服务器主机名或IP 地址] -p port
-l :-l 选项,指定登录名称。
-p: -p 选项,指定登录端口(当服务端的端口非默认时,需要使用-p 指定端口进行登录)
-t

服务端配置

 

 

 

 

 

 

创建非对称秘钥

 

 

 

 

 

 

 ssh服务的最佳实践

建议使用非默认端口 22

禁止使用protocol version 1

限制可登录用户 白名单

设定空闲会话超时时长

利用防火墙设置ssh访问策略

基于口令认证时,使用强密码策略

使用基于密钥的认证

禁止使用空密码

禁止root用户直接登录

限制ssh的访问频度和并发在线数

经常分析日志分离

 

 免密登录

原理:用户/密码;基于秘钥

用户/密码:

1.生成公钥和私钥

2.将公钥导给对面

 

 

 

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

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

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

 

 

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

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

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

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

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

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

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

 

 

 

TCP Wrappers

在 Linux 系统中,许多网络服务针对客户端提供了访问控制机制,如 Samba、BIND、 HTTPD、OpenSSH 等。本节将介绍另一种防护机制——TCP Wrappers(TCP 封套),以作 为应用服务与网络之间的一道特殊防线,提供额外的安全保障。TCP Wrappers 将 TCP 服务程序“包裹”起来,代为监听 TCP 服务程序的端口,增加了 一个安全检测过程,外来的连接请求必须先通过这层安全检测,获得许可后才能访问真正 的服务程序。TCP Wrappers 还可以记录所有企图访问被保护服务的行为, 为管理员提供丰富的安全分析资料。

 

 策略的配置个格式

两个策略文件的作用相反,但配置记录的格式相同,如下所示。

服务程序列表:客户端地址列表

服务程序列表、客户端地址列表之间以冒号分隔,在每个列表内的多个项之间以逗号分 隔

服务程序列表 :

ALL:代表所有的服务

单个服务程序:如“vsftpd“

多个服务程序组成的列表:如“vsftpd,sshd”

客户端地址列表 :

ALL:代表任何客户端地址。

LOCAL:代表本机地址。

单个 IP 地址:如“192.168.4.4”

网络段地址:如“192.168.4.0/255.255.255.0”

以“.”开始的域名:如“.bdqn.com”匹配 bdqn.com 域中的所有主机。

以“.”结束的网络地址:如“192.168.4.”匹配整个 192.168.4.0/24 网段

嵌入通配符“”“?”:前者代表任意长度字符,后者仅代表一个字符,如“10.0.8.2”

匹配以 10.0.8.2 开头的所有 IP 地址。不可与以“.”开始或结束的模式混用

多个客户端地址组成的列表:如“192.168.1.,172.16.16.,.bdqn.com”

 

 

标签:公钥,加密,tcp,wappers,SSH,ssh,服务端,客户端
From: https://www.cnblogs.com/123456789SI/p/16796592.html

相关文章

  • GB28181基于TCP协议的视音频媒体传输探究及实现
    我们先看看官方规范针对TCP协议的视音频传输描述:实时视频点播、历史视频回放与下载的TCP媒体传输应支持基于RTP封装的视音频PS流,封装格式参照IETFRFC4571。流媒体服务器宜......
  • 比Xshell 还好用的 SSH 客户端神器
    个人试用后的确好用界面也还凑合,主要是解决了crt的长连接问题推荐链接:https://mp.weixin.qq.com/s?__biz=MzU2NDc4MjE2Ng==&mid=2247493070&idx=3&sn=531a178d919516a0ef......
  • TCP/IP分层
    TCP/IP分层TCP/IP网络分层模型TCP/IP协议共有4层,每一层需要下一层的支撑,同时也支撑着上层,顺序就是从下向上链接层:在以太网、Wifi上发送原始数据,工作在网卡的层次,使用M......
  • SSH传输文件的速度
    SSH传输文件的几种方式:    --ssh客户端为win10,ssh服务端为linux1、微型文本文件,ssh过去,cat显示在屏幕上,然后复制粘贴保存。ssh-p22-iC:\id_rsa_1024.idus......
  • CentOS7更新OpenSSH
    前言整个过程不要断开ssh链接,如有必要可使用telnet远程操作。系统版本:centos7.9OpenSSL版本:1.0.2k->1.1.1qOpenSSH版本:7.4p1->9.1p1步骤下载OpenSSL和openssh......
  • 限制ssh访问源-system
    起因openssh升级8.3后hosts.deny不能用openssh8按官网的更新日志看Supportfortcpwrappers/libwraphasbeenremoved.已经移除了tcpwrappers,因为hosts.deny和hosts......
  • python系列:远程SSH登录并执行命令,获取结果
    需求:机器A上执行Python代码登录连接到机器B,然后在机器B上执行命令实现#!/usr/bin/envpython#coding=utf-8importparamiko,getpass,sys,tracebackclasssshDemo():def......
  • 如何kill一条TCP连接?
    原创:扣钉日记(微信公众号ID:codelogs),欢迎分享,转载请保留出处。简介如果你的程序写得有毛病,打开了很多TCP连接,但一直没有关闭,即常见的连接泄露场景,你可能想要在排查问题的......
  • Centos 修改SSH端口报错:error: Bind to port 27615 on 0.0.0.0 failed: Permission de
    报错截图问题原因selinux问题解决办法修改selinux中的sshd的端口#安装修改工具$yum-yinstallpolicycoreutils-python#查看selinux中的sshd的端口,输出为......
  • 通过SSH远程使用jupyter notebook
    1.背景一直苦恼于本地机器和服务器上都要配置一些机器学习方面的环境,今天花了点时间研究了下Jupternotebook远程访问服务器,所以记录一下。有些步骤非必须,这里尽量写清楚......