赖法,强制启动,https版的winrm ---powershell远程连接(winrm)的4个安全级别,详解
---------【winrm的“四级”安全】---------
四级安全,就是最不安全的。
有被人窃取机密,和插入攻击命令的风险,也就是所谓的中间人攻击。不过呢,其实问题不大。
解决的话,启用https版的winrm,或者在http外面套上vpn即可。
---------【winrm的“三级”安全】---------
这就是我说的【赖法,强制启动,https版的winrm】,也就是说winrm客户端连接winrm服务器使用ssl,但跳过自签名证书,跳过域名绑定,我觉得这样足够了。
-SkipCACheck #跳过证书
-SkipCNCheck #跳过服务器,机器名
winrm服务器:
#用管理员powershell:
Get-childitem WSMan:\Localhost\listener\
Remove-Item -Path WSMan:\Localhost\listener\listener* -Recurse
$winrm证书 = New-SelfSignedCertificate -CertstoreLocation Cert:\LocalMachine\My -DnsName 'powershell交流群183173532'
Get-childitem WSMan:\Localhost\listener\
New-Item -Path WSMan:\LocalHost\Listener -Transport HTTPS -Address * -Force -CertificateThumbPrint $winrm证书.Thumbprint
Get-ChildItem Cert:\LocalMachine\My |Where-Object Thumbprint -eq $winrm证书.Thumbprint |Remove-Item -Force
#防火墙添加5986端口
New-NetFirewallRule -DisplayName "ps传教士winrm的https in" -Name "Windows Remote Management (HTTPS-In)" -Profile Any -LocalPort 5986 -RemoteAddress Any -Protocol TCP
winrm客户机:
#此命令要求输入,winrm服务器上的账户密码
Invoke-Command -ComputerName $winrm服务器ip -Port 5986 -Credential (Get-Credential) `
-UseSSL -SessionOption (New-PSSessionOption -SkipCACheck -SkipCNCheck) `
-ScriptBlock { dir c:\ }
---------【winrm的“二级”安全】---------
winrm客户机上只需要公钥。把公钥导入,放到客户机的【Cert:\LocalMachine\root】里。
设置证书增强型密钥使用 (EKU)“服务器身份验证”(OID=1.3.6.1.5.5.7.3.1)。
将“证书主题”设置为“CN=HOSTNAME”。
$winrm证书参数 = @{
CertStoreLocation = "Cert:\LocalMachine\My"
KeyAlgorithm = 'RSA'
HashAlgorithm = 'sha256'
KeyLength = 4096
Subject = "CN=powershell交流群183173532"
NotBefore = (get-date) - [timespan]::FromDays(365)
NotAfter = (get-date) + [timespan]::FromDays(3650)
}
$winrm证书 = New-SelfSignedCertificate @winrm证书参数
#在winrm客户机,只导出证书公钥:
Export-Certificate -Cert $winrm证书 -FilePath 'd:\winrm证书公钥.cer'
#让winrm监听6516端口:默认端口=5985(http),不监听5986(https)
Get-childitem WSMan:\Localhost\listener\
Remove-Item -Path WSMan:\Localhost\listener\listener* -Recurse
Get-childitem WSMan:\Localhost\listener\
New-Item -Path WSMan:\LocalHost\Listener -Transport HTTPS -Address * -Force -CertificateThumbPrint $winrm证书.Thumbprint
防火墙开启,winrm服务器6516端口:
New-NetFirewallRule -DisplayName "ps传教士winrm的https in" -Name "Windows Remote Management (HTTPS-In)" -Profile Any -LocalPort 5986 -RemoteAddress Any -Protocol TCP
winrm客户机:
Import-Certificate -Filepath 'd:\winrm证书公钥.cer' -CertStoreLocation "Cert:\LocalMachine\root"
#在winrm客户机上运行:此命令要求输入,winrm服务器上的账户密码
Invoke-Command -ComputerName $winrm服务器ip -Port 5986 -Credential (Get-Credential) `
-UseSSL -SessionOption (New-PSSessionOption -SkipCNCheck) `
-ScriptBlock { dir c:\ }
---------【winrm的“一级”安全】---------
winrm服务器:
$winrm证书参数 = @{
CertStoreLocation = "Cert:\LocalMachine\My"
KeyAlgorithm = 'RSA'
HashAlgorithm = 'sha256'
KeyLength = 4096
Subject = "CN=$env:COMPUTERNAME"
NotBefore = (get-date) - [timespan]::FromDays(365)
NotAfter = (get-date) + [timespan]::FromDays(3650)
}
$winrm证书 = New-SelfSignedCertificate @winrm证书参数
#在winrm客户机,只导出证书公钥:
Export-Certificate -Cert $winrm证书 -FilePath 'd:\winrm证书公钥.cer'
#让winrm监听6516端口:默认端口=5985(http),不监听5986(https)
Get-childitem WSMan:\Localhost\listener\
Remove-Item -Path WSMan:\Localhost\listener\listener* -Recurse
Get-childitem WSMan:\Localhost\listener\
New-Item -Path WSMan:\LocalHost\Listener -Transport HTTPS -Address * -Force -CertificateThumbPrint $winrm证书.Thumbprint
#防火墙开启,winrm服务器6516端口:
New-NetFirewallRule -DisplayName "ps传教士winrm的https in" -Name "Windows Remote Management (HTTPS-In)" -Profile Any -LocalPort 5986 -RemoteAddress Any -Protocol TCP
winrm客户机:
复制公钥文件'd:\winrm证书公钥.cer',到客户机上。
Import-Certificate -Filepath 'd:\winrm证书公钥.cer' -CertStoreLocation "Cert:\LocalMachine\root"
$PSRemoting服务器ip = 'DESKTOP-XXXX' #若ping DESKTOP-XXXX返回的ip不对,则要在host中添加ip 计算机名的映射。
$PSRemoting服务器用户名 = 'abcd'
$用户名 = "$PSRemoting服务器ip\$PSRemoting服务器用户名"
$密码明文 = '1234'
$密码密文 = ConvertTo-SecureString $密码明文 -AsPlainText -Force
$用户名和密码捆绑后的授权信息 = New-Object System.Management.Automation.PSCredential ($用户名,$密码密文)
$连接1 = New-PSSession -ComputerName $PSRemoting服务器ip -Port 5986 -Credential $用户名和密码捆绑后的授权信息 -UseSSL
Invoke-Command -session $连接1 -ScriptBlock {dir d:\}
---------【winrm的“最”安全】---------
或者加入win的域控,成为域内机子。
从win中的powershell,连接到linux版powershell,使用ssh非对称秘钥,也很安全。它是服务器,客户机双向验证。
---------【后记】---------
赖法,强制启动,https版的winrm ---powershell远程连接(winrm)的4个安全级别,详解的更多相关文章
- 全网最详细的zkfc启动以后,几秒钟以后自动关闭问题的解决办法(图文详解)
不多说,直接上干货! 问题详情 情况描述如题所示,zkfc启动以后,几秒钟以后自动关闭. 解决办法: 1.检查下每台机器的时间是否同步: 2.检查下每台机器的防火墙是否关闭: 3.查看zkfc的日志路 ...
- 全网最详细的HBase启动以后,HMaster进程启动了,几秒钟以后自动关闭问题的解决办法(图文详解)
不多说,直接上干货! 问题详情 情况描述如题所示,hbase启动以后,HMaster进程启动了,几秒钟以后自动关闭,但是HRegionServer进程正常运行: 解决办法: 1.检查下每台机器的时间是 ...
- 配置ORACLE 11g绿色版客户端和PLSQL远程连接环境
配置ORACLE 11g绿色版客户端和PLSQL环境 本方法是通过使用ORACLE官方提供的精简版客户端,即绿色免安装的客户端. Instant client的版本很多:主要是Basic和Ba ...
- 横版动作MOBA《超宇宙》首测试玩曝光 详解游戏特色(转)
http://play.163.com/15/0911/11/B37RHHO100314J6L.html
- 苹果强制使用HTTPS传输了怎么办?——关于HTTPS,APP开发者必须知道的事
WeTest 导读 2017年1月1日起,苹果公司将强制使用HTTPS协议传输.本文通过对HTTPS基础原理和通信过程内容的讲解,介绍APP开发者在这个背景下的应对办法. 几周前,我们在<htt ...
- centos7安装tengine强制使用HTTPS访问
操作系统:centos7.2 x64tengine:Tengine/2.2.0主机IP: 10.0.0.12 一.安装tengine 1.1 下载源码安装包 1.1.1 源码包pcre-8.40 ...
- WebAPi之SelfHost自创建证书启动Https疑难解惑及无法正确返回结果
前言 话说又来需求了,之前对于在SelfHost中需要嵌套页面并操作为非正常需求,这回来正常需求了,客户端现在加了https,老大过来说WebAPi访问不了了,这是什么情况,我去试了试,还真是这个情况 ...
- 2017年iOS应用将强制使用HTTPS安全加密-b
6月14日,WWDC 2016苹果开发者大会上,苹果在讲解全新的iOS10中提到了数据安全这一方面,并且苹果宣布iOS应用将从2017年1月起启用名为App Transport Security的安全 ...
- 禁止将http请求强制转换为https请求
近期遇到一个问题,在谷歌浏览器里发起的http请求都会被转化为https请求,但在safari里面不会被转化,所以暂时只能用Safari浏览器进行调试,后来还查看了为什么http被强制转化为https ...
随机推荐
- IDEA快捷键用法
1.Ctrl+滑动滚轮调节窗口显示大小(需要设置之后方可) File->Settings->Editor->General->Change fontsize with Ctrl ...
- android 启动流程 相关 杂项记录
Android原生流程 Init进程 主要流程及分支梳理 ueventd_main()watchdogd_main()主要流程a) 公共部分 增加PATH 环境变量初始化内核日志,打开/dev/kms ...
- 为什么有的插件安装需要用Vue.use()方法
问题 相信很多人在用Vue使用别人的组件时,会用到 Vue.use() .例如:Vue.use(VueRouter).Vue.use(MintUI).但是用 axios时,就不需要用 Vue.use( ...
- IO 多路复用详解
转自:https://blog.csdn.net/sehanlingfeng/article/details/78920423
- js中call、apply、bind到底有什么区别?bind返回的方法还能修改this指向吗?
壹 ❀ 引 同事最近在看angularjs源码,被源码中各种bind,apply弄的晕头转向:于是他问我,你知道apply,call与bind的区别吗?我说apply与call是函数应用,指定thi ...
- leetcode-二叉树
树以及常用的算法 树的概念 树(Tree)的基本概念树是由结点或顶点和边组成的(可能是非线性的)且不存在着任何环的一种数据结构.没有结点的树称为空(null或empty)树.一棵非空的树包括一个根结点 ...
- IT兄弟连 HTML5教程 HTML5的基本语法 小结及习题
小结 一个完整的HTML文件由标题.段落.列表.表格.文本,即嵌入的各种对象所组成,这些逻辑上统一的对象称为元素.HTML文档主体结构分为两部分,一部分是定义文档类型,另一部分则是定义文档主体的结构框 ...
- 汇编子程序模块化(near&far)
1: Near 近端使用 C语言实现: #include <stdio.h>#include <stdlib.h> void print(){ printf("p ...
- 【Unity游戏开发】接入UWA_GOT的iOS版SDK以后无法正常出包
一.正文 问: RT,最近有看到UWA_GOT工具新增了iOS版本的支持,于是下载了最新的工具包进行了接入测试.是按照文档直接将UWA_GOTv2.0.1_iOS.unitypackage导入进了Un ...
- Ruby入门1
由于部门的自动化是由一个前辈实现的,他使用的Ruby的语言来实现的,所以需要学习一下Ruby语言,争取在15天左右可以掌握Ruby语言!加油~~~ 1.常量&变量 # 1.常量 # 一般用大写 ...