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

6.SSH远程管理服务实战

1.SSH基本概念?ssh是一个应用层安全协议2.SSH主要的功能是?实现远程登录,数据传输过程中进行加密.钉钉(澡堂模式)远程登录:sshtelnet3.SSH与Telnet之间

1. SSH基本概念?

ssh是一个应用层安全协议

2.SSH主要的功能是?

实现远程登录, 数据传输过程中进行加密. 钉钉(澡堂模式)
远程登录:

ssh
telnet

3.SSH与Telnet之间有什么区别?

服务连接方式 服务数据传输 服务监听端口 服务登陆用户
ssh 加密 22/tcp 默认支持root用户登陆
telnet 明文 23/tcp 不支持root用户登陆

4.抓包分析SSH与Telnet的区别?

    所需工具:Wireshark
    [root@backup ~]# yum install telnet-server -y
    [root@backup ~]# systemctl start telnet.socket
    
    [oldboy@backup ~]$ echo oollddbbooyy  |sed -r 's#(.)(.)#\1#g'
    oldboy
    
    PS:  
        服务器都是使用的SSH协议实现的远程登录
        对于路由器  交换机  全是走的telnet协议  (  Web界面调试  )
    

5.SSH相关客户端指令ssh、scp、sftp?

    1.ssh   ( Windows系统:①Xshell ②Crt )   ( Mac系统: ①ssh命令  ②Crt )
    [root@web01 ~]# ssh root@172.16.1.41
    root@172.16.1.41's password: 
    
    2.scp:   rsync增量    scp 全量(每次都是覆盖)  ssh协议
    拷贝目录 需要  -r参数
    推送
    [root@web01 ~]# scp ./web-file root@172.16.1.41:/tmp

    获取
    [root@web01 ~]# scp  root@172.16.1.41:/tmp/web-file  ./test

    限速 ( kb  1024 * 8 = 实际的传输速率 )
    [root@web01 ~]# scp -l 8192 ./1.txt 172.16.1.41:/tmp
    root@172.16.1.41's password: 
    1.txt                           14%   74MB   1.0MB/s   07:09 

    3.sftp 文件传输协议?
        为什么不适用命名的方式?  为什么使用xftp?
            1.简单,带图形,支持断点续传,支持暂停

6.SSH远程登录方式、用户密码、秘钥方式?

1.基于用户和密码的方式
    1.密码太复杂容易忘  工具:lastpass(适用于多终端)
    2.密码太简单不安全
        
2.基于密钥的方式实现     (指纹)
    1.降低密码泄露风险
    2.提升用户的便捷性
            
3.实现免密码登录方式
     3.1创建一对密钥   公钥+私钥 ==配套
    [root@manager ~]# ssh-keygen -C manger@qq.com   //一路回车即可
    Generating public/private rsa key pair.
    Enter file in which to save the key (/root/.ssh/id_rsa): 
    Created directory '/root/.ssh'.
    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:gk2zFs5LuoV4Jf381EaFnaHvRZu36qLqIcYUma17SeU manger@qq.com
    The key's randomart image is:
+---[RSA 2048]----+
|              .  |
|      +      + o |
|     ++. .  o + .|
|     Bo+o    o .o|
|    oo@.SE  . .oo|
|   .oBo=.  o . .o|
|  . +=o+o . o .. |
|   ..oo .o o  .  |
|    . .o..o oo   |
+----[SHA256]-----+

    3.2 将管理机的公钥推送至web服务器上   ( 需要输入对端服务器的密码  )
    [root@manager ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@172.16.1.7
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
The authenticity of host '172.16.1.7 (172.16.1.7)' can't be established.
ECDSA key fingerprint is SHA256:INgxiiDMWAw79GeJRGUjsLmXJmXbHDXyAJqV8wFxhpI.
ECDSA key fingerprint is MD5:78:6a:d4:ad:13:4a:c9:17:cb:3a:4d:cf:2f:c8:2c:08.
Are you sure you want to continue connecting (yes/no)? 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@172.16.1.7's password: 

Number of key(s) added: 1

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

            
    3.3 使用 ssh 命令 连接 对应的服务器   ( 检查是否免密码  )
    [root@manager ~]# ssh 'root@172.16.1.7'
            
    3.4有问题查看日志信息
    tail -f /var/log/secure

ssh无密码登录失败分析
技术图片

7.SSH场景实践,借助SSH免秘实现跳板机功能?

技术图片

8.SSH远程连接功能安全优化? fail2ban又是啥?(研究)

    1.更改远程连接登陆的端口       port 6666
    2.禁止ROOT管理员直接登录     PermitRootLogin no
        直接  xshell  -->root   --> server   (禁止用户名密码  禁止密钥)
        间接  xshell  -->oldxu  --> server  ---> su - root
    3.密码认证方式改为密钥认证      PasswordAuthentication no
    4.重要服务不使用公网IP地址     !!!!!!!!!!!!!!!!!
    5.使用防火墙限制来源IP地址     软件防火墙  |  硬件防火墙
    
        10.0.0.1(其他人)    --->  10.0.0.61        异常
        10.0.0.100(公司)    --->  10.0.0.61       正常
    
    6.修改后的配置  [测试完后记得还原]
    [root@manager ~]# vim /etc/ssh/sshd_config
    Port 6666                       # 变更SSH服务远程连接端口
    PermitRootLogin         no      # 禁止root用户直接远程登录
    PasswordAuthentication  no      # 禁止使用密码直接远程登录
    UseDNS                  no      # 禁止ssh进行dns反向解析,影响ssh连接效率参数
    GSSAPIAuthentication    no      # 禁止GSS认证,减少连接时产生的延迟

    域名解析IP 
    IP解析域名
    
    

9.fail2ban(研究)

ail2ban可以监控系统日志,并且根据一定规则匹配异常IP后使用Firewalld将其屏蔽,尤其是针对一些爆破/扫描等非常有效。

1.开启Firewalld防火墙
[root@bgx ~]# systemctl start firewalld
[root@bgx ~]# systemctl enable firewalld
[root@bgx ~]# firewall-cmd --state
running

2.修改firewalld规则,启用Firewalld后会禁止一些服务的传输,但默认会放行常用的22端口, 如果想添加更多,以下是放行SSH端口(22)示例,供参考:

#放行SSHD服务端口
[root@bgx ~]# firewall-cmd --permanent --add-service=ssh --add-service=http 
#重载配置
[root@bgx ~]# firewall-cmd --reload
#查看已放行端口
[root@bgx ~]# firewall-cmd  --list-service
3.安装fail2ban,需要有epel

[root@bgx ~]# yum install fail2ban fail2ban-firewalld mailx -y
4.配置fail2ban规则.local会覆盖.conf文件

[root@bgx fail2ban]# cat /etc/fail2ban/jail.local
[DEFAULT]
ignoreip = 127.0.0.1/8
bantime  = 86400
findtime = 600
maxretry = 5
banaction = firewallcmd-ipset
action = %(action_mwl)s

[sshd]
enabled = true
filter  = sshd
port    = 22
action = %(action_mwl)s
logpath = /var/log/secure
5.启动服务,并检查状态

[root@bgx ~]# systemctl start fail2ban.service
[root@bgx ~]# fail2ban-client status sshd

6.清除被封掉的IP地址
[root@bgx ~]# fail2ban-client set sshd unbanip 10.0.0.1

10.SSH如何结合Google Authenticator 实现双向验证? (适合个人使用)

    基于密码 + 动态口令     支持
    基于密钥 + 动态口令     不支持
    https://www.xuliangwei.com/bgx/1345.html

6. SSH远程管理服务实战


推荐阅读
  • Cookie学习小结
    Cookie学习小结 ... [详细]
  • 本文详细介绍了 Java 网站开发的相关资源和步骤,包括常用网站、开发环境和框架选择。 ... [详细]
  • 本文详细介绍了Java代码分层的基本概念和常见分层模式,特别是MVC模式。同时探讨了不同项目需求下的分层策略,帮助读者更好地理解和应用Java分层思想。 ... [详细]
  • 秒建一个后台管理系统?用这5个开源免费的Java项目就够了
    秒建一个后台管理系统?用这5个开源免费的Java项目就够了 ... [详细]
  • 蒜头君的倒水问题(矩阵快速幂优化)
    蒜头君将两杯热水分别倒入两个杯子中,每杯水的初始量分别为a毫升和b毫升。为了使水冷却,蒜头君采用了一种特殊的方式,即每次将第一杯中的x%的水倒入第二杯,同时将第二杯中的y%的水倒入第一杯。这种操作会重复进行k次,最终求出两杯水中各自的水量。 ... [详细]
  • 小程序的授权和登陆
    小程序的授权和登陆 ... [详细]
  • malloc 是 C 语言中的一个标准库函数,全称为 memory allocation,即动态内存分配。它用于在程序运行时申请一块指定大小的连续内存区域,并返回该区域的起始地址。当无法预先确定内存的具体位置时,可以通过 malloc 动态分配内存。 ... [详细]
  • NX二次开发:UFUN点收集器UF_UI_select_point_collection详解
    本文介绍了如何在NX中使用UFUN库进行点收集器的二次开发,包括必要的头文件包含、初始化和选择点集合的具体实现。 ... [详细]
  • 网络爬虫的规范与限制
    本文探讨了网络爬虫引发的问题及其解决方案,重点介绍了Robots协议的作用和使用方法,旨在为网络爬虫的合理使用提供指导。 ... [详细]
  • 用阿里云的免费 SSL 证书让网站从 HTTP 换成 HTTPS
    HTTP协议是不加密传输数据的,也就是用户跟你的网站之间传递数据有可能在途中被截获,破解传递的真实内容,所以使用不加密的HTTP的网站是不 ... [详细]
  • 本文详细介绍了如何解决DNS服务器配置转发无法解析的问题,包括编辑主配置文件和重启域名服务的具体步骤。 ... [详细]
  • 本文对SQL Server系统进行了基本概述,并深入解析了其核心功能。SQL Server不仅提供了强大的数据存储和管理能力,还支持复杂的查询操作和事务处理。通过MyEclipse、SQL Server和Tomcat的集成开发环境,可以高效地构建银行转账系统。在实现过程中,需要确保表单参数与后台代码中的属性值一致,同时在Servlet中处理用户登录验证,以确保系统的安全性和可靠性。 ... [详细]
  • 本文介绍了Go语言中正则表达式的基本使用方法,并提供了一些实用的示例代码。 ... [详细]
  • 本文旨在探讨信息安全专业的职业规划路径,结合个人经历和专家建议,为即将毕业的学生提供实用的指导。 ... [详细]
  • 近期,微信公众平台上的HTML5游戏引起了广泛讨论,预示着HTML5游戏将迎来新的发展机遇。磊友科技的赵霏,作为一名HTML5技术的倡导者,分享了他在微信平台上开发HTML5游戏的经验和见解。 ... [详细]
author-avatar
you是was的was
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有