6. SSH远程管理服务实战
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
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远程管理服务实战的更多相关文章
- SSH远程管理服务实战
		
目录 SSH远程管理服务实战 1.SSH基本概述 2.SSH相关命令 3.Xshell连接不上虚拟机 4.scp命令 5.sftp命令 6.SSH验证方式 7.SSH场景实践 8.SH安全优化 9.交 ...
 - 6、SSH远程管理服务实战
		
1.SSH基本概述 SSH是一个安全协议,在进行数据传输时,会对数据包进行加密处理,加密后在进行数据传输.确保了数据传输安全.那SSH服务主要功能有哪些呢? 1.提供远程连接服务器的服务. 2.对传输 ...
 - Linux-SSH远程管理服务实战
		
figure:first-child { margin-top: -20px; } #write ol, #write ul { position: relative; } img { max-wid ...
 - 五.ssh远程管理服务
		
01. 远程管理服务知识介绍 1) SSH远程登录服务介绍说明 SSH是Secure Shell Protocol的简写,由 IETF 网络工作小组(Network Working Group)制定: ...
 - Linux(11):期中架构(3)--- SSH远程管理服务 & ansible 批量管理服务
		
SSH远程管理服务 1. 远程管理服务知识介绍 # 1.1 SSH远程登录服务介绍说明 SSH是Secure Shell Protocol的简写,由 IETF 网络工作小组(Network Worki ...
 - Linux系统学习 八、SSH服务—SSH远程管理服务
		
1.SSH简介 ssh(安全外壳协议)是Secure Shell的缩写,是建立在应用层和传输层基础上的安全协议.传输的时候是经过加密的,防止信息泄露,比telnet(明文传递)要安全很多. ftp安装 ...
 - Linux下 SSH远程管理服务
		
第1章 SSH基本概述 1.1 SSH服务协议说明 SSH 是 Secure Shell Protocol 的简写,由 IETF 网络工作小组(Network Working Group )制定 在进 ...
 - ssh远程管理服务的介绍
		
第6章 远程管理的介绍 6.1 服务的概念介绍 6.1.1 ssh和telnet服务的相同和不同点 ssh: 服务端口号为22 在数据传输的时候是加密的传输 一般在互联网中使用,可以使用root账号进 ...
 - linux运维、架构之路-SSH远程管理服务
		
一.SSH服务功能介绍 1.远程登录管理 提供类似telnet远程联机服务器的服务,即上面提到的SSH服务 2.远程传输文件 是类似FTP服务的sftp-server,借助SSH协议来传输数据的,提供 ...
 
随机推荐
- Anroid逆向学习从编写so到静动态调试分析arm的一次总结
			
Anroid逆向学习从编写so到静动态调试分析arm的一次总结 一.前言 最近跟着教我兄弟学逆向这篇教程学习Android逆向,在第七课后作业反复折腾了好几天,正好在折腾的时候对前面的学习总结一波,动 ...
 - github博客Hexo引流到微信
			
相信有不少小伙伴都在github上创建了属于自己的博客,其中用Hexo的Next主题应该不少,那么,我们究竟该如何将博客的流量引流到微信呢?今天就来带你看一看. 如何引流 现在网上有一种套路,当你在看 ...
 - ELK7.3实战安装配置文档
			
整体架构 一:环境准备 1.环境规划准备 192.168.43.16 jdk,elasticsearch-master ,logstash,kibana 192.168.43.17 jdk,ela ...
 - opencv边缘检测
			
人眼怎么识别图像边缘? 比如有一幅图,图里面有一条线,左边很亮,右边很暗,那人眼就很容易识别这条线作为边缘.也就是像素的灰度值快速变化的地方. sobel算子 sobel算子是一个离散差分算子. 图像 ...
 - Eureka参数配置->Server端参数
			
1.基本参数 参数 默认值 说明 eureka.server.enable-self-preservation true 是否开启自我保护模式 eureka.server.renewal-percen ...
 - Golang 接口与反射知识要点
			
目录 Golang 接口与反射知识要点 1. 接口类型变量 2. 类型断言 3. 鸭子类型 4. 反射机制 5. reflect 包 TypeOf().ValueOf() Type().Kind() ...
 - volatile 关键字的作用
			
简介Java 语言提供了一种稍弱的同步机制,即 volatile 变量,用来确保将变量的更新操作通知到其他线程.volatile 变量具备两种特性:变量可见性.禁止重排序. 作为同步锁在访问 vola ...
 - JS/Jquery关系
			
1. JS / JQuery介绍 Jquery是JS库,何为JS库,即把常用的js方法进行封装,封装到单独的JS文件中,要用的时候直接调用即可: 2. JS / JQuery对象 1. 定义 (1) ...
 - python openpyxl内存不主动释放 ——关闭Excel工作簿后内存依旧(MemoryError)
			
在openpyxl对Excel读写操作过程中,发现内存没有马上释放,如果得多次读取大文件,内存爪机,后续代码就无法运行. 尝试:各种wb.save()或者with open等途径无法解决. 发现:因为 ...
 - ping通谷歌后发送QQ邮件通知
			
前言 国庆期间,据说是为了防止有人在重大节日发表不正当言论,很多可以kxsw的ip都被封了,可是什么时候才会解封呢,不能没事就去ping一下吧,所以我写了个定时任务,定时ping谷歌服务器,如果p ...
 
			
		
