Linux网络服务之SSH

237 阅读4分钟

SSH介绍

SSH 为Secure Shell的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于多种平台。几乎所有UNIX平台—包括HP-UX、Linux、AIX、Solaris、DigitalUNIX、Irix,以及其他平台,都可运行SSH。

OpenSSH软件包

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

服务名称:sshd

服务端配置文件:/etc/ssh/sshd_config

客户端配置文件:/etc/ssh/ssh.config

端口

ssh协议的端口号为22

ssh配置文件

image.png

image.png

image.png

image.png

image.png

使用SSH客户端程序

ssh远程登录

ssh [选项] zhangsan@192.168.230.30

在192.168.230.40主机中连接192.168.230.30主机 image.png

在家目录中创建lsy目录 image.png

返回到192.168.230.30主机上查看到家目录中有lsy文件 image.png

ssh -p 端口号 用户@服务端ip地址(若客户端端口号和服务端端口号不一致需要用-p指定服务端端口号)

复制

上行复制(推送)

scp 文件 用户@服务端ip地址:保存路径 image.png

下行复制(拉取)

scp -r 用户@服务端ip地址:服务端文件地址 保存路径

image.png

sshd服务支持两种验证方式

1.密码验证

对服务器中本地系统用户的登录名称、密码进行验证。但容易被破解。

2.密钥对验证

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

微信图片_20220819171609.jpg

使用ssh-keygen命令生成密钥对,执行结束以后会在  /home/当前用户 目录下生成一个 .ssh 文件夹,其中包含私钥文件 id_rsa 和公钥文件 id_rsa.pub。 使用ssh-copy-id命令将公钥复制到远程主机。ssh-copy-id会将公钥写到远程主机的~/.ssh/authorized_key 文件中

实现用密钥进行远程登录

在客户端创建密钥对

image.png

手动

把公钥文件传给服务端 image.png

在服务端查看公钥文件,复制公钥文件的内容

image.png

在服务端用户的家目录中的.ssh目录中创建authorized_keys文件并把客户端公钥文件内容粘贴到这个文件中

粘贴刚才的内容保存退出 image.png

再用客户端登录就可以实现用密钥进行远程连接

自动

在客户端 ssh-copy-id -i 公钥文件 用户@服务端IP image.png

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的使用主要是依靠两个配置文件/etc/hosts.allow , /etc/hosts.deny,用于拒绝和接受具有TCP_Wrappers控制的程序,默认情况下,这两个文件什么都没有添加,所以没有限制。

TCP Wrappers 保护机制的两种实现方式

直接使用 tcpd 程序对其他服务程序进行保护,需要运行 tcpd 程序。 由其他网络服务程序调用 1ibwrap.so.*动态函数库,不需要运行 tepd 程序,此方式的应用更加广泛,也更有效率。

TCP Wrappers 机制的基本原则

首先检查/etc/hosts.allow文件,如果找到相匹配的策略,则允许访问: 否则继续检查/etc/hosts.deny文件,如果找到相匹配的策略,则拒绝访问: 如果检查上述两个文件都找不到相匹配的策略,则允许访问。

允许所有,拒绝个别” 只需在/etc/hosts.deny文件中添加相应的拒绝策略 “允许个别,拒绝所有” 除了在/etc/hosts.allow中添加允许策略之外,还需要在/etc/hosts.deny文件中设置“ALL:ALL”的拒绝策略

格式

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

image.png

image.png