Windows CLI

Windows CLI

🚀 Windows命令行界面服务器配置

本项目聚焦于Windows命令行界面服务器的配置,能帮助用户灵活设置服务器各项参数,同时具备完善的安全机制,保障服务器的稳定与安全运行。

🚀 快速开始

本部分将为你介绍Windows命令行界面服务器的各项配置内容。

✨ 主要特性

  • 多维度配置:支持基础、shell、SSH等多方面的详细配置。
  • 资源管理:提供多种资源的URI访问方式,方便查看配置信息。
  • 安全防护:具备内置的安全特性和可选的安全功能,保障服务器安全。
  • 命令示例:给出常见操作的命令示例,便于用户快速上手。

📦 安装指南

文档未提及安装步骤,暂不提供。

💻 使用示例

基础用法

{
"port": 3000,              // 服务绑定端口,默认为3000
"host": "localhost",       // 绑定地址,设置为IP或域名,默认为localhost
"restrictWorkingDirectory": true, // 是否限制命令执行目录,默认true
"allowedPaths": [          // 允许的文件夹路径,默认包括当前工作目录和用户家目录
"%current%",
"%home%"
],
"commandLengthLimit": 2000, // 命令的最大长度限制,防止超长命令注入,默认2000字符
"logCommands": true,        // 是否记录执行的命令,默认true
"timeout": 30000            // 命令的最长允许运行时间(毫秒),默认30秒
}

高级用法

{
"shells": [                // 支持的shell列表,默认包括cmd和bash
"cmd.exe",
"/bin/bash"
],
"blockedCommands": [       // 被阻止的危险命令,默认包含rm, del等
"rm",
"del",
"format",
"erase",
" Cipher ",
"vssadmin",
"wbadmin",
"regsvr32",
"msbuild"
],
"blockedArguments": [      // 被阻止的危险参数,默认包含/c,/f等
"/c",
"/f",
"/q",
"/s",
"-rf",
"--force",
"--recursive"
],
"enableInjectionProtection": true, // 是否启用命令注入防护,默认true
"caseInsensitiveBlocking": true     // 是否对大小写不敏感地阻止命令,默认true
}
{
"ssh": {
"enabled": true,          // 是否启用SSH功能,默认true
"maxConcurrentSessions": 5,// 最大允许的并发SSH会话数,默认5
"defaultTimeout": 30000   // 默认命令超时时间(毫秒),默认30秒
}
}

📚 详细文档

资源

SSH连接

  • URI格式ssh://{connectionId}
  • 说明:每个SSH连接对应一个资源,显示连接配置信息并自动屏蔽敏感数据。
  • 示例ssh://raspberry-pi 会显示名为"raspberry-pi"的连接配置。

SSH全局配置

  • URIssh://config
  • 说明:显示整个SSH服务器的配置参数,包括默认超时、最大并发连接数等,并自动屏蔽密码信息。

当前目录

  • URIcli://currentdir
  • 说明:显示当前命令行界面服务器的工作目录,默认为服务启动时的目录。

CLI全局配置

  • URIcli://config
  • 说明:展示CLI服务器的所有配置信息,包括安全性设置、shell参数和SSH配置等。

安全注意事项

建入的安全特性(无法关闭)

  1. 命令阻止大小写不敏感:所有命令阻止都是不分大小写的,例如"DEL.EXE", "del.cmd"都会被阻止如果"del"在blockedCommands中。
  2. 智能路径解析:服务器会解析完整的命令路径以防止欺骗攻击,例如"%SystemRoot%\system32\cmd.exe"会被正确识别为cmd.exe。
  3. 自动屏蔽敏感信息:在显示任何配置或日志时,密码和密钥等敏感信息都会被自动替换为占位符。
  4. 会话过期机制:闲置的SSH会话和命令历史记录会有超时限制,防止未授权访问。

可选的安全功能

  1. 双向认证:支持客户端证书验证或otp一次性密码登录方式,提升SSH连接的安全性。
  2. 日志记录与审计:所有用户操作都会被详细记录,包括命令内容、执行时间等信息,便于后续审计分析。

重要安全警告

  • 默认配置风险:使用默认端口3000和默认路径可能会增加被未授权访问的风险,请根据实际需求更改相关配置。
  • SSH弱密码策略:默认禁止使用弱密码协议(如DSA),建议在生产环境中强制启用RSA或ECDSA加密。
  • 定期更新检查:由于存在零日漏洞风险,建议定期检查并更新CLI服务器到最新版本。

命令示例

# 查询所有可用资源
curl http://localhost:3000/_resources

# 获取当前目录信息
curl http://localhost:3000/cli://currentdir

# 执行系统命令
curl -X POST --data "command=dir" http://localhost:3000/

🔧 技术细节

内置安全特性原理

  • 命令阻止大小写不敏感:在命令解析阶段,将输入的命令统一转换为小写或大写进行匹配,确保无论大小写如何,只要在阻止列表中的命令都会被拦截。
  • 智能路径解析:服务器会对输入的命令路径进行解析,通过操作系统的API或内置的路径解析规则,将完整路径转换为可识别的命令名称。
  • 自动屏蔽敏感信息:在输出配置或日志时,使用正则表达式或特定的字符串匹配方法,将密码和密钥等敏感信息替换为占位符。
  • 会话过期机制:为每个SSH会话和命令历史记录设置一个计时器,当超过预设的超时时间时,自动关闭会话或清除记录。

可选安全功能实现

  • 双向认证:通过SSL/TLS协议实现客户端证书验证,或使用OTP库实现一次性密码登录。
  • 日志记录与审计:使用日志库将用户操作信息记录到文件或数据库中,方便后续的审计分析。

📄 许可证

本项目遵循MIT许可证,允许用户自由使用、修改和分发代码,但需保留版权声明。具体许可内容请参考MIT License

⚠️ 重要提示

  • 使用默认端口3000和默认路径可能会增加被未授权访问的风险,请根据实际需求更改相关配置。
  • 默认禁止使用弱密码协议(如DSA),建议在生产环境中强制启用RSA或ECDSA加密。
  • 由于存在零日漏洞风险,建议定期检查并更新CLI服务器到最新版本。

💡 使用建议

  • 建议根据实际需求调整服务器的各项配置参数,以提高服务器的安全性和性能。
  • 在生产环境中,务必启用双向认证和日志记录与审计功能,以保障服务器的安全运行。
  • 0 关注
  • 0 收藏,33 浏览
  • system 提出于 2025-09-18 15:39

相似服务问题

相关AI产品