IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Linux网络SSH协议和TCP Wrappers -> 正文阅读

[系统运维]Linux网络SSH协议和TCP Wrappers

目录

SSH服务

1.1什么是SSH服务器?

1.2SSH优点

1.3常见的ssh协议

1.3ssh原理

TCP_Wrappers

工作原理

TCP wrappers 的访间策略


SSH服务

1.1什么是SSH服务器?

SSH是一种安全通道协议,主要用来实现字符界面的远程登录、远程 复制等功能;

SSH 协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令;

SSH 为建立在应用层和传输层基础上的安全协议。对数据进行压缩,加快传输速度。

SSH客户端<--------------网络---------------->SSH服务端

1.2SSH优点

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

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

1.3常见的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服务器的配置文件,二者区别在于前者是针对客户端的配置文件,后者则是针对服务端的配置文件。

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

1.3ssh原理

公钥传输原理:
客户端发起链接请求

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

客户端生成密钥对

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

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

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

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

会被加密

登录:

#登录 方法一:
ssh [远程主机用户名]@[远程服务器主机名或IP地址] -p port
 
当在 Linux 主机上远程连接另一台 Linux 主机时,如当前所登录的用户是 root 的话,当连接另一台主机时也是用 root 用户登录时,可以直接使用 ssh   IP,端口默认即可,如果端口不是默认的情况下,需要使用-p 指定端口。
 
例子:
[root@localhost ~]#ssh root@192.168.91.101
#默认使用22端口   root(登录对方的用户)加IP 地址,首次登录会询问,并要求输入密码
The authenticity of host '192.168.59.117(192.168.59.107)' can't be established.
ECDSA key fingerprint is SHA256:o72+YjT+8laQRofsv2dFlcx099aeoI92rloek3ZVrUY.
ECDSA key fingerprint is MD5:a7:9c:69:35:16:17:21:cb:0e:4f:0d:42:44:16:3a:f7.
Are you sure you want to continue connecting (yes/no)?
root@192.168.59.101's password: 
Last login: Tue Sep 28 22:23:52 2021
[root@localhost ~]#
 
#登录方法二
ssh -l [远程主机用户名] [远程服务器主机名或IP 地址] -p port
-l :-l 选项,指定登录名称。
-p:-p 选项,指定登录端口(当服务端的端口非默认时,需要使用-p 指定端口进行登录)
 
例子:
[root@localhost ~]#ssh -l root 192.168.59.117
root@192.168.91.101's password: 
Last login: Tue Sep 28 22:25:40 2021 from 192.168.59.102

服务端配置:

密码验证: 以服务器中本地系统用户的登录名称、密码进行验证。这种方式使用最为简便,但从客户机角度来看,正在连接的服务器有可能被假冒,从服务器角度来看,当遭遇密码暴力破解攻击时防御能力比较弱。

密钥对验证: 要求提供相匹配的密钥信息才能通过验证,通常先在客户机中创建一对密钥文件(公钥和私钥),然后将公钥文件放到服务器中的指定位置。远程登录时,系统将使用公钥、私钥进行加密/解密关联验证,增强了远程管理的安全性。

公钥和私钥是成对生成的,这两个密钥互不相同,可以互相加密和解密;

不能根据一个密码来推算出另一个密钥;

公钥对外公开,私钥只有私钥的持有人才知道。

实例配置:

配置密钥对验证
1.在客户端创建密钥对
通过ssh-keygen工具为当前用户创建密钥对文件。可用的加密算法为RSA、ECDSA或DsA等(ssh-keygen命令的"-t"选项用于指定算法类型)。useradd admin
echo "123123" l passwd --stdin adminsu - admin
ssh-keygen -t ecdsa
Generating public/private ecdsa key pair.
Enter file in which to save the key(/home/admin/.ssh/id ecdsa):#指定私钥位置,直接回车使用默认位置Created directory '/ home / admin / .ssh' .
#生成的私钥、公钥文件默认存放在宿主目录中的隐藏目录.ssh/下
Enter passphrase (empty for no passphrase) :
#设置私钥的密码
Enter same passphrase again:
#确认输入
ls -l ~/ .ssh/id ecdsa*
#id_ecdsa是私钥文件,权限默认为600; id _ecdsa.pub是公钥文件,用来提供给 sSH服务器
2.将公钥文件上传至服务器
scp ~ / .ssh/id_ecdsa.pub root@192.168.159.10 : / opt或
#此方法可直接在服务器的/home /zhangsan/.ssh/目录中导入公钥文本cd ~ / .ssh/
ssh-copy-id -i id_ecdsa.pub zhangsan@192.168.159.10
3.在服务器中导入公钥文本
mkdir /home / zhangsan/ .ssh/
cat /opt/id_ecdsa.pub >>/ home/zhangsan/ .ssh/authorized_keys
cat / home / zhangsan / .ssh/authorized_keys
4.在客户端使用密钥对验证
ssh zhangsan@192.168.159.10
Enter passphrase for key '/home / admin/ .ssh/id_ecdsa ' :
#输入私钥的密码
5.在客户机设置ssh代理功能,实现免交互登录
ssh-agent bash
ssh-add
Enter passphrase for /home / admin/ .ssh/id_ecdsa :
#输入私钥的密码
ssh zhangsan@192.168.159.10

TCP_Wrappers


TCP_Wrappers是一个工作在第四层(传输层)的的安全工具,对有状态连接的特定服务进行安全检测并实现访问控制,凡是包含有libwrap.so库文件的的程序就可以受TCP_Wrappers的安全控制。它的主要功能就是控制谁可以访问,常见的程序有rpcbind、vsftpd、sshd,telnet。

工作原理

TCP_Wrappers有一个TCP的守护进程叫作tcpd。以ssh为例,每当有ssh的连接请求时,tcpd即会截获请求,先读取系统管理员所设置的访问控制文件,符合要求,则会把这次连接原封不动的转给真正的ssh进程,由ssh完成后续工作;如果这次连接发起的ip不符合访问控制文件中的设置,则会中断连接请求,拒绝提供ssh服务。

TCP wrappers 的访间策略

TCP wrappers访问控制
TCP Wrappers (TCp封套)是一 个简单的防火墙机制。用来将TCp服务程序"包裹"起来,代为监听rCP服务程序的端口,增加了一个安全检测过程,外来的连接请求必须先通过这层安全检测,获得许可后才能访问真正的服务程序。
大多数Linux 发行版,TCP wrappers是默认提供的功能。rpm -q tcp_ wrappers
1.直接使用Eepd程序对其他服务程序进行保护,需要运行tepd程序
2.由其他网络服务程序调用libwrap.so.* 动态函数库,不需要运行tcpd 程序。此方式的应用更加广泛,也更有效率。
由于支持TCP wrappers 的服务必定包含libwrap这-个动态函数库,因此可以使用ldd来查看服务即可
1ibwrap.so.0 => /1ib64/1ibwrap. so.0 (0x00007f91d0bdb000)
ldd S (which vsftpd)| grep libwrap
(0x00007f4304 f3b000)
1dd S(which xinetd) 1 grep libwrap
libwrap.so.0 => /1ib64/ libwrap.so.0 (0x00007f8b17ec6000)
TCP Wrappers
机制的保护对象为各种网络服务程序,针对访问服务的客户端地址进行访问控制。
通过/etc/ hosts.allow,/etc/hosts. deny这两个文件来管理的一个类似防火墙的机制,分别用来设置允许和拒绝的策略。
<服务程序列表> :<客户端地址列表>
(1)服务程序列表.
All:代表所有的服务
多个服务程序组成的列表:如"vsftpd, ssha".
(2)客户端地址列表
ALL:代表任何客户端地址。
多个地址以逗号分隔
允许使用通配符“*”禾
前者代表任意长度字符,后者仅代表-一个字符
区域地址,如".benet. com"匹配benet. com域中的所有主机。
5.0 (掩码只支持netmask 的地址显示方式)
TCP wrappers机制的基本原则:
首先检查/etc/hosts.allow文件,如果找到相匹配的策略,则允许访问:
否则继续检查/etc/hosts.deny文件,如果找到相匹配的策略,则拒绝访问:
如果检查_上述两个文件都找不到相匹配的策略,则允许访问。
“允许所有,拒绝个别”
只需在/etc/hosts.deny文件中添加相应的拒绝策略
“允许个别,拒绝所有"
除了在/etc/hosts .allow中添加允许策略之外,还需要在/etc/hosts . deny文件中设置“ALL :ALI"的拒绝策略。
若只希望从IP地址为12.0.0.1的主机或者位于192. 168.80.0/24网段的主机访问sshd服务,其他地址被拒绝。
vi /etc/hosts.allow
sshd:192.168.80.*.172.16.0.0/255.255.255.0
vi /etc/hosts . deny
sshd:ALL
?

使用ldd命令可以查看程序的libwrap.so.*链接库

只希望从IP地址为12.0.0.1的主机或者位于192. 168.80.0/24网段的主机访问sshd服务,其他地址被拒绝:

实例配置:

?

再次访问发现访问不了,但是其他地址的主机可以正常访问

?

两个文件搭配完成拒绝159段除本机和20地址主机外所有主机访问的效果。

除了sshd服务其余如named,vsftpd等服务同理。

简而言之,先看hosts.allow文件中的策略,匹配上则直接放通,如没有匹配再看hosts.deny文件中的个策略,匹配上则禁止/拒绝访问指定的tcp服务程序,如果也没匹配则默认允许放通。

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-08-19 19:40:15  更:2022-08-19 19:41:38 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 9:43:22-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码