返回顶部
首页 > 资讯 > 操作系统 >Centos 7.4中的远程访问控制的实现方法
  • 772
分享到

Centos 7.4中的远程访问控制的实现方法

Centos7.4远程访问控制Centos远程访问 2022-06-04 23:06:13 772人浏览 泡泡鱼
摘要

一、ssh远程管理 SSH是一种安全通道协议,主要用来实现字符界面的远程登录、远程复制等功能。SSH协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令。与早期的Telent、RSH、RCP、等应用

一、ssh远程管理

SSH是一种安全通道协议,主要用来实现字符界面的远程登录、远程复制等功能。SSH协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令。与早期的Telent、RSH、RCP、等应用相比,SSH协议提供了更好的安全性。

1、配置OpenSSH服务端

Centos 7.4系统中,OpenSSH服务器由openssh、openssh-server等软件包提供(默认已安装),并已将sshd添加为标准的系统服务。执行“systemctl start sshd”命令即可启动sshd服务,包括root在内的大部分用户都可以远程登录系统。sshd服务的配置文件默认位于/etc/ssh/sshd_config目录下,正确调整相关配置项,可以进一步提高sshd远程登录的安全性。

1)服务监听选项

sshd服务使用的默认端口号为22,必要时建议修改此端口号,并指定监听服务的具体IP地址,以提高在网络中的隐蔽性。V2版本要比V1版本的安全性要更好,禁用DNS反向解析可以提高服务器的响应速度。


[root@centos01 ~]# vim /etc/ssh/sshd_config  <!--编辑sshd主配置文件-->
17 Port 22     <!--监听端口为22-->
19 ListenAddress 192.168.100.10  <!--监听地址为192.168.100.10-->
21 Protocol 2    <!--使用SSH V2协议-->
118 UseDNS no  <!--禁用DNS反向解析-->
......       <!--此处省略部分内容-->
[root@centos01 ~]# systemctl restart sshd  <!--重启sshd服务-->

2)用户登录控制

sshd服务默认允许root用户登录,但在Internet中使用时是非常不安全的。关于sshd服务的用户登录控制,通常应禁止root用户或密码为空的用户登录。另外,可以限制登录验证的时间(默认为2分钟)及最大重试次数,若超过限制后仍未能登录则断开连接。


[root@centos01 ~]# vim /etc/ssh/sshd_config   <!--编辑sshd主配置文件-->
 37 LoginGraceTime 2m    <!--登录验证时间为2分钟-->
 38 PermitRootLogin yes   <!--禁止root用户登录-->
 40 MaxAuthTries 6        <!--最大重试次数为6-->
 67 PermitEmptyPassWords no    <!--禁止空密码用户登录-->
 ......       <!--此处省略部分内容-->
[root@centos01 ~]# systemctl restart sshd      <!--重启sshd服务-->

2、登录验证方式

对于服务器的远程管理,除了用户账户的安全控制以外,登录验证的方式也非常重要。sshd服务支持两种验证方式——密码验证、密钥对验证,可以设置只使用其中一种方式,也可以两种方式都启用。

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

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

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


[root@centos01 ~]# vim /etc/ssh/sshd_config <!--编辑sshd主配置文件-->
 43 PubkeyAuthentication yes     <!--启用密钥对验证-->
 47 AuthorizedKeysFile   .ssh/authorized_keys <!--指定公钥库文件-->
 66 PasswordAuthentication yes    <!--启用密码验证-->
......       <!--此处省略部分内容-->
[root@centos01 ~]# systemctl restart sshd     <!--重启sshd服务-->

其中,公钥文件用来保存多个客户端上传的公钥文本,以便与客户端本地的私钥文件进行匹配。

二、使用SSH客户端程序

在Centos 7.4系统中,OpenSSH客户端由openssh-clients软件包提供(默认已安装),其中包括ssh远程登录命令,以及scp、sftp远程复制和文件传输命令等。

1、命令程序ssh远程登录

通过ssh命令可以远程登录sshd服务,为用户提供一个安全的Shell环境,以便对服务器进行管理和维护。使用时应指定登录用户、目标主机地址作为参数。示例如下:


[root@centos02 ~]# ssh root@192.168.100.10
root@192.168.100.10's password: 
Last login: Mon Nov 11 19:02:50 2019 from 192.168.100.254
[root@centos01 ~]# 
[root@centos01 ~]# 
[root@centos01 ~]# ssh root@192.168.100.10
The authenticity of host '192.168.100.10 (192.168.100.10)' can't be established.
ECDSA key fingerprint is SHA256:PUueT9fU9QbsyNB5NC5hbSXzaWxxQavBxXmfoknXl4I.
ECDSA key fingerprint is MD5:6d:f7:95:0e:51:1a:d8:9e:7b:b6:3f:58:51:51:4b:3b.
Are you sure you want to continue connecting (yes/no)? yes  <!--接受密钥-->
Warning: Permanently added '192.168.100.10' (ECDSA) to the list of known hosts.
root@192.168.100.10's password:   <!--输入密码-->
Last login: Mon Nov 11 19:03:08 2019 from 192.168.100.20
[root@centos01 ~]# who     <!--确认当前用户-->
root   pts/1    2019-11-11 19:03 (192.168.100.20)
root   pts/2    2019-11-11 19:04 (192.168.100.10)

如果sshd服务器使用了非默认的端口(如2222),则在登录时必须通过“-p”选项指定端口号。示例如下:


[root@centos01 ~]# vim /etc/ssh/sshd_config<!--修改ssh主配置文件-->
Port 2222     <!--修改监听端口号为2222-->
[root@centos01 ~]# systemctl restart sshd  <!--重启sshd服务-->
[root@centos02 ~]# ssh -p 2222 root@192.168.100.10   <!--客户端登录ssh-->
root@192.168.100.10's password:     <!--输入密码-->
Last login: Mon Nov 11 19:20:28 2019 from 192.168.100.10
[root@centos01 ~]#      <!--成功登录-->

2、scp远程复制

通过scp命令可以利用SSH安全连接与远程主机相互复制文件,使用scp命令时,除了必须指定复制源、目标之外,还应指定目标主机地址、登录用户,执行后根据提示输入验证口令即可。示例如下:


[root@centos02 ~]# scp
root@192.168.100.10:/etc/ssh/sshd_config ./ 
     <!--将远程主机数据复制到本地数据,保存在当前位置-->
root@192.168.100.10's password:   <!--输入密码-->
sshd_config          100% 3910   3.6MB/s  00:00  
[root@centos02 ~]# scp -r ./sshd_config
root@192.168.100.10:/opt   
     <!--将本地数据上传到远程主机目录的opt中-->
root@192.168.100.10's password:   <!--输入密码-->
sshd_config          100% 3910   1.2MB/s  00:00  

3、sftp安装FTP

通过sftp命令可以利用SSH安全连接与远程主机上传、下载文件,采用了与FTP类似的登录过程和交互环境,便于目录资源管理。示例如下:


[root@centos01 ~]# cd /opt/    <!--进入opt目录-->
[root@centos01 opt]# sftp root@192.168.100.20  <!--登录sftp-->
root@192.168.100.20's password:   <!--输入密码-->
Connected to 192.168.100.20.
sftp> pwd    <!--查看客户端登录sftp的位置默认在宿主目录-->
Remote working directory: /root
sftp> put sshd_config    <!--上传数据到远程主机-->
Uploading sshd_config to /root/sshd_config
sshd_config          100% 3910   6.4MB/s  00:00  
sftp> get sshd_config     <!--下载数据到本地-->
Fetching /root/sshd_config to sshd_config
/root/sshd_config       100% 3910   3.6MB/s  00:00  
sftp> exit         <!--退出登录-->

三、构建密钥对验证的SSH体系

密钥对验证方式可以远程登录提供更好的安全性。在linux服务器、客户端中构建密钥对验证SSH体系的基本过程。如下图所示,整个过程包括四步,首先要在SSH客户端以zhangsan用户身份创建密钥对,并且要将创建的公钥文件上传至SSH服务器端,然后要将公钥信息导入服务器端的目标用户lisi的公钥数据库,最后以服务器端用户lisi的身份登录验证。

1、在客户端创建密钥对

在客户端中,通过ssh-keygen工具为当前用户创建密钥对文件。可用的加密算法为ECDSA或DSA(ssh-keygen命令的“-t”选项用于指定算法类型)。示例如下:


[root@centos02 ~]# ssh-keygen -t dsa   <!--创建密钥对-->
Generating public/private dsa key pair.
Enter file in which to save the key (/root/.ssh/id_dsa):  <!--指定私钥位置-->
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): <!--设置私钥短语-->
Enter same passphrase again:    <!--确认所设置的短语-->
Your identification has been saved in /root/.ssh/id_dsa.
Your public key has been saved in /root/.ssh/id_dsa.pub.
The key fingerprint is:
SHA256:zv0EdqIuOfwSovN2Dkij08y9wZ0f1+IyhY7LFNKKzkk root@centos02
The key's randomart image is:
+---[DSA 1024]----+
|         |
|         |
|         |
|   .      |
| o . o S.+ .  |
| * *.+.=.+.=   |
|o E.*o+==.+ o  |
| =o..*Oo++ +   |
| ++oo+*+o. .  |
+----[SHA256]-----+
[root@centos02 ~]# ls -lh ~/.ssh/id_dsa* <!--确认生成的密钥文件-->
-rw------- 1 root root 668 11月 12 16:11 /root/.ssh/id_dsa
-rw-r--r-- 1 root root 603 11月 12 16:11 /root/.ssh/id_dsa.pub

新生成的密钥对文件中,id_das是私钥文件,权限默认为600,对于私钥文件必须妥善保管,不能泄露给他人;id_dsa.pub是公钥文件,用来提供给ssh服务器。

2、将公钥文件上传至服务器

将上一步生成的公钥文件上传至服务器,并部署到服务器端用户的公钥数据库中。上传公钥文件时可以选择SCP、FTP、Http甚至发送E-mail等任何方式。


root@centos02 ~]# ssh-copy-id -i ./.ssh/id_dsa.pub 
root@192.168.100.10 <!--将公钥文件上传至服务器并导入公钥文本-->
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "./.ssh/id_dsa.pub"
The authenticity of host '192.168.100.10 (192.168.100.10)' can't be established.
ECDSA key fingerprint is SHA256:PUueT9fU9QbsyNB5NC5hbSXzaWxxQavBxXmfoknXl4I.
ECDSA key fingerprint is MD5:6d:f7:95:0e:51:1a:d8:9e:7b:b6:3f:58:51:51:4b:3b.
Are you sure you want to continue connecting (yes/no)? yes  <!--输入yes-->
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@192.168.100.10's password:   <!--输入密码-->

Number of key(s) added: 1

Now try logging into the Machine, with:  "ssh 'root@192.168.100.10'"
and check to make sure that only the key(s) you wanted were added.

3、在客户端使用密钥对验证

当私钥文件(客户端)、公钥文件(服务器)均部署到位以后,就可以在客户端中进行测试了。首先确认客户端中当前的用户为root,然后通过ssh命令以服务器端用户root的身份进行远程登录。如果密钥对验证方式配置成功,则在客户端将会要求输入私钥短语,以便调用私钥文件进行匹配(若未设置私钥短语,则直接登入目标服务器)。


[root@centos02 ~]# ssh root@192.168.100.10   <!--登录ssh服务器-->
Last login: Tue Nov 12 16:03:56 2019 from 192.168.100.254
[root@centos01 ~]# who  <!--登录成功服务器,查看都有哪些用户-->
root   pts/0    2019-11-12 17:35 (192.168.100.20)
root   pts/2    2019-11-12 16:03 (192.168.100.254)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

--结束END--

本文标题: Centos 7.4中的远程访问控制的实现方法

本文链接: https://lsjlt.com/news/20747.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Centos 7.4中的远程访问控制的实现方法
    一、SSH远程管理 SSH是一种安全通道协议,主要用来实现字符界面的远程登录、远程复制等功能。SSH协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令。与早期的Telent、RSH、RCP、等应用...
    99+
    2022-06-04
    Centos7.4 远程访问控制 Centos 远程访问
  • Centos中TCPWrappers访问控制实现
    一、TCP Wrappers概述 TCP Wrappers将TCP服务程序“包裹”起来,代为监听TCP服务程序的端口,增加了一个安全检测过程,外来的连接请求必须先通过这层安全检测,获得许可后才能访问真正的服务程序,如下...
    99+
    2022-06-04
    Centos TCPWrappers访问控制 Centos 访问控制
  • CentOS 中如何实现TCP Wrappers访问控制
    本篇文章为大家展示了CentOS 中如何实现TCP Wrappers访问控制,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一、TCP Wrappers概述TCP Wrappers将TCP服务程序“包...
    99+
    2023-06-05
  • 阿里云服务器访问国内实现远程控制与访问
    在当今信息时代,远程访问服务器已成为企业业务运营中必不可少的一部分。特别是在国内,由于地理位置和网络环境的限制,企业可能需要通过阿里云服务器来访问国内的数据资源和业务系统。本文将详细介绍如何通过阿里云服务器访问国内,并提供相关的解决方案和建...
    99+
    2023-12-16
    阿里 远程控制 服务器
  • PHP 访问控制的实施方案
    访问控制方法:基于角色的访问控制 (rbac):根据角色分配权限。基于属性的访问控制 (abac):根据用户属性分配权限。实战案例:在电子商务网站中,仅管理员可以访问管理仪表板。使用 r...
    99+
    2024-05-04
    php 访问控制 access
  • Python中怎么实现访问控制
    本篇文章给大家分享的是有关Python中怎么实现访问控制,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。属性的种类通过之前的内容,我们知道,在定义一个类时,类内部可以有属性和方法...
    99+
    2023-06-16
  • CentOS中怎么安装XRDP实现远程桌面访问
    小编给大家分享一下CentOS中怎么安装XRDP实现远程桌面访问,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!获得 root 权限后,我们来安装 Fedora 的...
    99+
    2023-06-10
  • Python实现用手机监控远程控制电脑的方法
    一、前言 很多时候,我们都有远程控制电脑的需求。比如正在下载某样东西,需要让电脑在下载完后关机。或者你需要监控一个程序的运行状况等。 今天我们就来用Python实现一个远程监控并控制电脑的小程序。 二、实现原理 ...
    99+
    2022-06-02
    Python 远程控制电脑 Python 手机远程控制电脑
  • 增强Linux内核中访问控制安全的方法
    背景 前段时间,我们的项目组在帮客户解决一些操作系统安全领域的问题,涉及到windows,linux,macOS三大操作系统平台。无论什么操作系统,本质上都是一个软件,任何软件在一开始设计的时候,都不能百分之百的满足人...
    99+
    2022-06-04
    linux访问控制 linux内核访问控制安全
  • CentOS如何安装XRDP实现远程桌面访问?
    获得 root 权限后,我们来安装 Fedora 的源,方便后面使用 yum 命令来安装所需软件包。 安装网络上的 Fedora 源文件: rpm -ivh http://dl.fedoraproject.org/pub/ep...
    99+
    2022-05-20
    CentOS XRDP 远程 桌面访问
  • ubuntu16.04安装ssh服务并实现远程访问的方法
    一、查看是否安装了ssh服务 apt-cache policy openssh-client openssh-server ubuntu默认安装了openssh-client,openssh-server需要手动...
    99+
    2022-06-04
    ubuntu ssh远程访问 ubuntu 16.04 安装ssh
  • navicat授权远程访问的方法
    这篇文章将为大家详细讲解有关navicat授权远程访问的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。  Navicat for MySQL是MySQL数据库常用的数...
    99+
    2024-04-02
  • Apache如何实现基于IP的访问控制
    Apache可以通过使用mod_authz_host模块来实现基于IP的访问控制。您可以通过编辑Apache的配置文件来配置基于IP的访问控制规则。 以下是一个示例配置,只允许特定IP地址范围内的用户访问您的网站: <Director...
    99+
    2024-07-05
    apache
  • Apache如何实现基于组的访问控制
    Apache可以通过使用基于组的访问控制模块来实现基于组的访问控制。其中,最常用的模块是mod_authz_groupfile模块和mod_authz_dbd模块。 mod_authz_groupfile模块允许管理员使用一个简单的文本文...
    99+
    2024-07-05
    apache
  • mysql5.7 设置远程访问的实现
    mysql5.7设置远程访问不是和网上说的一样建个用户赋个权限就可以访问的。比如下边这个就是建用户赋权限,可能在之前的版本可以,但是我在我的mysql上一直不行。为此烦了好久!!!项目都耽误了!! 一、原来设置远程访...
    99+
    2022-05-14
    mysql5.7 远程访问 mysql 远程访问
  • Flask中跨域访问的实现方法
    这篇文章将为大家详细讲解有关Flask中跨域访问的实现方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在我们访问不同的服务器时,就会涉及到了跨域的问题。因为不同域名之间是无法进行交流的,然后跨域就打破了...
    99+
    2023-06-14
  • JavaScript中实现并发控制的方法
    这篇文章将为大家详细讲解有关JavaScript中实现并发控制的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、并发控制简介在日常开发过程中,你可能会遇到并发控制的场景,比如控制请求并发数。那么在 ...
    99+
    2023-06-15
  • kubernetes中如何实现RBAC 角色访问控制
    小编给大家分享一下kubernetes中如何实现RBAC 角色访问控制,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!一:RBAC体系结构二:RBAC角色绑定流程三:说明1.RBAC的优势a.对集群中的资源和非资源权限均有完...
    99+
    2023-06-04
  • Linux系统配置Linux访问控制列表的权限控制方法
    本篇内容主要讲解“Linux系统配置Linux访问控制列表的权限控制方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux系统配置Linux访问控制列表的权限控制方法”吧!使用拥有权限控制...
    99+
    2023-06-13
  • MySQL限制IP网段范围从远程访问的方法
    mysql>grant select,insert,update,create on test.* to test@'192.168.8.%' identified by '123456'; mys...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作