热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

1.8Linux中的远程登陆服务

Linux中的远程登陆服务OpenSSH的功能虚拟机桥接配置SSH连接ssh常用参数连接跳板ssh加密方式对称加密不对称加密生成非对称加密密钥不对称加密的效果非交互的生成密钥移除密

Linux中的远程登陆服务

  • OpenSSH的功能
  • 虚拟机桥接配置
  • SSH连接
    • ssh常用参数
      • 连接跳板
    • ssh加密方式
      • 对称加密
      • 不对称加密
        • 生成非对称加密密钥
    • 不对称加密的效果
    • 非交互的生成密钥
    • 移除密钥的影响
  • SSHD安全性优化调整
    • 连接端口修改
    • 关闭密码登陆
    • 禁止超级用户登陆
    • 用户登录黑白名单
    • 配置参数总结


OpenSSH的功能

SSH也算是常听到的功能了,能实现对主机的远程登录.它的实现同样基于C/S架构,即需要客户端和服务端.
其中,ssh负责客户端功能,sshd负责服务端功能.

Secure Shell ##ssh,客户端
Secure Shell Daemon ##sshd,服务端安装包为openssh-server
主配置文件位于/etc/ssh/sshd_config

在这一章会设计主机对虚拟机的连接以及远程登陆等操作,因此会涉及部分虚拟机网络的配置.

虚拟机桥接配置

首先为了排除不可预料的问题,首先对系统网络环境进行监控和控制.
修改系统网络配置网卡配置
桥接配置接下来对虚拟机网络进行配置
虚拟机网卡设置
IPV4设置
桥接对接
设置完成,如果在虚拟机中能ping通主机IP则说明配置无误,反之按上文操作检查.

SSH连接

配置好了网络就要进入正式阶段了.
首先为了排除原有用户和root用户对于实验的不确定干扰,我们需要创建一个全新的用户用于进行这次实验.创建用户采用useradd命令.
SSH登陆首次登陆时才会询问是否连接,同意后下次不会再提示该信息.
当SSH连接成功后会在本机生成记录文件,而在远端主机也会写入登陆记录.这里对本机文件进行查看.
本机记录文件但如果你删除了远程主机(这里为虚拟机)中的连接记录,就会出现本机认为自己连接过而远程主机没有相关记录的问题,本机的记录信息失效,并出现报错提示.删除失效的连接记录后可以重新进行访问,并视作初次访问.
删除虚拟机密码文件本机连接报错重新进行连接对具体过程的解析如下
当输入yes后,远程主机向本机发送身份公钥,并保存到~/.ssh/know_hosts文件中.
当再次连接时远端主机会持有私钥对连接进行身份验证.
因此修改了文件内容自然也会被拒绝连接了.

##当连接出现认证问题时的解决方案
vim ~/.ssh/know_hosts ##删除此文件中出错的对应行

ssh常用参数

-l ##指定登陆用户
-i ##指定私钥
-X ##开启图形
-f ##在后台运行
-o ##自定义连接参数
-t ##指定连接跳板

以下对其中重要的几个进行讲解.

ssh -i root 172.168.50.2 ##对目标主机以root用户进行远程登录

指定了远程用户登陆时的用户

ssh -i root 172.168.50.2 -o "StrictHostKeyChecking=no" ##附加参数的含义为当初次连接远程主机时默认同意连接,而不需要用户输入'yes'进行确认.

这里时对于-o参数的一个举例,还有其他功能的自定义参数可以自行进行查找.
附加参数

连接跳板

跳板的作用与其他几个参数不太相同,单独拿出来说可能比较好理解.
打个比方,你用A主机连接B主机并用B主机连接C主机.
那么在C主机上的登陆记录所显示的就是B的IP地址和信息.
那么这时,我们就称B为你连接C主机的跳板.
跳板
当然,也可以通过对跳板作用的验证来加深理解.
跳板验证如图,对连接设备检查时现实的IP为跳板机,而非我用于连接的本机.

ssh加密方式


对称加密

刚才我们使用了密码对远程主机进行连接,如果你去查看远程主机的连接记录会发现,其中的加密字符串与本机的~/.ssh/know_hosts文件中的相同.这种加密方式也叫做对称加密.

对称加密的特点
加密和解密使用同一串字符
容易泄露
容易遗忘
可暴力破解
简言之,并不安全

因此也出现了一种更为安全的加密方式----不对称加密.

不对称加密

不对称加密,顾名思义,加密和解密使用的并不是同一串字符.

加密用公钥,解密用私钥.
即使其中一个被盗用了,只要更新套件,被盗用的也会失效.
通过设置来屏蔽密码登陆后也能让攻击者无法通过无密钥方式登录服务器.

生成非对称加密密钥

ssh-keygen ##生成命令

生成不对称加密
如图所示,在确定相关选项后会在本地生成一对密钥.但是这对密钥都在本地显然是不会对服务器起作用的,因此要用本地的密钥对服务器进行加密.

ssh-copy-id -i 公钥文件 登陆用户@服务器地址
##用本地公钥对服务器进行加密的命令
##理所当然的,加密时需要输入服务器登陆密码进行身份确认,保证安全性.

对服务端加密当然,仅仅是进行加密了还是不够的,为了确认是否确实是使用本地的公钥对服务器进行加密的,我们可以去服务端对加密内容进行确认.在进行不对称加密后,服务端会生成authorized_keys文件.
加密文件验证

当然,其内容与本地的私钥并不相同.

不对称加密的效果

不对称加密的实现目的是解决对称加密的安全性问题.那么反过来想,如果使用了不对称加密还要输入密码岂不是本末倒置了.事实也是如此,使用不对称加密后,远程登录服务器时会对公钥私钥进行验证而不需要再输入密码,实现了免密登陆.
免密登陆

非交互的生成密钥

上文中使用ssh-keygen命令时,系统提示了大量操作信息如存放在哪里,是否需要输入密码等等,部分环境下我们不希望进行交互输入,那么可以使用此方式对这一操作进行简化.

ssh-keygen -f 密钥存放位置 -P ""
##参数含义为指定密钥在本地的存放位置,同时不需要输入密码
##实际就是将上文中的交互内容作为参数的一部分一起设置

免交互

移除密钥的影响

为了保证安全性,当移除公钥/私钥中任意一个时,再次连接时都会提示密钥失效,保证了登陆的安全性,当泄漏时也更容易进行安全补救.
移除密钥

SSHD安全性优化调整

连接端口修改

在基础的连接设置上,我们还可以 通过对服务端的sshd服务进行安全性优化提高连接安全性.但在进行实验前还需要进行部分系统调整,使得后续操作可行.
SELinux工作模式设置首先保证SELinux工作模式为Disabled,负责会影响后续操作.
同时,将系统火墙暂时关闭,避免对于端口的过滤影响连接.

上文提到过,sshd的配置文件位于/etc/ssh/sshd_config,下文操作均为对服务端(这里为虚拟机)的sshd配置文件的修改.
修改连接端口
服务端默认的连接端口为22端口,此处更改为9961端口.
修改配置后并不会立即生效,需要对服务进行重载.
之后对服务修改情况进行验证.
端口修改验证使用客户端进行远程登录.
9961登陆
可以看到,默认的22端口被拒绝,而指定9961端口登陆成功.

关闭密码登陆

为保证系统安全性我们启用了非对称加密登陆,当然也可以更进一步:将密码登陆关闭.这样在进行远程登陆时就仅能使用密钥验证的方式进行登陆,大大加强了系统的安全性.
禁用密码登陆
当然,修改配置后也需要重启服务才能生效.
生效后如无密钥仍可输入密码,但即使密码输入正确也无法登陆了.

禁止超级用户登陆

超级用户掌握着系统的控制权限,将超级用户开放给远程登录就相当于对远程登陆用户不加限制.为了保证安全性,部分场合需要禁用超级用户登陆.
这么操作仅仅禁用了超级用户登录,并不影响登陆后进行用户切换.

su - root ##并不影响登陆后的用户切换

root用户设置root用户阻止效果

用户登录黑白名单

可以对超级用户登陆进行限制,作扩张解释也应该可以对其他用户的登陆进行限制.因此用户黑白名单就应运而生了.就如同字面意思,被加入用户黑名单中的用户均无法用于远程登陆;而当白名单存在时,仅有被加入白名单中的用户可以进行远程登陆.
以下进行效果验证.
黑白名单机制
黑名单的范例

如图,超级用户被加入了黑名单,无法远程登陆,实现了与超级用户禁止相同的功效.

配置参数总结

上文中对连接安全性进行了优化,文末对修改过的配置内容进行总结.

Port ##连接端口,默认注释,默认端口为22
PermitRootLogin yes ##超级用户登陆,默认为yes,修改为no后禁用超级用户登录
PasswordAuthentication yes ##密码登陆设置,莫认为yes,修改为no后禁用密码登陆方式
AllowUsers 用户名... ##用户登录白名单,仅加入白名单的用户可以进行远程登陆
DenyUsers 用户名... ##用户登陆黑名单,被加入黑名单的用户无法进行远程登陆systemctl restart sshd
##务必记得在修改配置后对服务进行重载


推荐阅读
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • Linux的uucico命令使用方法及工作模式介绍
    本文介绍了Linux的uucico命令的使用方法和工作模式,包括主动模式和附属模式。uucico是用来处理uucp或uux送到队列的文件传输工具,具有操作简单快捷、实用性强的特点。文章还介绍了uucico命令的参数及其说明,包括-c或--quiet、-C或--ifwork、-D或--nodetach、-e或--loop、-f或--force、-i或--stdin、-I--config、-l或--prompt等。通过本文的学习,读者可以更好地掌握Linux的uucico命令的使用方法。 ... [详细]
  • Jboss的EJB部署描述符standardjaws.xml配置步骤详解
    本文详细介绍了Jboss的EJB部署描述符standardjaws.xml的配置步骤,包括映射CMP实体EJB、数据源连接池的获取以及数据库配置等内容。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • imx6ull开发板驱动MT7601U无线网卡的方法和步骤详解
    本文详细介绍了在imx6ull开发板上驱动MT7601U无线网卡的方法和步骤。首先介绍了开发环境和硬件平台,然后说明了MT7601U驱动已经集成在linux内核的linux-4.x.x/drivers/net/wireless/mediatek/mt7601u文件中。接着介绍了移植mt7601u驱动的过程,包括编译内核和配置设备驱动。最后,列举了关键词和相关信息供读者参考。 ... [详细]
  • 本文介绍了在Linux下安装和配置Kafka的方法,包括安装JDK、下载和解压Kafka、配置Kafka的参数,以及配置Kafka的日志目录、服务器IP和日志存放路径等。同时还提供了单机配置部署的方法和zookeeper地址和端口的配置。通过实操成功的案例,帮助读者快速完成Kafka的安装和配置。 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • 海马s5近光灯能否直接更换为H7?
    本文主要介绍了海马s5车型的近光灯是否可以直接更换为H7灯泡,并提供了完整的教程下载地址。此外,还详细讲解了DSP功能函数中的数据拷贝、数据填充和浮点数转换为定点数的相关内容。 ... [详细]
  • 本文介绍了在RHEL 7中的系统日志管理和网络管理。系统日志管理包括rsyslog和systemd-journal两种日志服务,分别介绍了它们的特点、配置文件和日志查询方式。网络管理主要介绍了使用nmcli命令查看和配置网络接口的方法,包括查看网卡信息、添加、修改和删除配置文件等操作。 ... [详细]
  • 安装oracle软件1创建用户组、用户和目录bjdb节点下:[rootnode1]#groupadd-g200oinstall[rootnode1]#groupad ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
author-avatar
李正吉959
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有