Linux骚操作之第二十二话SSH服务

前言

现实环境中的服务器是通过远程登陆的方式进行操作和管理,集中管理的方式使用远程维护的方式最为便捷,远程管理最为常用的就是SSH,主要原因是TELNET和FTP等方式在传输过程中存在风险,采用明文的方式意味着存在危险,而SSH是目前企业使用最为频繁,也是最为可靠的一种,因为此协议对所有数据进行加密,防止DNS欺骗和IP欺骗。

一、什么是SSH服务

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

二、SSH和OpenSSH

在这里插入图片描述
1、数据传输是加密的,可以防止信息泄露

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

3、ssh客户端:Putty、Xshell、CRT、Mobaxterm

4、SSH服务端:OpenSSH

5、OpenSSH是实现SSH协议的开源软件项目,适用于各种UNIX、LINUX操作系统服务
名称:sshd服务端主程序:/usr/sbin/sshd服务端配置文件:/etc/ssh/sshd_config

6、SSHD服务默认使用的是TCP的22端口,安全协议版本sshv2,除了2之外还有1,但由于版本问题,存在漏洞。

7、sshd服务的默认配置文件是/etc/ssh/sshd_config

8、ssh_config和ssh_config都是ssh服务器的配置文件,二者区别在于前者是针对客户端的配置文件,后者是针对服务端的配置文件

9、ssh服务端主要包括两个服务功能,ssh远程连接和sftp服务。作用是sshd服务使用ssh协议可以用来进行远程控制,或者在计算机之间传送文件。相比较之前的telnet方式,要更加的安全和可靠,因为telnet使用明文传输。而ssh使用加密传输

10、远程管理LINUX系统基本上都是使用ssh,原因是telnet、FTP等传输方式是以明文传送用户认证信息,本质上是不安全的,存在被网络窃取的可能性。SSH目前是最可靠的,是专门为远程登陆会话和其他网络服务提高安全性的协议,利用SSH协议可以有效防止远程管理过程中的信息被泄露,通过SSH可以对所有传输的数据进行加密,也能够防止DNS欺骗和IP欺骗。

三、OpenSSH服务器

1、服务监听选项

1.1、端口号:22(建议修改,防止别人暴力破解)
1.2、协议版本:SSH1和SSH2,但是SSH1存在漏洞和缺陷,建议选择SSH2
1.3、监听IP地址:listenAddress 0.0.0.0表示侦听所有地址 (建议如果主机不需要从公网ssh访问,可以把监听地址换成内网地址。)
1.4、禁用反向解析一般来说,为了判断客户端来源是否合法,因此会使用DNS去反查客户端的主机名,但通常在内网互联时,该设置为no,因此使联机速度会快些。注意:禁用DNS反向解析会提高服务器的响应速度,因为会打环。

四、SSH远程登陆方式

1、方法一

ssh [远程主机用户名] @ [远程服务器主机名或者IP地址] -p port

2、方法二

ssh -l [远程主机用户名] [远程服务器主机名或IP地址] -p port
-l :指定登陆名称
-p :指定登陆端口

3、案例

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

五、安全调优

在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述

1、Grace意思是系统给多少秒进行登陆(默认2分钟,0表示不限制)
在这里插入图片描述
2、PermitRootLogin yes是否允许root登陆,默认是允许的,但建议设定为no,真实环境中是不允许。仅允许普通用户登陆,需要使用root时再切换到root
在这里插入图片描述
3、PasswordAuthentication yes密码验证当然是需要的,在生产环境中,根据不同的安全级别要求,有些是通过认证的密钥来登陆
在这里插入图片描述
4、PermitAuthentication no 是否允许卡密码的用户登陆使用 默认为NO 不允许
在这里插入图片描述

5、AllowUsers 当希望只允许或禁止特定用户登陆时,可以使用AllowUsers或者DenyUsersp配置,两者用法类似

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

六、SSHD服务支持的两种验证方式

1、密码验证

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

2、密钥对验证

要求提供相匹配的密钥信息才能通过验证,通常先在客户端中建立一对密钥文件(公钥、私钥),然后将公钥文件放在指定位置,远程登陆时,系统将使用公钥、私钥进行加密/解密关联验证,大大增强了远程管理的安全性,该方法不易被假冒,且可以免交互登陆,在shell中被广泛使用。

3、优先级

当密码验证、密钥对验证启用时,服务器会优先启用密钥对验证,对于安全性要求性较高的服务器,建议将密码验证禁用,只允许启用密钥对验证方式,若没有特殊要求,则两种方式都启用。

4、免密登陆

ssh-agent bash 将公钥添加管理,在客户端操作 ssh-add

5、构建密钥对验证的SSH

5.1、在非对称加密技术中,在两种密钥,分为私钥和公钥,私钥是密钥对所有者持有,不可公布,公钥是密钥对持有者公布给他人的。

5.2、公钥用来给数据加密,用公钥加密的数据只使用私钥解。

5.3、构建密钥对验证是SSH原理首先SSH通过加密算法在客户端产生密钥对,公钥发送给服务端,自己保留私钥,如果要要连接到带有公钥的SSH服务器,客户端SSH软件就会向SSH服务器发出请求。请求用联机的用户密钥进行安全验证,SSH服务器收到请求之后,会先在该SSH服务器上连接的用户的家目录下寻找事先放上去的对应用户的公钥,然后把它和连接的SSH客户端发送过来的公钥进行比较,如果保持一致,SSH服务器就会用公钥加密质询,并把它发送给SSH客户端

5.4、密钥比案例
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
5.5、远程传输案例
在这里插入图片描述
在这里插入图片描述

七、安全性传输SFTP

1、SFTP

全称secure File Transfer Protocol的缩写,安全文件传送协议,可以为传输文件提供一种安装的网络的加密方法。sftp和ftp有着几乎一致的语法系和功能,SFTP为SSH的一部分,其实在SSH软件包中,已经包含了一个叫SFTP的安全文件信息子系统,SFTP本身没有单独的守护进程,它必须使用sshd守护进程来完成相对应的连接和答复操作,所以,使用sftp非常安全,但是由于这种传送方式使用了加密或解密的技术,所以传送效率比普通的FTP低得多,如果您对网络安全性要求较高时,可以使用SFTP代替FTP

2、SFTP上传案例

在这里插入图片描述
在这里插入图片描述

2、下载在这里插入图片描述

八、TCP WRAPPERS

1、tcp wrappers在linux系统中,许多网络服务针对客户端提供了访问控制机制,

2、Tcp Wrappers访问控制TCP Wrappers 将TCP服务程序“包裹”起来,代为监听TCP服务程序的端口,增加了一个安全检测过程,外来的连接请求必须先通过这层安全检测,获得许可后才能访问真正的服务程序.大多数 Linux 发行版,TCP Wrappers 是默认提供的功能

3、两种实现方式

1、直接使用tcpd程序对其他服务程序进行保护,需要运行TCPD程序

2、由其他网络服务程序调用Libwrap.so.*;链接库,不需要运行tcpd程序,此方式应用更加广泛,也要有效率:ldd $ which

3、案例
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4、语法格式:<服务程序列表>:<客户端地址列表>

4.1、服务程序列表:服务程序列表可以分为几类:ALL代表所有服务;单个服务程序:vsftpd;多个服务程序组从的列表:sshd

4.2、客户端地址列表:ALL:代表任何客户端地址;LOCAL:代表任何客户端地址,多个地址之间以逗号分割,允许使用通配符“*”和“?”,前者代表任意长度字符,后者代表一个字符

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

6、案例
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值