linux 远程访问及控制 (SSH)

admin2024-08-20  6

目录

一、SSH远程管理

1.1 配置OpenSSH服务端

1.1.1 SSH协议介绍

 1.1.2 服务监听选项

1.1.3 用户登录控制 

1.1.4 登录验证方式 

1.2 使用SSH客户端程序

1.3 密钥对验证的SSH体系

二、TCP Wrapppers访问控制

2.1 TCP Wrappers概述

2.1.1 TCP Wrappers简介

2.1.2 TCP Wrappers保护机制的实现方式

2.2 TCP Wrappers访问策略

 2.3 TCP Wrappers 机制的基本原则


一、SSH远程管理

1.1 配置OpenSSH服务端

1.1.1 SSH协议介绍

  • SSH(Secure Shell)协议
    • 是一种安全通道协议,主要用来实现字符界面的远程登录、远程复制等功能。
    • SSH协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令。因此SSH协议具有很好的安全性。
  • OpenSSH
    • 服务名称:sshd
    • 服务端主程序:/usr/sbin/sshd
    • 服务端配置文件:/etc/ssh/sshd_config
    • 默认端口号:22
    • OpenSSH 是实现 SSH 协议的开源软件项目,系统默认已安装openssh相关软件包,并已将 sshd 服务添加为开机自启动,执行“systemctl start sshd”命令即可启动 sshd 服务

 1.1.2 服务监听选项

  • 端口号、协议版本、监听IP地址
  • 禁用反向解析
vim /etc/ssh/sshd_config
Port 22 								#监听端口为 22
ListenAddress 0.0.0.0 					#监听地址为任意网段,也可以指定OpenSSH服务器的具 
                                         体IP
UseDNS no 								#禁用 DNS 反向解析,以提高服务器的响应速度
                                          根本目的是节省资源,优化资源使用

1.1.3 用户登录控制 

  • 禁用root用户、空密码用户
  • 限制登录验证时间、重试次数
  • AllowUsers、DenyUers
vim /etc/ssh/sshd_config

LoginGraceTime 2m 						#登录验证时间为 2 分钟
PermitRootLogin no 						#禁止 root 用户登录
MaxAuthTries 6 							#最大重试次数为 6
PermitEmptyPasswords no 				#禁止空密码用户登录

1.1.4 登录验证方式 

  • 密码验证:对服务器中本地系统用户的登录名称、密码进行验证。简便,但可能会被暴力破解
  • 密钥对验证:要求提供相匹配的密钥信息才能通过验证。通常先在客户端中创建一对密钥文件(公钥、私钥),
    然后将公钥文件放到服务器中的指定位置。远程登录时,系统将使用公钥、私钥进行加密/解密关联验证。能增强安全性,
    且可以免交互登录。
vim /etc/ssh/sshd_config
PasswordAuthentication yes 						#启用密码验证
PubkeyAuthentication yes 						#启用密钥对验证
AuthorizedKeysFile .ssh/authorized_keys 		#指定公钥库文件

1.2 使用SSH客户端程序

  • SSH命令------远程安全登录
  • SCP命令------远程安全复制
  • sftp命令------安全FTP上下载

1.3 密钥对验证的SSH体系

整体实现过程

  1. 创建密钥对
通过ssh-keygen工具为当前用户创建密钥对文件。可用的加密算法为RSA、ECDSA或DSA等(ssh-keygen命令的“-t”选项用于指定算法类型)。

[root@localhost ~]# ssh-keygen -t rsa                    #创建RSA类型的密钥对文件
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):  #指定私钥位置,直接回车使 
                                                            用默认位置
Enter passphrase (empty for no passphrase):                #设置私钥的密码
Enter same passphrase again:                                #确认输入
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:gABCi4HBqN/fhEqSB0ZZT7lD5rF0RtmAN8BcHC/Z0bc root@localhost.localdomain
The key's randomart image is:
+---[RSA 2048]----+
|X+.o.ooB==..     |
|=o+. +X B+... .  |
|oo  .=oBo.o  . . |
|. o   =. .    E  |
| o +   oS        |
|  + + . .        |
|   + o o         |
|    . . .        |
|                 |
+----[SHA256]-----+

[root@localhost .ssh]# ll
总用量 12
-rw-------. 1 root root  408 8月  19 15:10 authorized_keys
-rw-------. 1 root root 1675 8月  19 19:54 id_rsa            #是私钥文件,权限默认为        
                                                               600
-rw-r--r--. 1 root root  408 8月  19 19:54 id_rsa.pub        #是公钥文件,用来提供给 
                                                               SSH 服务器

2. 上传公钥文件 并导入

scp ~/.ssh/id_ecdsa.pub root@192.168.80.10:/opt
或者

cd ~/.ssh/
ssh-copy-id root@192.168.80.10
#此方法可直接在服务器的/home/zhangsan/.ssh/目录中导入公钥文本

 3. 使用密钥对验证

linux 远程访问及控制 (SSH),第1张

 密钥对验证成功  免交互

二、TCP Wrapppers访问控制

2.1 TCP Wrappers概述

2.1.1 TCP Wrappers简介

  • TCP Wrappers 将TCP服务程序“包裹”起来,代为监听TCP服务程序的端口,增加了一个安全检测过程,外来的连接请求必须先通过这层安全检测,获得许可后才能访问真正的服务程序。

2.1.2 TCP Wrappers保护机制的实现方式

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

2.2 TCP Wrappers访问策略

  • TCP Wrappers 机制的保护对象为各种网络服务程序,针对访问服务的客户端地址进行访问控制。
  • 对应的两个策略文件为/etc/hosts.allow 和/etc/hosts.deny,分别用来设置允许和拒绝的策略。

 2.3 TCP Wrappers 机制的基本原则

  • 首先检查/etc/hosts.allow文件,如果找到相匹配的策略,则允许访问;
  • 否则继续检查/etc/hosts.deny文件,如果找到相匹配的策略,则拒绝访问;
  • 如果检查上述两个文件都找不到相匹配的策略,则允许访问。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明原文出处。如若内容造成侵权/违法违规/事实不符,请联系SD编程学习网:675289112@qq.com进行投诉反馈,一经查实,立即删除!